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 {
child "hw:0"
... map/remap configuration ...
}
uint8_t type
Definition ump_msg.h:1
The child may be defined as compound containing the full specification:
ctl.test {
child {
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 {
card INT/STR # Card name (string) or number (integer)
}
Function reference
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 # Remap controls
child STR # Child name
# or
child { # Child definition
...
}
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.1 1
}
SRC_ID2_STR {
vindex.2 0
}
}
# 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)
}
}
# join two stereo to one stereo (minimum value is returned for read operation)
CREATE_ID4_STR {
SRC_ID5_STR.vindex.0 [ 0 1 ] # source channels 0+1 to merged
channel 0
SRC_ID6_STR.vindex.1 [ 0 1 ] # source channels 0+1 to merged
channel 1
}
}
sync {
# synchronize multiple controls without any translations
sample_group_1 [
SYNC_ID1_STR
SYNC_ID2_STR
]
# synchronize multiple controls without any translations
# add functionality on/off switch
sample_group_2 {
switch SYNC_SWITCH_ID
controls [
SYNC_ID3_STR
SYNC_ID4_STR
]
}
}
}
uint8_t channel
Definition ump_msg.h:4
Function reference