|
|
| version 1.1, 2003/10/21 14:57:41 | version 1.3, 2003/11/21 06:51:15 |
|---|---|
| Line 5 | Line 5 |
| #include "soundmng.h" | #include "soundmng.h" |
| #include "sound.h" | #include "sound.h" |
| #if defined(VERMOUTH_LIB) | #if defined(VERMOUTH_LIB) |
| #include "vermouth.h" | #include "commng.h" |
| #include "cmver.h" | |
| #endif | #endif |
| Line 29 static DWORD lasttick = 0; | Line 30 static DWORD lasttick = 0; |
| static DWORD retry = 0; | static DWORD retry = 0; |
| static UINT currate = 22050; | static UINT currate = 22050; |
| static UINT curms = 500; | static UINT curms = 500; |
| static BYTE playing; | static UINT mute; |
| #if defined(VERMOUTH_LIB) | |
| MIDIMOD vermouth_module = NULL; | |
| #endif | |
| static const DWORD capsfmt[] = { | static const DWORD capsfmt[] = { |
| WAVE_FORMAT_1S16, WAVE_FORMAT_2S16, WAVE_FORMAT_4S16}; | WAVE_FORMAT_1S16, WAVE_FORMAT_2S16, WAVE_FORMAT_4S16}; |
| Line 46 static const DWORD capsfmt[] = { | Line 43 static const DWORD capsfmt[] = { |
| extern HWND hWndMain; | extern HWND hWndMain; |
| void wavemng_cb(UINT msg, HWAVEOUT hwo, WAVEHDR *whd) { | void soundmng_cb(UINT msg, HWAVEOUT hwo, WAVEHDR *whd) { |
| short *dst; | short *dst; |
| const SINT32 *pcm; | const SINT32 *pcm; |
| Line 56 const SINT32 *pcm; | Line 53 const SINT32 *pcm; |
| if (whd->lpData) { | if (whd->lpData) { |
| dst = (short *)whd->lpData; | dst = (short *)whd->lpData; |
| pcm = NULL; | pcm = NULL; |
| if (playing) { | if (!mute) { |
| pcm = sound_pcmlock(); | pcm = sound_pcmlock(); |
| } | } |
| if (pcm) { | if (pcm) { |
| Line 84 const SINT32 *pcm; | Line 81 const SINT32 *pcm; |
| if (((WAVEHDR *)dwParam1)->lpData) { | if (((WAVEHDR *)dwParam1)->lpData) { |
| dst = (short *)((WAVEHDR *)dwParam1)->lpData; | dst = (short *)((WAVEHDR *)dwParam1)->lpData; |
| pcm = NULL; | pcm = NULL; |
| if (playing) { | if (!mute) { |
| pcm = sound_pcmlock(); | pcm = sound_pcmlock(); |
| } | } |
| if (pcm) { | if (pcm) { |
| Line 180 UINT soundmng_create(UINT rate, UINT ms) | Line 177 UINT soundmng_create(UINT rate, UINT ms) |
| waveOutWrite(w_ctrl.hwave, w_ctrl.wh + i, sizeof(WAVEHDR)); | waveOutWrite(w_ctrl.hwave, w_ctrl.wh + i, sizeof(WAVEHDR)); |
| } | } |
| #if defined(VERMOUTH_LIB) | #if defined(VERMOUTH_LIB) |
| vermouth_module = midimod_create(rate); | cmvermouth_load(rate); |
| for (num=0; num<128; num++) { | |
| midimod_loadprogram(vermouth_module, num); | |
| midimod_loadrhythm(vermouth_module, num); | |
| } | |
| #endif | #endif |
| currate = rate; | currate = rate; |
| curms = ms; | curms = ms; |
| Line 227 void soundmng_destroy(void) { | Line 220 void soundmng_destroy(void) { |
| } while(--retry); | } while(--retry); |
| _MFREE(w_ctrl.buffer); | _MFREE(w_ctrl.buffer); |
| #if defined(VERMOUTH_LIB) | #if defined(VERMOUTH_LIB) |
| midimod_destroy(vermouth_module); | // cmvermouth_unload(); // 終了時に unload |
| vermouth_module = NULL; | |
| #endif | #endif |
| waveopened = FALSE; | waveopened = FALSE; |
| } | } |
| } | } |
| void soundmng_play(void) { | |
| playing = TRUE; | // ---- |
| } | |
| void soundmng_stop(void) { | |
| playing = FALSE; | // WinCE版 … vermouthのロードに時間掛かるので |
| void soundmng_initialize(void) { | |
| } | } |
| void soundmng_deinitialize(void) { | |
| // ---- | #if defined(VERMOUTH_LIB) |
| cmvermouth_unload(); | |
| #endif | |
| } | |
| void soundmng_awake(void) { | void soundmng_awake(void) { |
| Line 265 void soundmng_awake(void) { | Line 258 void soundmng_awake(void) { |
| } | } |
| } | } |
| void soundmng_enable(UINT proc) { | |
| mute &= ~(1 << proc); | |
| } | |
| void soundmng_disable(UINT proc) { | |
| mute |= 1 << proc; | |
| } | |