hints: Added SDL_HINT_AUDIO_ENFORCE_MINIMUM_SPEC.

Fixes #14426.
This commit is contained in:
unknown
2025-11-30 23:26:02 -05:00
parent ea1514ab63
commit b7c8b2f29a
2 changed files with 44 additions and 11 deletions

View File

@@ -493,6 +493,36 @@ extern "C" {
*/
#define SDL_HINT_AUDIO_DUMMY_TIMESCALE "SDL_AUDIO_DUMMY_TIMESCALE"
/**
* A variable controlling whether SDL enforces a minimum audio device spec.
*
* By default, SDL will require devices to be opened at a minimum spec
* (at time of writing: 44100Hz, stereo, Sint16 format), so if something
* lower quality tries to open the device first, it doesn't ruin audio
* for the next thing that opens a device. For example, if a VoIP library
* wants Uint8, 8000Hz, mono output, it doesn't force the entire game to
* this state simply because it got there first.
*
* However, an app that knows it will definitely be the only thing opening
* a device, and wants to open it at a lower spec, might be able to avoid
* some otherwise-unnecessary conversions by bypassing this minimum
* requirement.
*
* Note that even without the minimum enforcement, the system might choose a
* different format/channels/frequency than requested by the app; this hint
* just removes SDL's minimum policy.
*
* The variable can be set to the following values:
*
* - "0": Audio device mimimum formats _are not_ enforced.
* - "1": Audio device minimum formats _are_ enforced. (default)
*
* This hint should be set before an audio device is opened.
*
* \since This hint is available since SDL 3.4.0.
*/
#define SDL_HINT_AUDIO_ENFORCE_MINIMUM_SPEC "SDL_AUDIO_ENFORCE_MINIMUM_SPEC"
/**
* A variable controlling the default audio format.
*