| # | |
| # ALSA library configuration file | |
| # | |
| # pre-load the configuration files | |
| @hooks [ | |
| { | |
| func load | |
| files [ | |
| "/var/lib/alsa/conf.d" | |
| "/usr/etc/alsa/conf.d" | |
| "/etc/alsa/conf.d" | |
| "/etc/asound.conf|||/usr/etc/asound.conf" | |
| "~/.asoundrc" | |
| { | |
| @func concat | |
| strings [ | |
| { | |
| @func getenv | |
| vars [ | |
| XDG_CONFIG_HOME | |
| ] | |
| default "~/.config" | |
| } | |
| "/alsa/asoundrc" | |
| ] | |
| } | |
| ] | |
| errors false | |
| } | |
| ] | |
| # load card-specific configuration files (on request) | |
| cards.@hooks [ | |
| { | |
| func load | |
| files [ | |
| { | |
| @func concat | |
| strings [ | |
| { @func datadir } | |
| "/cards/aliases.conf" | |
| ] | |
| } | |
| ] | |
| } | |
| { | |
| func load_for_all_cards | |
| files [ | |
| { | |
| @func concat | |
| strings [ | |
| { @func datadir } | |
| "/cards/" | |
| { @func private_string } | |
| ".conf" | |
| ] | |
| } | |
| { | |
| root { | |
| @func private_integer | |
| } | |
| file { | |
| @func concat | |
| strings [ | |
| "/var/lib/alsa/card" | |
| { @func private_integer } | |
| ".conf.d" | |
| ] | |
| } | |
| } | |
| ] | |
| table { | |
| id { | |
| @func concat | |
| strings [ | |
| { @func private_integer } | |
| ] | |
| } | |
| value { | |
| @func concat | |
| strings [ | |
| "cards." | |
| { @func private_string } | |
| ] | |
| } | |
| } | |
| errors false | |
| } | |
| ] | |
| # | |
| # defaults | |
| # | |
| # show all name hints also for definitions without hint {} section | |
| defaults.namehint.showall off | |
| # show just basic name hints | |
| defaults.namehint.basic on | |
| # show extended name hints | |
| defaults.namehint.extended off | |
| # | |
| defaults.ctl.card 0 | |
| defaults.pcm.card 0 | |
| defaults.pcm.device 0 | |
| defaults.pcm.subdevice -1 | |
| defaults.pcm.nonblock 1 | |
| defaults.pcm.compat 0 | |
| defaults.pcm.minperiodtime 5000 # in us | |
| defaults.pcm.ipc_key 5678293 | |
| defaults.pcm.ipc_gid audio | |
| defaults.pcm.ipc_perm 0660 | |
| defaults.pcm.tstamp_type default | |
| defaults.pcm.dmix.max_periods 0 | |
| defaults.pcm.dmix.channels 2 | |
| defaults.pcm.dmix.rate 48000 | |
| defaults.pcm.dmix.format unchanged | |
| defaults.pcm.dmix.card defaults.pcm.card | |
| defaults.pcm.dmix.device defaults.pcm.device | |
| defaults.pcm.dsnoop.card defaults.pcm.card | |
| defaults.pcm.dsnoop.device defaults.pcm.device | |
| defaults.pcm.front.card defaults.pcm.card | |
| defaults.pcm.front.device defaults.pcm.device | |
| defaults.pcm.rear.card defaults.pcm.card | |
| defaults.pcm.rear.device defaults.pcm.device | |
| defaults.pcm.center_lfe.card defaults.pcm.card | |
| defaults.pcm.center_lfe.device defaults.pcm.device | |
| defaults.pcm.side.card defaults.pcm.card | |
| defaults.pcm.side.device defaults.pcm.device | |
| defaults.pcm.surround21.card defaults.pcm.card | |
| defaults.pcm.surround21.device defaults.pcm.device | |
| defaults.pcm.surround40.card defaults.pcm.card | |
| defaults.pcm.surround40.device defaults.pcm.device | |
| defaults.pcm.surround41.card defaults.pcm.card | |
| defaults.pcm.surround41.device defaults.pcm.device | |
| defaults.pcm.surround50.card defaults.pcm.card | |
| defaults.pcm.surround50.device defaults.pcm.device | |
| defaults.pcm.surround51.card defaults.pcm.card | |
| defaults.pcm.surround51.device defaults.pcm.device | |
| defaults.pcm.surround71.card defaults.pcm.card | |
| defaults.pcm.surround71.device defaults.pcm.device | |
| defaults.pcm.iec958.card defaults.pcm.card | |
| defaults.pcm.iec958.device defaults.pcm.device | |
| defaults.pcm.modem.card defaults.pcm.card | |
| defaults.pcm.modem.device defaults.pcm.device | |
| defaults.pcm.file_format raw | |
| defaults.pcm.file_truncate true # truncate files via file or tee PCM | |
| defaults.rawmidi.card 0 | |
| defaults.rawmidi.device 0 | |
| defaults.rawmidi.subdevice -1 | |
| defaults.hwdep.card 0 | |
| defaults.hwdep.device 0 | |
| defaults.timer.class 2 | |
| defaults.timer.sclass 0 | |
| defaults.timer.card 0 | |
| defaults.timer.device 0 | |
| defaults.timer.subdevice 0 | |
| # | |
| # PCM interface | |
| # | |
| pcm.hw { | |
| @args [ CARD DEV SUBDEV ] | |
| @args.CARD { | |
| type string | |
| default { | |
| @func getenv | |
| vars [ | |
| ALSA_PCM_CARD | |
| ALSA_CARD | |
| ] | |
| default { | |
| @func refer | |
| name defaults.pcm.card | |
| } | |
| } | |
| } | |
| @args.DEV { | |
| type integer | |
| default { | |
| @func igetenv | |
| vars [ | |
| ALSA_PCM_DEVICE | |
| ] | |
| default { | |
| @func refer | |
| name defaults.pcm.device | |
| } | |
| } | |
| } | |
| @args.SUBDEV { | |
| type integer | |
| default { | |
| @func refer | |
| name defaults.pcm.subdevice | |
| } | |
| } | |
| type hw | |
| card $CARD | |
| device $DEV | |
| subdevice $SUBDEV | |
| hint { | |
| show { | |
| @func refer | |
| name defaults.namehint.extended | |
| } | |
| description "Direct hardware device without any conversions" | |
| } | |
| } | |
| pcm.plughw { | |
| @args [ CARD DEV SUBDEV ] | |
| @args.CARD { | |
| type string | |
| default { | |
| @func getenv | |
| vars [ | |
| ALSA_PCM_CARD | |
| ALSA_CARD | |
| ] | |
| default { | |
| @func refer | |
| name defaults.pcm.card | |
| } | |
| } | |
| } | |
| @args.DEV { | |
| type integer | |
| default { | |
| @func igetenv | |
| vars [ | |
| ALSA_PCM_DEVICE | |
| ] | |
| default { | |
| @func refer | |
| name defaults.pcm.device | |
| } | |
| } | |
| } | |
| @args.SUBDEV { | |
| type integer | |
| default { | |
| @func refer | |
| name defaults.pcm.subdevice | |
| } | |
| } | |
| type plug | |
| slave.pcm { | |
| type hw | |
| card $CARD | |
| device $DEV | |
| subdevice $SUBDEV | |
| } | |
| hint { | |
| show { | |
| @func refer | |
| name defaults.namehint.extended | |
| } | |
| description "Hardware device with all software conversions" | |
| } | |
| } | |
| pcm.plug { | |
| @args [ SLAVE ] | |
| @args.SLAVE { | |
| type string | |
| } | |
| type plug | |
| slave.pcm $SLAVE | |
| } | |
| pcm.shm { | |
| @args [ SOCKET PCM ] | |
| @args.SOCKET { | |
| type string | |
| } | |
| @args.PCM { | |
| type string | |
| } | |
| type shm | |
| server $SOCKET | |
| pcm $PCM | |
| } | |
| pcm.tee { | |
| @args [ SLAVE FILE FORMAT ] | |
| @args.SLAVE { | |
| type string | |
| } | |
| @args.FILE { | |
| type string | |
| } | |
| @args.FORMAT { | |
| type string | |
| default { | |
| @func refer | |
| name defaults.pcm.file_format | |
| } | |
| } | |
| type file | |
| slave.pcm $SLAVE | |
| file $FILE | |
| format $FORMAT | |
| truncate { | |
| @func refer | |
| name defaults.pcm.file_truncate | |
| } | |
| } | |
| pcm.file { | |
| @args [ FILE FORMAT ] | |
| @args.FILE { | |
| type string | |
| } | |
| @args.FORMAT { | |
| type string | |
| default { | |
| @func refer | |
| name defaults.pcm.file_format | |
| } | |
| } | |
| type file | |
| slave.pcm null | |
| file $FILE | |
| format $FORMAT | |
| truncate { | |
| @func refer | |
| name defaults.pcm.file_truncate | |
| } | |
| } | |
| pcm.null { | |
| type null | |
| hint { | |
| show { | |
| @func refer | |
| name defaults.namehint.basic | |
| } | |
| description "Discard all samples (playback) or generate zero samples (capture)" | |
| } | |
| } | |
| # redirect to load-on-demand extended pcm definitions | |
| pcm.cards cards.pcm | |
| pcm.default cards.pcm.default | |
| pcm.sysdefault cards.pcm.default | |
| pcm.front cards.pcm.front | |
| pcm.rear cards.pcm.rear | |
| pcm.center_lfe cards.pcm.center_lfe | |
| pcm.side cards.pcm.side | |
| pcm.surround21 cards.pcm.surround21 | |
| pcm.surround40 cards.pcm.surround40 | |
| pcm.surround41 cards.pcm.surround41 | |
| pcm.surround50 cards.pcm.surround50 | |
| pcm.surround51 cards.pcm.surround51 | |
| pcm.surround71 cards.pcm.surround71 | |
| pcm.iec958 cards.pcm.iec958 | |
| pcm.spdif iec958 | |
| pcm.hdmi cards.pcm.hdmi | |
| pcm.dmix cards.pcm.dmix | |
| pcm.dsnoop cards.pcm.dsnoop | |
| pcm.modem cards.pcm.modem | |
| pcm.phoneline cards.pcm.phoneline | |
| # | |
| # Control interface | |
| # | |
| ctl.default cards.ctl.default | |
| ctl.sysdefault cards.ctl.default | |
| ctl.hw { | |
| @args [ CARD ] | |
| @args.CARD { | |
| type string | |
| default { | |
| @func getenv | |
| vars [ | |
| ALSA_CTL_CARD | |
| ALSA_CARD | |
| ] | |
| default { | |
| @func refer | |
| name defaults.ctl.card | |
| } | |
| } | |
| } | |
| type hw | |
| card $CARD | |
| hint.description "Direct control device" | |
| } | |
| ctl.shm { | |
| @args [ SOCKET CTL ] | |
| @args.SOCKET { | |
| type string | |
| } | |
| @args.CTL { | |
| type string | |
| } | |
| type shm | |
| server $SOCKET | |
| ctl $CTL | |
| } | |
| # | |
| # RawMidi interface | |
| # | |
| rawmidi.default { | |
| type hw | |
| card { | |
| @func getenv | |
| vars [ | |
| ALSA_RAWMIDI_CARD | |
| ALSA_CARD | |
| ] | |
| default { | |
| @func refer | |
| name defaults.rawmidi.card | |
| } | |
| } | |
| device { | |
| @func igetenv | |
| vars [ | |
| ALSA_RAWMIDI_DEVICE | |
| ] | |
| default { | |
| @func refer | |
| name defaults.rawmidi.device | |
| } | |
| } | |
| hint.description "Default raw MIDI device" | |
| } | |
| rawmidi.hw { | |
| @args [ CARD DEV SUBDEV ] | |
| @args.CARD { | |
| type string | |
| default { | |
| @func getenv | |
| vars [ | |
| ALSA_RAWMIDI_CARD | |
| ALSA_CARD | |
| ] | |
| default { | |
| @func refer | |
| name defaults.rawmidi.card | |
| } | |
| } | |
| } | |
| @args.DEV { | |
| type integer | |
| default { | |
| @func igetenv | |
| vars [ | |
| ALSA_RAWMIDI_DEVICE | |
| ] | |
| default { | |
| @func refer | |
| name defaults.rawmidi.device | |
| } | |
| } | |
| } | |
| @args.SUBDEV { | |
| type integer | |
| default -1 | |
| } | |
| type hw | |
| card $CARD | |
| device $DEV | |
| subdevice $SUBDEV | |
| hint { | |
| description "Direct rawmidi driver device" | |
| device $DEV | |
| } | |
| } | |
| rawmidi.virtual { | |
| @args [ MERGE ] | |
| @args.MERGE { | |
| type string | |
| default 1 | |
| } | |
| type virtual | |
| merge $MERGE | |
| } | |
| # | |
| # Sequencer interface | |
| # | |
| seq.default { | |
| type hw | |
| hint.description "Default sequencer device" | |
| } | |
| seq.hw { | |
| type hw | |
| } | |
| # | |
| # HwDep interface | |
| # | |
| hwdep.default { | |
| type hw | |
| card { | |
| @func getenv | |
| vars [ | |
| ALSA_HWDEP_CARD | |
| ALSA_CARD | |
| ] | |
| default { | |
| @func refer | |
| name defaults.hwdep.card | |
| } | |
| } | |
| device { | |
| @func igetenv | |
| vars [ | |
| ALSA_HWDEP_DEVICE | |
| ] | |
| default { | |
| @func refer | |
| name defaults.hwdep.device | |
| } | |
| } | |
| hint.description "Default hardware dependent device" | |
| } | |
| hwdep.hw { | |
| @args [ CARD DEV ] | |
| @args.CARD { | |
| type string | |
| default { | |
| @func getenv | |
| vars [ | |
| ALSA_HWDEP_CARD | |
| ALSA_CARD | |
| ] | |
| default { | |
| @func refer | |
| name defaults.hwdep.card | |
| } | |
| } | |
| } | |
| @args.DEV { | |
| type integer | |
| default { | |
| @func igetenv | |
| vars [ | |
| ALSA_HWDEP_DEVICE | |
| ] | |
| default { | |
| @func refer | |
| name defaults.hwdep.device | |
| } | |
| } | |
| } | |
| type hw | |
| card $CARD | |
| device $DEV | |
| hint { | |
| description "Direct hardware dependent device" | |
| device $DEV | |
| } | |
| } | |
| # | |
| # Timer interface | |
| # | |
| timer_query.default { | |
| type hw | |
| } | |
| timer_query.hw { | |
| type hw | |
| } | |
| timer.default { | |
| type hw | |
| class { | |
| @func refer | |
| name defaults.timer.class | |
| } | |
| sclass { | |
| @func refer | |
| name defaults.timer.sclass | |
| } | |
| card { | |
| @func refer | |
| name defaults.timer.card | |
| } | |
| device { | |
| @func refer | |
| name defaults.timer.device | |
| } | |
| subdevice { | |
| @func refer | |
| name defaults.timer.subdevice | |
| } | |
| hint.description "Default timer device" | |
| } | |
| timer.hw { | |
| @args [ CLASS SCLASS CARD DEV SUBDEV ] | |
| @args.CLASS { | |
| type integer | |
| default { | |
| @func refer | |
| name defaults.timer.class | |
| } | |
| } | |
| @args.SCLASS { | |
| type integer | |
| default { | |
| @func refer | |
| name defaults.timer.sclass | |
| } | |
| } | |
| @args.CARD { | |
| type string | |
| default { | |
| @func refer | |
| name defaults.timer.card | |
| } | |
| } | |
| @args.DEV { | |
| type integer | |
| default { | |
| @func refer | |
| name defaults.timer.device | |
| } | |
| } | |
| @args.SUBDEV { | |
| type integer | |
| default { | |
| @func refer | |
| name defaults.timer.subdevice | |
| } | |
| } | |
| type hw | |
| class $CLASS | |
| sclass $SCLASS | |
| card $CARD | |
| device $DEV | |
| subdevice $SUBDEV | |
| hint { | |
| description "Direct timer device" | |
| device $DEV | |
| } | |
| } |