DOSBox-X
|
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