sof/tools/topology/topology2/include/pipelines/volume-playback.conf

108 lines
2.0 KiB
Plaintext

#
# Volume playback pipeline
#
# A simple pipeline. All attributes defined herein are namespaced by alsatplg to
# "Object.Pipeline.volume-playback.N.attribute_name"
#
# Usage: this component can be used by declaring in the top-level topology conf file as follows:
#
# Object.Pipeline.volume-playback."N" {
# format "s16le"
# period 1000
# time_domain "timer"
# channels 2
# rate 48000
# }
#
# where N is the unique pipeline_id for this pipeline object within the same alsaconf node.
#
#
# (source) host.N.playback -> buffer.N.1 -> volume.N.1 -> buffer.N.2 (sink endpoint)
#
<include/common/route.conf>
<include/components/buffer.conf>
<include/components/host.conf>
<include/components/pipeline.conf>
<include/components/volume.conf>
Class.Pipeline."volume-playback" {
# include common pipeline attribute definitions
<include/pipelines/pipeline-common.conf>
attributes {
# pipeline name is constructed as "volume-playback.1"
!constructor [
"index"
]
!mandatory [
"format"
]
!immutable [
"direction"
]
#
# volume-playback objects instantiated within the same alsaconf node must have
# unique index attribute
#
unique "instance"
}
Object.Widget {
pipeline."1" {}
host."playback" {
type "aif_in"
}
buffer."1" {
periods 2
caps "host"
}
pga."1" {
Object.Control.mixer.1 {
Object.Base.tlv."vtlv_m64s2" {
Object.Base.scale."m64s2" {}
}
}
}
buffer."2" {
periods 2
caps "dai"
}
}
# Pipeline connections
# The index attribute values for the source/sink widgets will be populated
# when the route objects are built
Object.Base {
route."1" {
source "host.$index.playback"
sink "buffer.$index.1"
}
route."2" {
source "buffer.$index.1"
sink "pga.$index.1"
}
route."3" {
source "pga.$index.1"
sink "buffer.$index.2"
}
}
# Default attribute values
direction "playback"
time_domain "timer"
period 1000
channels 2
rate 48000
priority 0
core 0
frames 0
mips 5000
}