"default" PCM can be card-specific.
The definition is moved to pcm/default.conf, and read on-demmand via
aliases.conf. The card config can override the default config.
type null
}
-pcm.default {
- type plug
- slave.pcm {
- type hw
- card {
- @func getenv
- vars [
- ALSA_PCM_CARD
- ALSA_CARD
- ]
- default {
- @func refer
- name defaults.pcm.card
- }
- }
- device {
- @func igetenv
- vars [
- ALSA_PCM_DEVICE
- ]
- default {
- @func refer
- name defaults.pcm.device
- }
- }
- subdevice {
- @func refer
- name defaults.pcm.subdevice
- }
- }
-}
-
# redirect to load-on-demand extended pcm definitions
pcm.cards cards.pcm
# some links for easy use
pcm.iec958 cards.pcm.iec958
pcm.spdif cards.pcm.iec958
pcm.modem cards.pcm.modem
+pcm.default cards.pcm.default
#
# Control interface
'USB US-X2Y' cards.US-X2Y
'Serial MIDI' cards.SerialMIDI
'Prodif Plus' cards.ProdifPlus
+ESM1 cards.ES1968
+ES1978 cards.ES1968
+Allegro cards.Maestro3
+Canyon3D-2 cards.Maestro3
+
+<confdir:pcm/default.conf>
-cfg_files = front.conf rear.conf center_lfe.conf side.conf\
+cfg_files = default.conf front.conf rear.conf center_lfe.conf side.conf\
surround40.conf surround41.conf \
surround50.conf surround51.conf \
surround71.conf iec958.conf modem.conf
--- /dev/null
+#
+# Default output
+#
+
+pcm.!default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.card
+ }
+ }
+ }
+ # use card-specific definition if exists
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".pcm.default:CARD=" $CARD
+ ]
+ }
+ default {
+ # use plughw as default
+ type plug
+ slave.pcm hw
+ }
+}