(svn r17140) -Change: allow higher sample rate and higher quality samples. Based on work by orudge.

This commit is contained in:
rubidium
2009-08-09 23:04:08 +00:00
parent 93493827b6
commit 9192402bfb
7 changed files with 80 additions and 21 deletions

View File

@@ -57,7 +57,7 @@ const char *SoundDriver_Allegro::Start(const char * const *parm)
return "No sound card found";
}
_stream = play_audio_stream(BUFFER_SIZE, 16, true, 11025, 255, 128);
_stream = play_audio_stream(BUFFER_SIZE, 16, true, 44100, 255, 128);
MxInitialize(11025);
return NULL;
}

View File

@@ -47,7 +47,7 @@ const char *SoundDriver_Cocoa::Start(const char * const *parm)
requestedDesc.mFormatID = kAudioFormatLinearPCM;
requestedDesc.mFormatFlags = kLinearPCMFormatFlagIsPacked;
requestedDesc.mChannelsPerFrame = 2;
requestedDesc.mSampleRate = GetDriverParamInt(parm, "hz", 11025);
requestedDesc.mSampleRate = GetDriverParamInt(parm, "hz", 44100);
requestedDesc.mBitsPerChannel = 16;
requestedDesc.mFormatFlags |= kLinearPCMFormatFlagIsSignedInteger;

View File

@@ -25,7 +25,7 @@ const char *SoundDriver_SDL::Start(const char * const *parm)
const char *s = SdlOpen(SDL_INIT_AUDIO);
if (s != NULL) return s;
spec.freq = GetDriverParamInt(parm, "hz", 11025);
spec.freq = GetDriverParamInt(parm, "hz", 44100);
spec.format = AUDIO_S16SYS;
spec.channels = 2;
spec.samples = 512;

View File

@@ -56,11 +56,11 @@ const char *SoundDriver_Win32::Start(const char * const *parm)
wfex.wFormatTag = WAVE_FORMAT_PCM;
wfex.nChannels = 2;
wfex.wBitsPerSample = 16;
wfex.nSamplesPerSec = GetDriverParamInt(parm, "hz", 11025);
wfex.nSamplesPerSec = GetDriverParamInt(parm, "hz", 44100);
wfex.nBlockAlign = (wfex.nChannels * wfex.wBitsPerSample) / 8;
wfex.nAvgBytesPerSec = wfex.nSamplesPerSec * wfex.nBlockAlign;
_bufsize = GetDriverParamInt(parm, "bufsize", (GB(GetVersion(), 0, 8) > 5) ? 2048 : 1024);
_bufsize = GetDriverParamInt(parm, "bufsize", (GB(GetVersion(), 0, 8) > 5) ? 8192 : 4096);
if (waveOutOpen(&_waveout, WAVE_MAPPER, &wfex, (DWORD_PTR)&waveOutProc, 0, CALLBACK_FUNCTION) != MMSYSERR_NOERROR)
return "waveOutOpen failed";