spu: support multiple pending buffers
[pcsx_rearmed.git] / plugins / dfsound / externals.h
index 3a3ff68..4832fac 100644 (file)
@@ -110,8 +110,6 @@ typedef struct
  int               iRightVolume;                       // right volume\r
  ADSRInfoEx        ADSRX;\r
  int               iRawPitch;                          // raw pitch (0...3fff)\r
-\r
- int               SB[32+4];\r
 } SPUCHAN;\r
 \r
 ///////////////////////////////////////////////////////////\r
@@ -175,13 +173,18 @@ typedef struct
 \r
 // psx buffers / addresses\r
 \r
+#define SB_SIZE (32 + 4)\r
+\r
 typedef struct\r
 {\r
  unsigned short  spuCtrl;\r
  unsigned short  spuStat;\r
 \r
  unsigned int    spuAddr;\r
- unsigned char * spuMemC;\r
+ union {\r
+  unsigned char  *spuMemC;\r
+  unsigned short *spuMem;\r
+ };\r
  unsigned char * pSpuIrq;\r
 \r
  unsigned int    cycles_played;\r
@@ -203,8 +206,6 @@ typedef struct
  void (CALLBACK *cddavCallback)(unsigned short,unsigned short);\r
  void (CALLBACK *scheduleCallback)(unsigned int);\r
 \r
- int           * sRVBStart;\r
-\r
  xa_decode_t   * xapGlobal;\r
  unsigned int  * XAFeed;\r
  unsigned int  * XAPlay;\r
@@ -222,9 +223,14 @@ typedef struct
  int             iLeftXAVol;\r
  int             iRightXAVol;\r
 \r
- int             pad[32];\r
+ SPUCHAN       * s_chan;\r
+ int           * SB;\r
+\r
+ int           * RVB;\r
+ int           * SSumLR;\r
+\r
+ int             pad[29];\r
  unsigned short  regArea[0x400];\r
- unsigned short  spuMem[256*1024];\r
 } SPUInfo;\r
 \r
 ///////////////////////////////////////////////////////////\r
@@ -234,7 +240,6 @@ typedef struct
 #ifndef _IN_SPU\r
 \r
 extern SPUInfo spu;\r
-extern SPUCHAN s_chan[];\r
 extern REVERBInfo rvb;\r
 \r
 void do_samples(unsigned int cycles_to, int do_sync);\r