sof/tools/topology/topology2/include/pipelines/eq-iir-volume-capture.conf

127 lines
2.1 KiB
Plaintext

#
# Volume capture pipeline with Highpass EQ IIR
#
# Capture pipeline with a EQ IIR filter. All attributes defined herein are namespaced by alsatplg to
# "Object.Pipeline.eq-iir-volume--capture.attribute_name"
#
# Usage: this component can be used by declaring in the top-level topology conf file as follows:
#
# Object.Pipeline.eq-iir-volume--capture."N" {
# format "s16le"
# period 1000
# time_domain "timer"
# channels 2
# rate 48000
# }
#
# Where N is a unique integer for pipeline ID in the same alsaconf node.
#
#
# (source) host.N.capture <- buffer.N.1 <- volume.N.1 <- buffer.N.2 <- eqiir.N.1 <- buffer.N.3 (source endpoint)
#
<include/common/route.conf>
<include/components/buffer.conf>
<include/components/eqiir.conf>
<include/components/host.conf>
<include/components/pipeline.conf>
<include/components/volume.conf>
<include/controls/bytes.conf>
Class.Pipeline."eq-iir-volume-capture" {
# Include common pipeline attribute definitions
<include/pipelines/pipeline-common.conf>
attributes {
!constructor [
"index"
]
!mandatory [
"format"
]
!immutable [
"direction"
]
unique "instance"
}
Object.Widget {
pipeline."1" {}
host."capture" {
type "aif_out"
}
buffer."1" {
periods 2
caps "host"
}
pga."1" {
# set TLV scale for volume control mixer
Object.Control.mixer."1" {
Object.Base.tlv."vtlv_m50s1" {
Object.Base.scale."m50s1" {
min -5000
step 100
}
}
}
}
buffer."2" {
periods 2
caps "host"
}
eqiir."1" {
# byte control for EQ IIR
Object.Control.bytes."1" {}
}
buffer."3" {
periods 2
caps "dai"
}
}
# Pipeline connections
Object.Base {
route."1" {
source buffer..1
sink host..capture
}
route."2" {
source pga..1
sink buffer..1
}
route."3" {
source buffer..2
sink pga..1
}
route."4" {
source eqiir..1
sink buffer..2
}
route."5" {
source buffer..3
sink eqiir..1
}
}
direction "capture"
time_domain "timer"
period 1000
channels 2
rate 48000
priority 0
core 0
frames 0
mips 5000
}