mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-11-26 07:00:11 -05:00
Some broken applications like Audacious don't set any timing parameters. While the alsa-lib behaviour is to select the smallest period size and biggest buffer size, the result is the generation of thousands interrupts per second. The default value in alsa.conf is 5000usec. Signed-off-by: Jaroslav Kysela <perex@perex.cz>
608 lines
8.8 KiB
Text
608 lines
8.8 KiB
Text
#
|
|
# ALSA library configuration file
|
|
#
|
|
|
|
# pre-load the configuration files
|
|
|
|
@hooks [
|
|
{
|
|
func load
|
|
files [
|
|
"/etc/asound.conf"
|
|
"~/.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"
|
|
]
|
|
}
|
|
]
|
|
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.minperiodtime 5000 # in us
|
|
defaults.pcm.ipc_key 5678293
|
|
defaults.pcm.ipc_gid audio
|
|
defaults.pcm.ipc_perm 0660
|
|
defaults.pcm.dmix.max_periods 0
|
|
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.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
|
|
# truncate files via file or tee PCM
|
|
defaults.pcm.file_format "raw"
|
|
defaults.pcm.file_truncate true
|
|
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
|
|
#
|
|
|
|
# redirect to load-on-demand extended pcm definitions
|
|
pcm.cards cards.pcm
|
|
|
|
pcm.default 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.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
|
|
|
|
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)"
|
|
}
|
|
}
|
|
|
|
#
|
|
# Control interface
|
|
#
|
|
|
|
ctl.default {
|
|
type hw
|
|
card {
|
|
@func getenv
|
|
vars [
|
|
ALSA_CTL_CARD
|
|
ALSA_CARD
|
|
]
|
|
default {
|
|
@func refer
|
|
name defaults.ctl.card
|
|
}
|
|
}
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
#
|
|
# 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
|
|
}
|
|
}
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
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
|
|
}
|
|
}
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
#
|
|
# 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 direct hardware 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
|
|
}
|