ALSA project - the C library reference: Primitive control plugins

ALSA project - the C library reference

Loading...
Searching...
No Matches
Primitive control plugins

Control plugins extends functionality and features of control devices. The plugins take care about various control mapping or so.

The child configuration (in one compound):

ctl.test {
type remap
child "hw:0"
... map/remap configuration ...
}

The child may be defined as compound containing the full specification:

ctl.test {
type remap
child {
type hw
card 0
}
... map/remap configuration ...
}

# Plugin: hw

This plugin communicates directly with the ALSA kernel driver. It is a raw communication without any conversions.

control.name {
type hw # Kernel PCM
card INT/STR # Card name (string) or number (integer)
}

## Function reference

- snd_ctl_hw_open()
- _snd_ctl_hw_open()

# Plugin: Remap & map

This plugin can remap (rename) identifiers (except the numid part) for a child control to another. The plugin can also merge the multiple child controls to one or split one control to more.

ctl.name {
type remap # Route & Volume conversion PCM
child STR # Slave name
# or
child { # Slave definition
type STR
...
}
remap {
# the ID strings are parsed in the amixer style like 'name="Headphone Playback Switch",index=2'
SRC_ID1_STR DST_ID1_STR
SRC_ID2_STR DST_ID2_STR
...
}
map {
# join two stereo controls to one
CREATE_ID1_STR {
SRC_ID1_STR {
vindex.0 0 # source channel 0 to merged channel 0
vindex.1 1
}
SRC_ID2_STR {
vindex.2 0
vindex.3 1 # source channel 1 to merged channel 3
}
}
# split stereo to mono
CREATE_ID2_STR {
SRC_ID3_STR {
vindex.0 0 # stereo to mono (first channel)
}
}
CREATE_ID3_STR {
SRC_ID4_STR {
vindex.0 1 # stereo to mono (second channel)
}
}
}
}

## Function reference

- snd_ctl_remap_open()
- _snd_ctl_remap_open()