Module: wine Branch: master Commit: b1d9d43af7fad7308b26cc62a23483a96e4547bd URL: http://source.winehq.org/git/wine.git/?a=commit;h=b1d9d43af7fad7308b26cc62a2...
Author: Andrew Eikum aeikum@codeweavers.com Date: Tue Dec 4 11:41:10 2012 -0600
winmm: Don't mask out SND_ALIAS_ID or SND_FILENAME in sndPlaySound.
---
dlls/winmm/playsound.c | 4 ++-- dlls/winmm/tests/wave.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/dlls/winmm/playsound.c b/dlls/winmm/playsound.c index 0d32274..64db333 100644 --- a/dlls/winmm/playsound.c +++ b/dlls/winmm/playsound.c @@ -560,7 +560,7 @@ BOOL WINAPI PlaySoundW(LPCWSTR pszSoundW, HMODULE hmod, DWORD fdwSound) */ BOOL WINAPI sndPlaySoundA(LPCSTR pszSoundA, UINT uFlags) { - uFlags &= SND_ASYNC|SND_LOOP|SND_MEMORY|SND_NODEFAULT|SND_NOSTOP|SND_SYNC; + uFlags &= SND_ALIAS_ID|SND_FILENAME|SND_ASYNC|SND_LOOP|SND_MEMORY|SND_NODEFAULT|SND_NOSTOP|SND_SYNC; return MULTIMEDIA_PlaySound(pszSoundA, 0, uFlags, FALSE); }
@@ -569,7 +569,7 @@ BOOL WINAPI sndPlaySoundA(LPCSTR pszSoundA, UINT uFlags) */ BOOL WINAPI sndPlaySoundW(LPCWSTR pszSound, UINT uFlags) { - uFlags &= SND_ASYNC|SND_LOOP|SND_MEMORY|SND_NODEFAULT|SND_NOSTOP|SND_SYNC; + uFlags &= SND_ALIAS_ID|SND_FILENAME|SND_ASYNC|SND_LOOP|SND_MEMORY|SND_NODEFAULT|SND_NOSTOP|SND_SYNC; return MULTIMEDIA_PlaySound(pszSound, 0, uFlags, TRUE); }
diff --git a/dlls/winmm/tests/wave.c b/dlls/winmm/tests/wave.c index 28b4145..97849f5 100644 --- a/dlls/winmm/tests/wave.c +++ b/dlls/winmm/tests/wave.c @@ -1443,8 +1443,41 @@ static void wave_out_tests(void) wave_out_test_device(WAVE_MAPPER); }
+static void test_sndPlaySound(void) +{ + BOOL br; + + static const WCHAR not_existW[] = {'C',':','\','n','o','t','_','e','x','i','s','t','.','w','a','v',0}; + static const WCHAR SystemAsteriskW[] = {'S','y','s','t','e','m','A','s','t','e','r','i','s','k',0}; + + br = sndPlaySoundA((LPCSTR)SND_ALIAS_SYSTEMASTERISK, SND_ALIAS_ID|SND_SYNC); + ok(br == TRUE || br == FALSE, "sndPlaySound gave strange return: %u\n", br); + + br = sndPlaySoundW((LPCWSTR)SND_ALIAS_SYSTEMASTERISK, SND_ALIAS_ID|SND_SYNC); + ok(br == TRUE || br == FALSE, "sndPlaySound gave strange return: %u\n", br); + + br = sndPlaySoundA((LPCSTR)sndAlias('X','Y'), SND_ALIAS_ID|SND_SYNC); + ok(br == TRUE || br == FALSE, "sndPlaySound gave strange return: %u\n", br); + + br = sndPlaySoundW((LPCWSTR)sndAlias('X','Y'), SND_ALIAS_ID|SND_SYNC); + ok(br == TRUE || br == FALSE, "sndPlaySound gave strange return: %u\n", br); + + br = sndPlaySoundA("SystemAsterisk", SND_ALIAS|SND_SYNC); + ok(br == TRUE || br == FALSE, "sndPlaySound gave strange return: %u\n", br); + + br = sndPlaySoundW(SystemAsteriskW, SND_ALIAS|SND_SYNC); + ok(br == TRUE || br == FALSE, "sndPlaySound gave strange return: %u\n", br); + + br = sndPlaySoundA("C:\not_exist.wav", SND_FILENAME|SND_SYNC); + ok(br == TRUE || br == FALSE, "sndPlaySound gave strange return: %u\n", br); + + br = sndPlaySoundW(not_existW, SND_FILENAME|SND_SYNC); + ok(br == TRUE || br == FALSE, "sndPlaySound gave strange return: %u\n", br); +} + START_TEST(wave) { test_multiple_waveopens(); wave_out_tests(); + test_sndPlaySound(); }