chromebook-ucm-conf/common/pcm/split.conf

372 lines
8.4 KiB
Plaintext

#
# Split multichannel PCM stream to channel groups
#
#
# Macro SplitPCM
#
# Application variable:
# @SplitPCM - defined, return channel description using UCM values
#
# Arguments:
# Name - PCM name (alsa-lib)
# Direction - "Playback" or "Capture"
# [Format] - sample format like S16_LE or S32_LE
# Channels - application channels
# HWChannels - hardware channels
# HWChannelPos0 - channel position (MONO FR FL etc. - see alsa-lib's strings)
# [HWChannelPos1] - channel position (MONO FR FL etc. - see alsa-lib's strings)
#
DefineMacro.SplitPCM.If.0 {
Condition {
Type String
Empty "${var:@SplitPCM}"
}
True {
If.period_time {
Condition {
Type String
Empty "${var:-SplitPCMPeriodTime}"
}
True.Define.__period_time 20000
False.Define.__period_time "${var:SplitPCMPeriodTime}"
}
If.buffer_time {
Condition {
Type String
Empty "${var:-SplitPCMBufferTime}"
}
True.Define.__buffer_time 500000
False.Define.__buffer_time "${var:SplitPCMBufferTime}"
}
If.format {
Condition {
Type String
Empty "${var:-__Format}"
}
True.Define.__Format S16_LE
}
LibraryConfig.pcm.SubstiConfig.pcm."${var:__Name}" {
@args [ CARD DEV CHN0 ]
@args {
CARD.type string
DEV.type integer
CHN0.type integer
}
ipc_key 6678293
type dshare
slave {
pcm {
type hw
card $CARD
device $DEV
chmap [ "${var:__HWChannelPos0}" ]
}
format "${var:__Format}"
channels "${evali:$__HWChannels}"
period_time "${evali:$__period_time}"
buffer_time "${evali:$__buffer_time}"
}
bindings.0 $CHN0
}
If.pos1 {
Condition {
Type String
Empty "${var:__HWChannelPos1}"
}
False.LibraryConfig.pos1.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:__HWChannelPos1}" ]
}
}
If.pos2 {
Condition {
Type String
Empty "${var:-__HWChannelPos2}"
}
False.LibraryConfig.pos2.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos2}" ]
}
}
If.pos3 {
Condition {
Type String
Empty "${var:-__HWChannelPos3}"
}
False.LibraryConfig.pos3.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos3}" ]
}
}
If.pos4 {
Condition {
Type String
Empty "${var:-__HWChannelPos4}"
}
False.LibraryConfig.pos4.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos4}" ]
}
}
If.pos5 {
Condition {
Type String
Empty "${var:-__HWChannelPos5}"
}
False.LibraryConfig.pos4.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos5}" ]
}
}
If.pos6 {
Condition {
Type String
Empty "${var:-__HWChannelPos6}"
}
False.LibraryConfig.pos6.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos6}" ]
}
}
If.pos7 {
Condition {
Type String
Empty "${var:-__HWChannelPos7}"
}
False.LibraryConfig.pos7.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos7}" ]
}
}
If.pos8 {
Condition {
Type String
Empty "${var:-__HWChannelPos8}"
}
False.LibraryConfig.pos8.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos8}" ]
}
}
If.pos9 {
Condition {
Type String
Empty "${var:-__HWChannelPos9}"
}
False.LibraryConfig.pos9.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos9}" ]
}
}
If.pos10 {
Condition {
Type String
Empty "${var:-__HWChannelPos10}"
}
False.LibraryConfig.pos10.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos10}" ]
}
}
If.pos11 {
Condition {
Type String
Empty "${var:-__HWChannelPos11}"
}
False.LibraryConfig.pos11.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos11}" ]
}
}
If.pos12 {
Condition {
Type String
Empty "${var:-__HWChannelPos12}"
}
False.LibraryConfig.pos12.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos12}" ]
}
}
If.pos13 {
Condition {
Type String
Empty "${var:-__HWChannelPos13}"
}
False.LibraryConfig.pos13.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos13}" ]
}
}
If.pos14 {
Condition {
Type String
Empty "${var:-__HWChannelPos14}"
}
False.LibraryConfig.pos14.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos14}" ]
}
}
If.pos15 {
Condition {
Type String
Empty "${var:-__HWChannelPos15}"
}
False.LibraryConfig.pos15.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos15}" ]
}
}
If.pos16 {
Condition {
Type String
Empty "${var:-__HWChannelPos16}"
}
False.LibraryConfig.pos16.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos16}" ]
}
}
If.pos17 {
Condition {
Type String
Empty "${var:-__HWChannelPos17}"
}
False.LibraryConfig.pos17.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos17}" ]
}
}
If.pos18 {
Condition {
Type String
Empty "${var:-__HWChannelPos18}"
}
False.LibraryConfig.pos18.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos18}" ]
}
}
If.pos19 {
Condition {
Type String
Empty "${var:-__HWChannelPos19}"
}
False.LibraryConfig.pos19.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos19}" ]
}
}
If.pos20 {
Condition {
Type String
Empty "${var:-__HWChannelPos20}"
}
False.LibraryConfig.pos20.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos20}" ]
}
}
If.pos21 {
Condition {
Type String
Empty "${var:-__HWChannelPos21}"
}
False.LibraryConfig.pos21.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos21}" ]
}
}
If.pos22 {
Condition {
Type String
Empty "${var:-__HWChannelPos22}"
}
False.LibraryConfig.pos22.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos22}" ]
}
}
If.pos23 {
Condition {
Type String
Empty "${var:-__HWChannelPos23}"
}
False.LibraryConfig.pos23.SubstiConfig.pcm."${var:__Name}" {
slave.pcm.chmap [ "${var:-__HWChannelPos23}" ]
}
}
If.ch1 {
Condition {
Type RegexMatch
Regex "^([2-9]|[1-9][0-9])$"
String "${var:__Channels}"
}
True.LibraryConfig.ch1.SubstiConfig.pcm."${var:__Name}" {
@args.3 CHN1
@args { CHN1.type integer }
bindings.1 $CHN1
}
}
If.dir {
Condition {
Type String
String1 "${var:__Direction}"
String2 "Capture"
}
True.LibraryConfig.dir.Config.pcm."${var:__Name}".type dsnoop
}
}
}
#
# Macro SplitPCMDevice
#
# Application variable:
# @SplitPCM - defined, return channel description using UCM values
#
# Arguments:
# Name - PCM name (alsa-lib)
# Direction - "Playback" or "Capture"
# Device - hardware PCM device number (optional - default 0)
# Channels - count of application channels
# HWChannels - total channels (in hardware)
# Channel0 - channel index in stream for the destination channel 0
# [Channel1] - channel index in stream for the destination channel 1 (optional)
# ChannelPos0 - channel position (MONO FR FL etc. - see alsa-lib's strings
# [ChannelPos1] - channel position (MONO FR FL etc. - see alsa-lib's strings)
#
DefineMacro.SplitPCMDevice {
If.0 {
Condition {
Type String
Empty "${var:-__Device}"
}
True.Define.__Device "0"
}
If.1 {
Condition {
Type String
Empty "${var:@SplitPCM}"
}
False {
Value {
"${var:__Direction}Channels" "${var:__HWChannels}"
"${var:__Direction}PCM" "hw:${CardId},${var:__Device}"
"${var:__Direction}Channel0" "${var:__Channel0}"
"${var:__Direction}ChannelPos0" "${var:__ChannelPos0}"
}
If.ch1 {
Condition {
Type String
Empty "${var:-__Channel1}"
}
False.Value {
"${var:__Direction}Channel1" "${var:__Channel1}"
"${var:__Direction}ChannelPos1" "${var:__ChannelPos1}"
}
}
}
True {
Define.__pcmdev "${var:__Name}:${CardId},${var:__Device},${var:__Channel0}"
If.ch1 {
Condition {
Type String
Empty "${var:-__Channel1}"
}
False.Define.__pcmdev "${var:__pcmdev},${var:__Channel1}"
}
Value {
"${var:__Direction}Channels" "${var:__Channels}"
"${var:__Direction}PCM" "${var:__pcmdev}"
}
}
}
}