code940 now plays mp3s
[picodrive.git] / platform / gp2x / code940 / 940shared.h
similarity index 52%
rename from platform/gp2x/940shared.h
rename to platform/gp2x/code940/940shared.h
index bad0f3c..cc5d0c4 100644 (file)
@@ -1,10 +1,12 @@
-#include "../../Pico/sound/ym2612.h"\r
+#include "../../../Pico/sound/ym2612.h"\r
+#include "../helix/pub/mp3dec.h"\r
 \r
 enum _940_job_t {\r
-       JOB940_YM2612INIT = 1,\r
+       JOB940_INITALL = 1,\r
        JOB940_YM2612RESETCHIP,\r
        JOB940_YM2612UPDATEONE,\r
        JOB940_PICOSTATELOAD,\r
+       JOB940_MP3DECODE,\r
        JOB940_NUMJOBS\r
 };\r
 \r
@@ -12,9 +14,10 @@ enum _940_job_t {
 \r
 typedef struct\r
 {\r
-       YM2612  ym2612;                                 /* current state of the emulated YM2612 */\r
-       int             mix_buffer[44100/50*2];         /* this is where the YM2612 samples will be mixed to */\r
-       short           mp3_buffer[2][1152*2];          /* buffer for mp3 decoder's output */\r
+       YM2612  ym2612;                                 /* current state of the emulated YM2612 */\r
+       HMP3Decoder mp3dec;                     /* mp3 decoder's handle */\r
+       int     mix_buffer[44100/50*2];         /* this is where the YM2612 samples will be mixed to */\r
+       short   mp3_buffer[2][1152*2];          /* buffers for mp3 decoder's output */\r
 } _940_data_t;\r
 \r
 \r
@@ -29,7 +32,11 @@ typedef struct
        int             writebuffsel;                   /* which write buffer to use (from 940 side) */\r
        UINT16  writebuff0[2048];                       /* list of writes to ym2612, 1024 for savestates, 1024 extra */\r
        UINT16  writebuff1[2048];\r
+       int             mp3_len;                        /* data len of loaded mp3 */\r
+       int             mp3_offs;                       /* current playback offset (just after last decoded frame) */\r
+       int             mp3_buffsel;                    /* which output buffer to decode to */\r
        int             vstarts[8];                             /* debug: number of starts from each of 8 vectors */\r
        int             loopc;                                  /* debug: main loop counter */\r
-       int             waitc;                                  /* debug: wait loop counter */\r
+       int             mp3_errors;                     /* debug: mp3 decoder's error counter */\r
+       int             mp3_lasterr;                    /* debug: mp3 decoder's last error */\r
 } _940_ctl_t;\r