|
|
| version 1.1, 2003/10/16 17:58:01 | version 1.8, 2004/07/01 11:42:54 |
|---|---|
| Line 3 | Line 3 |
| #define SOUNDCALL | #define SOUNDCALL |
| #endif | #endif |
| #if !defined(DISABLE_SOUND) | |
| 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 25 void sound_sync(void); | Line 35 void sound_sync(void); |
| const SINT32 *sound_pcmlock(void); | const SINT32 *sound_pcmlock(void); |
| void sound_pcmunlock(const SINT32 *hdl); | void sound_pcmunlock(const SINT32 *hdl); |
| #if defined(SUPPORT_WAVEREC) | |
| BOOL sound_recstart(const char *filename); | |
| void sound_recstop(void); | |
| #endif | |
| #ifdef __cplusplus | |
| } | |
| #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 | #ifdef __cplusplus |
| } | } |
| #endif | #endif |
| #else | |
| #define sound_pcmlock() (NULL) | |
| #define sound_pcmunlock(h) | |
| #define sound_reset() | |
| #define sound_changeclock() | |
| #define sound_sync() | |
| #endif | |