summaryrefslogtreecommitdiff
path: root/src/sound
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2009-07-10 18:22:04 +0000
committerpeter1138 <peter1138@openttd.org>2009-07-10 18:22:04 +0000
commitc654dedb28b9f3f15eda261545daa333534a7177 (patch)
tree36b846358b2cab6dbbfa20604dbe3098084d24f6 /src/sound
parent1c1b6da4a3f1a457b5e202f33fc51860a90e4573 (diff)
downloadopenttd-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.cpp1
-rw-r--r--src/sound/cocoa_s.cpp1
-rw-r--r--src/sound/sdl_s.cpp1
-rw-r--r--src/sound/win32_s.cpp2
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();