Browse Source

Added SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE

Sam Lantinga 8 months ago
parent
commit
f05cd85048
2 changed files with 12 additions and 1 deletions
  1. 11 0
      include/SDL3/SDL_hints.h
  2. 1 1
      src/audio/alsa/SDL_alsa_audio.c

+ 11 - 0
include/SDL3/SDL_hints.h

@@ -197,6 +197,17 @@ extern "C" {
  */
 #define SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION"
 
+/**
+ * Specify the default ALSA audio device name.
+ *
+ * This variable is a specific audio device to open when the "default" audio device is used. By default if 4 channel audio is requested, the "plug:surround40" device will be opened and if 6 channel audio is requested the "plug:surround51" device will be opened.
+ *
+ * This hint should be set before an audio device is opened.
+ *
+ * \since This hint is available since SDL 3.0.0.
+ */
+#define SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE "SDL_AUDIO_ALSA_DEFAULT_DEVICE"
+
 /**
  * A variable controlling the audio category on iOS and macOS.
  *

+ 1 - 1
src/audio/alsa/SDL_alsa_audio.c

@@ -228,7 +228,7 @@ static const char *get_audio_device(void *handle, const int channels)
 
     ALSA_Device *dev = (ALSA_Device *)handle;
     if (SDL_strcmp(dev->name, "default") == 0) {
-        const char *device = SDL_getenv("AUDIODEV"); // Is there a standard variable name?
+        const char *device = SDL_GetHint(SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE);
         if (device) {
             return device;
         } else if (channels == 6) {