Specify an application role for an audio device.
Defined in <SDL3/SDL_hints.h>
#define SDL_HINT_AUDIO_DEVICE_STREAM_ROLE "SDL_AUDIO_DEVICE_STREAM_ROLE"Some audio backends (such as Pipewire) allow you to describe the role of your audio stream. Among other things, this description might show up in a system control panel or software for displaying and manipulating media playback/recording graphs.
This hints lets you transmit that information to the OS. The contents of this hint are used while opening an audio device. You should use a string that describes your what your program is playing (Game, Music, Movie, etc...).
Setting this to "" or leaving it unset will have SDL use a reasonable default: "Game" or something similar.
Note that while this talks about audio streams, this is an OS-level concept, so it applies to a physical audio device in this case, and not an SDL_AudioStream, nor an SDL logical audio device.
For Windows WASAPI audio, the following roles are supported, and map to AUDIO_STREAM_CATEGORY:
Android's AAudio target supports this hint as of SDL 3.4.4. Android does not support the exact same options as WASAPI, but for portability, will attempt to map these same strings to the aaudio_usage_t constants. For example, "Movie" and "Media" will both map to AAUDIO_USAGE_MEDIA, etc.
If your application applies its own echo cancellation, gain control, and noise reduction it should also set SDL_HINT_AUDIO_DEVICE_RAW_STREAM.
This hint should be set before an audio device is opened.
This hint is available since SDL 3.2.0.