DOSBox-X
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator
src/hardware/snd_pc98/common/wavefile.h
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