# # ALSA library configuration file # # preload configuration files @hooks [ { func load files [ "/etc/asound.conf" "~/.asoundrc" ] errors false } ] # load card-specific configuration files (on request) cards.@hooks [ { func load_for_all_cards files [ { @func concat strings [ { @func datadir } "/cards/" { @func private_card_strtype } ".conf" ] } ] errors false } ] # defaults defaults.ctl.card 0 defaults.pcm.card 0 defaults.pcm.device 0 defaults.pcm.subdevice -1 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.surround40.card defaults.pcm.card defaults.pcm.surround40.device defaults.pcm.device defaults.pcm.surround51.card defaults.pcm.card defaults.pcm.surround51.device defaults.pcm.device defaults.pcm.iec958.card defaults.pcm.card defaults.pcm.iec958.device defaults.pcm.device defaults.rawmidi.card 0 defaults.rawmidi.device 0 defaults.rawmidi.subdevice -1 # # 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 } 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 } } 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 raw } type file slave.pcm $SLAVE file $FILE format $FORMAT } pcm.file { @args [ FILE FORMAT ] @args.FILE { type string } @args.FORMAT { type string default raw } type file slave.pcm null file $FILE format $FORMAT } pcm.null { 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.front cards.pcm.front pcm.rear cards.pcm.rear pcm.center_lfe cards.pcm.center_lfe pcm.surround40 cards.pcm.surround40 pcm.surround51 cards.pcm.surround51 pcm.iec958 cards.pcm.iec958 pcm.spdif cards.pcm.iec958 # # Control interface # 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 } ctl.shm { @args [ SOCKET CTL ] @args.SOCKET { type string } @args.CTL { type string } type shm server $SOCKET ctl $CTL } ctl.default { type hw card { @func getenv vars [ ALSA_CTL_CARD ALSA_CARD ] default { @func refer name defaults.ctl.card } } } # # RawMidi interface # 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 } 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 } } } # # Sequencer interface # seq.default { type hw } seq.hw { type hw }