fixed deadlock
[picodrive.git] / Pico / sound / ym2612.h
index c575bae..20147ff 100644 (file)
@@ -142,7 +142,7 @@ typedef struct
 \r
 void YM2612Init_(int baseclock, int rate);\r
 void YM2612ResetChip_(void);\r
-void YM2612UpdateOne_(short *buffer, int length, int stereo);\r
+int  YM2612UpdateOne_(int *buffer, int length, int stereo, int is_buf_empty);\r
 \r
 int  YM2612Write_(unsigned int a, unsigned int v);\r
 unsigned char YM2612Read_(void);\r
@@ -162,7 +162,7 @@ void *YM2612GetRegs(void);
 #define YM2612PicoStateLoad YM2612PicoStateLoad_\r
 #else\r
 /* GP2X specific */\r
-#include "../../platform/gp2x/940ctl_ym2612.h"\r
+#include "../../platform/gp2x/940ctl.h"\r
 extern int PicoOpt;\r
 #define YM2612Init(baseclock,rate) { \\r
        if (PicoOpt&0x200) YM2612Init_940(baseclock, rate); \\r
@@ -172,10 +172,9 @@ extern int PicoOpt;
        if (PicoOpt&0x200) YM2612ResetChip_940(); \\r
        else               YM2612ResetChip_(); \\r
 }\r
-#define YM2612UpdateOne(buffer,length,stereo) { \\r
-       if (PicoOpt&0x200) YM2612UpdateOne_940(buffer, length, stereo); \\r
-       else               YM2612UpdateOne_(buffer, length, stereo); \\r
-}\r
+#define YM2612UpdateOne(buffer,length,stereo,is_buf_empty) \\r
+       (PicoOpt&0x200) ? YM2612UpdateOne_940(buffer, length, stereo, is_buf_empty) : \\r
+                               YM2612UpdateOne_(buffer, length, stereo, is_buf_empty);\r
 #define YM2612Write(a,v) \\r
        (PicoOpt&0x200) ?  YM2612Write_940(a, v) : YM2612Write_(a, v)\r
 #define YM2612Read() \\r