sdl_sound.cpp: Correct default device selection logic. #13914
+1
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The logic on the
SDL_OpenAudioDevice()
call was inverted.This:
SDL_OpenAudioDevice(dev.m_def ? nullptr : dev.m_name.c_str(), 0, &dspec, &ospec, 0);
...would mean that if
dev.m_def
has non-zero value,nullptr
would be used instead ofdev.m_name.c_str()
, which makes no sense: we want to usedev.m_name.c_str()
whendev.m_def
is non-zero, andnullptr
otherwise.As a side-effect, this works around SDL2's ALSA backend inability to report a default audio device with
SDL_GetDefaultAudioInfo()
and thus is a workaround for issue #13910That 's because, when no default device is reported by
SDL_GetDefaultAudioInfo()
, nullptr is properly passed toSDL_OpenAudioDevice()
now and the default device is chosen by SDL2 as most SDL2 programs/games do.