|
|
| version 1.3, 2004/08/11 12:08:16 | version 1.6, 2008/06/02 20:07:32 |
|---|---|
| Line 1 | Line 1 |
| #include "compiler.h" | #include "compiler.h" |
| // #include "wavefile.h" | |
| #if !defined(DISABLE_SOUND) | |
| #include "wavefile.h" | |
| #include "dosio.h" | #include "dosio.h" |
| #include "soundmng.h" | #include "soundmng.h" |
| #include "z80core.h" | #include "z80core.h" |
| #include "pccore.h" | #include "pccore.h" |
| // #include "iocore.h" | |
| #include "sound.h" | #include "sound.h" |
| #include "sndcsec.h" | #include "sndcsec.h" |
| // #include "getsnd.h" | /* #include "getsnd.h" */ |
| SOUNDCFG soundcfg; | SOUNDCFG soundcfg; |
| Line 65 static void streamprepare(UINT samples) | Line 67 static void streamprepare(UINT samples) |
| #if defined(SUPPORT_WAVEREC) | #if defined(SUPPORT_WAVEREC) |
| // ---- wave rec | /* wave rec */ |
| BOOL sound_recstart(const char *filename) { | BRESULT sound_recstart(const OEMCHAR *filename) { |
| WAVEWR rec; | WAVEWR rec; |
| Line 124 static void streamfilewrite(UINT samples | Line 126 static void streamfilewrite(UINT samples |
| else if (samp < -32768) { | else if (samp < -32768) { |
| samp = -32768; | samp = -32768; |
| } | } |
| // little endianなので satuation_s16は使えない | /* little endianなので satuation_s16は使えない */ |
| buf[i*2+0] = (UINT8)samp; | buf[i*2+0] = (UINT8)samp; |
| buf[i*2+1] = (UINT8)(samp >> 8); | buf[i*2+1] = (UINT8)(samp >> 8); |
| } | } |
| Line 164 static void filltailsample(UINT count) { | Line 166 static void filltailsample(UINT count) { |
| #endif | #endif |
| // ---- | /* ---- */ |
| BOOL sound_create(UINT rate, UINT ms) { | BRESULT sound_create(UINT rate, UINT ms) { |
| UINT samples; | UINT samples; |
| UINT reserve; | UINT reserve; |
| Line 238 void sound_changeclock(void) { | Line 240 void sound_changeclock(void) { |
| return; | return; |
| } | } |
| // とりあえず 25で割り切れる。 | /* とりあえず 25で割り切れる。 */ |
| clock = pccore.realclock / 25; | clock = pccore.realclock / 25; |
| hz = soundcfg.rate / 25; | hz = soundcfg.rate / 25; |
| // で、クロック数に合せて調整。(64bit演算しろよな的) | /* で、クロック数に合せて調整。(64bit演算しろよな的) */ |
| hzmax = (1 << (32 - 8)) / (clock >> 8); | hzmax = (1 << (32 - 8)) / (clock >> 8); |
| while(hzmax < hz) { | while(hzmax < hz) { |
| clock = (clock + 1) >> 1; | clock = (clock + 1) >> 1; |
| Line 268 void sound_streamregist(void *hdl, SOUND | Line 270 void sound_streamregist(void *hdl, SOUND |
| } | } |
| // ---- | /* ---- */ |
| void sound_sync(void) { | void sound_sync(void) { |
| Line 311 const SINT32 *sound_pcmlock(void) { | Line 313 const SINT32 *sound_pcmlock(void) { |
| const SINT32 *ret; | const SINT32 *ret; |
| if (locks) { | if (locks) { |
| // TRACEOUT(("sound pcm lock: already locked")); | /* TRACEOUT(("sound pcm lock: already locked")); */ |
| return(NULL); | return(NULL); |
| } | } |
| locks++; | locks++; |
| Line 349 void sound_pcmunlock(const SINT32 *hdl) | Line 351 void sound_pcmunlock(const SINT32 *hdl) |
| } | } |
| sndstream.ptr = sndstream.buffer + (leng * 2); | sndstream.ptr = sndstream.buffer + (leng * 2); |
| sndstream.remain = sndstream.samples + sndstream.reserve - leng; | sndstream.remain = sndstream.samples + sndstream.reserve - leng; |
| // sndstream.remain += sndstream.samples; | /* sndstream.remain += sndstream.samples; */ |
| SNDCSEC_LEAVE; | SNDCSEC_LEAVE; |
| locks--; | locks--; |
| } | } |
| } | } |
| #endif | |