|
|
| version 1.1, 2003/10/16 17:58:01 | version 1.6, 2004/02/18 21:58:41 |
|---|---|
| Line 5 | Line 5 |
| typedef void (SOUNDCALL * SOUNDCB)(void *hdl, SINT32 *pcm, UINT count); | typedef void (SOUNDCALL * SOUNDCB)(void *hdl, SINT32 *pcm, UINT count); |
| typedef struct { | |
| UINT rate; | |
| UINT32 hzbase; | |
| UINT32 clockbase; | |
| UINT32 minclock; | |
| UINT32 lastclock; | |
| UINT writecount; | |
| } SOUNDCFG; | |
| #ifdef __cplusplus | #ifdef __cplusplus |
| extern "C" { | extern "C" { |
| #endif | #endif |
| extern UINT32 opna_rate; | extern SOUNDCFG soundcfg; |
| extern UINT32 dsound_lastclock; | |
| BOOL sound_create(UINT rate, UINT ms); | BOOL sound_create(UINT rate, UINT ms); |
| void sound_destroy(void); | void sound_destroy(void); |
| void sound_reset(void); | void sound_reset(void); |
| void sound_changeclock(void); | |
| void sound_streamregist(void *hdl, SOUNDCB cbfn); | void sound_streamregist(void *hdl, SOUNDCB cbfn); |
| void sound_sync(void); | void sound_sync(void); |
| Line 29 void sound_pcmunlock(const SINT32 *hdl); | Line 37 void sound_pcmunlock(const SINT32 *hdl); |
| } | } |
| #endif | #endif |
| // ---- PCM MIX | |
| enum { | |
| PMIXFLAG_L = 0x0001, | |
| PMIXFLAG_R = 0x0002, | |
| PMIXFLAG_LOOP = 0x0004 | |
| }; | |
| typedef struct { | |
| UINT32 playing; | |
| UINT32 enable; | |
| } PMIXHDR; | |
| typedef struct { | |
| SINT16 *sample; | |
| UINT samples; | |
| } PMIXDAT; | |
| typedef struct { | |
| const SINT16 *pcm; | |
| UINT remain; | |
| PMIXDAT data; | |
| UINT flag; | |
| SINT32 volume; | |
| } PMIXTRK; | |
| typedef struct { | |
| PMIXHDR hdr; | |
| PMIXTRK trk[1]; | |
| } _PCMMIX, *PCMMIX; | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| BOOL pcmmix_regist(PMIXDAT *dat, void *datptr, UINT datsize, UINT rate); | |
| BOOL pcmmix_regfile(PMIXDAT *dat, const char *fname, UINT rate); | |
| void SOUNDCALL pcmmix_getpcm(PCMMIX hdl, SINT32 *pcm, UINT count); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |