diff options
author | peter1138 <peter1138@openttd.org> | 2009-07-10 18:22:04 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2009-07-10 18:22:04 +0000 |
commit | c654dedb28b9f3f15eda261545daa333534a7177 (patch) | |
tree | 36b846358b2cab6dbbfa20604dbe3098084d24f6 /src/sound | |
parent | 1c1b6da4a3f1a457b5e202f33fc51860a90e4573 (diff) | |
download | openttd-c654dedb28b9f3f15eda261545daa333534a7177.tar.xz |
(svn r16784) -Fix: Audio playback rate was fixed at 11025Hz regardless of the rate specified to the audio driver, resulting in incorrect playback speed. It is still preferable to use 11025Hz output rate if possible as OpenTTD's sample rate converter is very low quality.
Diffstat (limited to 'src/sound')
-rw-r--r-- | src/sound/allegro_s.cpp | 1 | ||||
-rw-r--r-- | src/sound/cocoa_s.cpp | 1 | ||||
-rw-r--r-- | src/sound/sdl_s.cpp | 1 | ||||
-rw-r--r-- | src/sound/win32_s.cpp | 2 |
4 files changed, 5 insertions, 0 deletions
diff --git a/src/sound/allegro_s.cpp b/src/sound/allegro_s.cpp index 069e473e5..a94f6d238 100644 --- a/src/sound/allegro_s.cpp +++ b/src/sound/allegro_s.cpp @@ -58,6 +58,7 @@ const char *SoundDriver_Allegro::Start(const char * const *parm) } _stream = play_audio_stream(BUFFER_SIZE, 16, true, 11025, 255, 128); + MxInitialize(11025); return NULL; } diff --git a/src/sound/cocoa_s.cpp b/src/sound/cocoa_s.cpp index 7e315fb75..851136efa 100644 --- a/src/sound/cocoa_s.cpp +++ b/src/sound/cocoa_s.cpp @@ -69,6 +69,7 @@ const char *SoundDriver_Cocoa::Start(const char * const *parm) requestedDesc.mBytesPerFrame = requestedDesc.mBitsPerChannel * requestedDesc.mChannelsPerFrame / 8; requestedDesc.mBytesPerPacket = requestedDesc.mBytesPerFrame * requestedDesc.mFramesPerPacket; + MxInitialize(requestedDesc.mSampleRate); /* Locate the default output audio unit */ desc.componentType = kAudioUnitType_Output; diff --git a/src/sound/sdl_s.cpp b/src/sound/sdl_s.cpp index d111ac8ed..7c89331f7 100644 --- a/src/sound/sdl_s.cpp +++ b/src/sound/sdl_s.cpp @@ -30,6 +30,7 @@ const char *SoundDriver_SDL::Start(const char * const *parm) spec.channels = 2; spec.samples = 512; spec.callback = fill_sound_buffer; + MxInitialize(spec.freq); SDL_CALL SDL_OpenAudio(&spec, &spec); SDL_CALL SDL_PauseAudio(0); return NULL; diff --git a/src/sound/win32_s.cpp b/src/sound/win32_s.cpp index 3a5419495..776158adf 100644 --- a/src/sound/win32_s.cpp +++ b/src/sound/win32_s.cpp @@ -65,6 +65,8 @@ const char *SoundDriver_Win32::Start(const char * const *parm) if (waveOutOpen(&_waveout, WAVE_MAPPER, &wfex, (DWORD_PTR)&waveOutProc, 0, CALLBACK_FUNCTION) != MMSYSERR_NOERROR) return "waveOutOpen failed"; + MxInitialize(wfex.nSamplesPerSec); + PrepareHeader(&_wave_hdr[0]); PrepareHeader(&_wave_hdr[1]); FillHeaders(); |