OSDN Git Service

conf: make ctl.default and sysdefault devices more universal
authorJaroslav Kysela <perex@perex.cz>
Tue, 6 Apr 2021 16:19:48 +0000 (18:19 +0200)
committerJaroslav Kysela <perex@perex.cz>
Wed, 7 Apr 2021 14:24:44 +0000 (16:24 +0200)
It may be handy to add hw specific configs.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/conf/alsa.conf
src/conf/cards/aliases.conf
src/conf/ctl/default.conf [new file with mode: 0644]

index a04173a..123874a 100644 (file)
@@ -341,22 +341,8 @@ pcm.phoneline cards.pcm.phoneline
 #  Control interface
 #
        
-ctl.sysdefault {
-       type hw
-       card {
-               @func getenv
-               vars [
-                       ALSA_CTL_CARD
-                       ALSA_CARD
-               ]
-               default {
-                       @func refer
-                       name defaults.ctl.card
-               }
-       }
-       hint.description "Default control device"
-}
-ctl.default ctl.sysdefault
+ctl.default cards.ctl.default
+ctl.sysdefault cards.ctl.default
 
 ctl.hw {
        @args [ CARD ]
index 18a920f..7e352f7 100644 (file)
@@ -58,6 +58,7 @@ CMI8787 cards.CMI8788
 pistachio cards.pistachio-card
 VC4-HDMI cards.vc4-hdmi
 
+<confdir:ctl/default.conf>
 <confdir:pcm/default.conf>
 <confdir:pcm/dmix.conf>
 <confdir:pcm/dsnoop.conf>
diff --git a/src/conf/ctl/default.conf b/src/conf/ctl/default.conf
new file mode 100644 (file)
index 0000000..8bf4f1d
--- /dev/null
@@ -0,0 +1,42 @@
+#
+# Default control device
+#
+
+ctl.!default {
+       @args [ CARD ]
+       @args.CARD {
+               type string
+               default {
+                       @func getenv
+                       vars [
+                               ALSA_PCM_CARD
+                               ALSA_CARD
+                       ]
+                       default {
+                               @func refer
+                               name defaults.ctl.card
+                       }
+               }
+       }
+       type empty
+       child {
+               # use card-specific definition if exists
+               @func refer
+               name {
+                       @func concat
+                       strings [
+                               "cards."
+                               {
+                                       @func card_driver
+                                       card $CARD
+                               }
+                               ".ctl.default:CARD=" $CARD
+                       ]
+               }
+               default {
+                       type hw
+                       card $CARD
+               }
+       }
+       hint.description "Default Control Device"
+}