From: Anton Baskanov baskanov@gmail.com
--- dlls/dmsynth/synth.c | 14 +++++++------- dlls/dmsynth/tests/dmsynth.c | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/dlls/dmsynth/synth.c b/dlls/dmsynth/synth.c index ecf1dead8a8..b94c4479f18 100644 --- a/dlls/dmsynth/synth.c +++ b/dlls/dmsynth/synth.c @@ -532,26 +532,26 @@ static HRESULT WINAPI synth_Open(IDirectMusicSynth8 *iface, DMUS_PORTPARAMS *par
if (size > params->dwSize) size = params->dwSize;
- if ((params->dwValidParams & DMUS_PORTPARAMS_VOICES) && params->dwVoices) + if (params->dwValidParams & DMUS_PORTPARAMS_VOICES) { - actual.dwVoices = min(params->dwVoices, This->caps.dwMaxVoices); + actual.dwVoices = min(max(params->dwVoices, 1), This->caps.dwMaxVoices); modified |= actual.dwVoices != params->dwVoices; }
- if ((params->dwValidParams & DMUS_PORTPARAMS_CHANNELGROUPS) && params->dwChannelGroups) + if (params->dwValidParams & DMUS_PORTPARAMS_CHANNELGROUPS) { - actual.dwChannelGroups = min(params->dwChannelGroups, This->caps.dwMaxChannelGroups); + actual.dwChannelGroups = min(max(params->dwChannelGroups, 1), This->caps.dwMaxChannelGroups); modified |= actual.dwChannelGroups != params->dwChannelGroups; }
- if ((params->dwValidParams & DMUS_PORTPARAMS_AUDIOCHANNELS) && params->dwAudioChannels) + if (params->dwValidParams & DMUS_PORTPARAMS_AUDIOCHANNELS) { /* FluidSynth only works with stereo */ actual.dwAudioChannels = 2; modified |= actual.dwAudioChannels != params->dwAudioChannels; }
- if ((params->dwValidParams & DMUS_PORTPARAMS_SAMPLERATE) && params->dwSampleRate) + if (params->dwValidParams & DMUS_PORTPARAMS_SAMPLERATE) { actual.dwSampleRate = min(max(params->dwSampleRate, 11025), 96000); modified |= actual.dwSampleRate != params->dwSampleRate; @@ -571,7 +571,7 @@ static HRESULT WINAPI synth_Open(IDirectMusicSynth8 *iface, DMUS_PORTPARAMS *par
if (params->dwSize < sizeof(*params)) actual.dwValidParams &= ~DMUS_PORTPARAMS_FEATURES; - else if ((params->dwValidParams & DMUS_PORTPARAMS_FEATURES) && params->dwFeatures) + else if (params->dwValidParams & DMUS_PORTPARAMS_FEATURES) { actual.dwFeatures = params->dwFeatures & (DMUS_PORT_FEATURE_AUDIOPATH | DMUS_PORT_FEATURE_STREAMING); modified |= actual.dwFeatures != params->dwFeatures; diff --git a/dlls/dmsynth/tests/dmsynth.c b/dlls/dmsynth/tests/dmsynth.c index 8029c67c8a7..5f875868171 100644 --- a/dlls/dmsynth/tests/dmsynth.c +++ b/dlls/dmsynth/tests/dmsynth.c @@ -418,10 +418,10 @@ static void test_dmsynth(void) ok(hr == S_FALSE, "Open failed: %#lx\n", hr); ok(params.dwSize == sizeof(params), "dwSize: %ld\n", params.dwSize); ok(params.dwValidParams == all_params, "dwValidParams: %#lx\n", params.dwValidParams); - todo_wine ok(params.dwVoices == 1, "dwVoices: %ld\n", params.dwVoices); - todo_wine ok(params.dwChannelGroups == 1, "dwChannelGroups: %ld\n", params.dwChannelGroups); + ok(params.dwVoices == 1, "dwVoices: %ld\n", params.dwVoices); + ok(params.dwChannelGroups == 1, "dwChannelGroups: %ld\n", params.dwChannelGroups); todo_wine ok(params.dwAudioChannels == 1, "dwAudioChannels: %ld\n", params.dwAudioChannels); - todo_wine ok(params.dwSampleRate == 11025, "dwSampleRate: %ld\n", params.dwSampleRate); + ok(params.dwSampleRate == 11025, "dwSampleRate: %ld\n", params.dwSampleRate); todo_wine ok(params.dwEffectFlags == 0, "params.dwEffectFlags: %#lx\n", params.dwEffectFlags); ok(params.fShare == FALSE, "fShare: %d\n", params.fShare); ok(params.dwFeatures == 0, "dwFeatures: %#lx\n", params.dwFeatures);