diff options
author | glx <glx@openttd.org> | 2008-03-15 21:12:08 +0000 |
---|---|---|
committer | glx <glx@openttd.org> | 2008-03-15 21:12:08 +0000 |
commit | 42647b90a32095642359627298b2e349220bb051 (patch) | |
tree | eb63053cf20868fdf6a8e3209dcd5a803089c724 | |
parent | 808c03ef8d7de2468d6708e3805209ea0b3f873a (diff) | |
download | openttd-42647b90a32095642359627298b2e349220bb051.tar.xz |
(svn r12372) -Fix: win32 music driver fails if path contains non-latin chars
-rw-r--r-- | src/music/win32_m.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/music/win32_m.cpp b/src/music/win32_m.cpp index 356d33c76..8ec6756c4 100644 --- a/src/music/win32_m.cpp +++ b/src/music/win32_m.cpp @@ -46,28 +46,29 @@ void MusicDriver_Win32::SetVolume(byte vol) SetEvent(_midi.wait_obj); } -static MCIERROR CDECL MidiSendCommand(const char* cmd, ...) +static MCIERROR CDECL MidiSendCommand(const TCHAR* cmd, ...) { va_list va; - char buf[512]; + TCHAR buf[512]; va_start(va, cmd); - vsnprintf(buf, lengthof(buf), cmd, va); + _vsntprintf(buf, lengthof(buf), cmd, va); va_end(va); - return mciSendStringA(buf, NULL, 0, 0); + return mciSendString(buf, NULL, 0, 0); } static bool MidiIntPlaySong(const char *filename) { - MidiSendCommand("close all"); - if (MidiSendCommand("open \"%s\" type sequencer alias song", filename) != 0) return false; + MidiSendCommand(_T("close all")); - return MidiSendCommand("play song from 0") == 0; + if (MidiSendCommand(_T("open \"%s\" type sequencer alias song"), OTTD2FS(filename)) != 0) return false; + + return MidiSendCommand(_T("play song from 0")) == 0; } static void MidiIntStopSong() { - MidiSendCommand("close all"); + MidiSendCommand(_T("close all")); } static void MidiIntSetVolume(int vol) |