DOSBox-X
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines
src/hardware/snd_pc98/sound/getsnd/getsnd.h
00001 
00002 // #define      SUPPORT_MP3
00003 // #define      SUPPORT_OGG
00004 
00005 
00006 #ifdef __cplusplus
00007 extern "C" {
00008 #endif
00009 
00010 struct _getsnd;
00011 typedef struct _getsnd          _GETSND;
00012 typedef struct _getsnd          *GETSND;
00013 
00014 typedef UINT (*GSDEC)(GETSND self, void *buf);
00015 typedef void (*GSDECEND)(GETSND self);
00016 typedef void *(*GSCNV)(GETSND self, void *buf, void *bufterm);
00017 
00018 BOOL getwave_open(GETSND snd, UINT8 *ptr, UINT size);
00019 BOOL getmp3_open(GETSND snd, UINT8 *ptr, UINT size);
00020 BOOL getogg_open(GETSND snd, UINT8 *ptr, UINT size);
00021 BOOL getsnd_setmixproc(GETSND snd, UINT samprate, UINT channles);
00022 
00023 struct _getsnd {
00024         UINT8           *work;                                  // data load用バッファ
00025         UINT8           *buffer;                                // デコード済みバッファ
00026 
00027         void            *buf;
00028         UINT            remain;
00029         long            mrate;
00030         long            rem;
00031         long            pcml;
00032         long            pcmr;
00033 
00034         UINT8           *datptr;
00035         UINT            datsize;
00036 
00037         void            *snd;                                   // optional
00038         GSDEC           dec;
00039         GSDECEND        decend;                                 // optional
00040         GSCNV           cnv;
00041 
00042         UINT            samplingrate;
00043         UINT            channels;
00044         UINT            bit;
00045         UINT            blocksamples;                   // ブロックサンプル数
00046         UINT            blocksize;                              // 1ブロックのワークサイズ
00047 };
00048 
00049 GETSND getsnd_create(void *datptr, UINT datsize);
00050 void getsnd_destroy(GETSND hdl);
00051 
00052 UINT getsnd_getpcmbyleng(GETSND hdl, void *pcm, UINT leng);
00053 
00054 #ifdef __cplusplus
00055 }
00056 #endif
00057