DOSBox-X
|
00001 00002 // あとで GETSNDに乗り換えるかも… 00003 00004 #if defined(BYTESEX_BIG) 00005 #define WAVE_SIG(a, b, c, d) \ 00006 (UINT32)((d) + ((c) << 8) + ((b) << 16) + ((a) << 24)) 00007 #else 00008 #define WAVE_SIG(a, b, c, d) \ 00009 (UINT32)((a) + ((b) << 8) + ((c) << 16) + ((d) << 24)) 00010 #endif 00011 00012 typedef struct { 00013 UINT32 sig; 00014 UINT8 size[4]; 00015 UINT32 fmt; 00016 } RIFF_HEADER; 00017 00018 typedef struct { 00019 UINT sig; 00020 UINT8 size[4]; 00021 } WAVE_HEADER; 00022 00023 typedef struct { 00024 UINT8 format[2]; 00025 UINT8 channel[2]; 00026 UINT8 rate[4]; 00027 UINT8 rps[4]; 00028 UINT8 block[2]; 00029 UINT8 bit[2]; 00030 } WAVE_INFOS; 00031 00032 00033 // ---- write 00034 00035 typedef struct { 00036 long fh; 00037 UINT rate; 00038 UINT bits; 00039 UINT ch; 00040 UINT size; 00041 00042 UINT8 *ptr; 00043 UINT remain; 00044 UINT8 buf[4096]; 00045 } _WAVEWR, *WAVEWR; 00046 00047 00048 #ifdef __cplusplus 00049 extern "C" { 00050 #endif 00051 00052 WAVEWR wavewr_open(const OEMCHAR *filename, UINT rate, UINT bits, UINT ch); 00053 UINT wavewr_write(WAVEWR hdl, const void *buf, UINT size); 00054 void wavewr_close(WAVEWR hdl); 00055 00056 #ifdef __cplusplus 00057 } 00058 #endif 00059