1#
2# FE playback pipeline: host-copier-gain-mixin-playback
3#
4# All attributes defined herein are namespaced
5# by alsatplg to "Object.Pipeline.host-copier-gain-mixin-playback.N.attribute_name"
6#
7# Usage: host-copier-gain-mixin-playback pipeline object can be instantiated as:
8#
9# Object.Pipeline.host-copier-gain-mixin-playback."N" {
10# 	period		1000
11# 	time_domain	"timer"
12# 	channels	2
13# 	rate		48000
14# }
15#
16# Where N is the unique pipeline ID within the same alsaconf node.
17#
18
19<include/common/audio_format.conf>
20<include/components/copier.conf>
21<include/components/mixin.conf>
22<include/components/pipeline.conf>
23<include/components/gain.conf>
24
25Class.Pipeline."host-copier-gain-mixin-playback" {
26
27	DefineAttribute."index" {}
28
29	<include/pipelines/pipeline-common.conf>
30
31	attributes {
32		!constructor [
33			"index"
34		]
35
36		!immutable [
37			"direction"
38		]
39
40		#
41		# host-copier-gain-mixin-playback objects instantiated within the same alsaconf node must have
42		# unique pipeline_id attribute
43		#
44		unique	"instance"
45	}
46
47	Object.Widget {
48		copier."1" {
49			copier_type	"host"
50			type	"aif_in"
51			node_type $HDA_HOST_OUTPUT_CLASS
52			num_audio_formats 3
53			num_input_audio_formats 3
54			num_output_audio_formats 3
55			# 16-bit 48KHz 2ch
56			Object.Base.audio_format.1 {
57				out_bit_depth		32
58				out_valid_bit_depth	32
59			}
60			# 24-bit 48KHz 2ch
61			Object.Base.audio_format.2 {
62				in_bit_depth		32
63				in_valid_bit_depth	24
64				out_bit_depth		32
65				out_valid_bit_depth	32
66			}
67			# 32-bit 48KHz 2ch
68			Object.Base.audio_format.3 {
69				in_bit_depth		32
70				in_valid_bit_depth	32
71				out_bit_depth		32
72				out_valid_bit_depth	32
73			}
74		}
75
76		gain."1" {
77			num_audio_formats 2
78			num_input_audio_formats 2
79			num_output_audio_formats 2
80
81			# 32-bit 48KHz 2ch
82			Object.Base.audio_format.1 {
83				in_bit_depth		32
84				in_valid_bit_depth	24
85				out_bit_depth		32
86				out_valid_bit_depth	24
87			}
88
89			Object.Base.audio_format.2 {
90				in_bit_depth		32
91				in_valid_bit_depth	32
92				out_bit_depth		32
93				out_valid_bit_depth	32
94			}
95		}
96
97		mixin."1" {}
98
99		pipeline."1" {
100			priority	0
101			lp_mode		0
102		}
103	}
104
105	Object.Base {
106		route.1 {
107			source copier.host.$index.1
108			sink	gain.$index.1
109		}
110		route.2 {
111			source	gain.$index.1
112			sink mixin.$index.1
113		}
114	}
115
116	direction	"playback"
117	dynamic_pipeline 1
118	time_domain	"timer"
119	channels	2
120	channels_min	2
121	channels_max	2
122	rate		48000
123	rate_min	48000
124	rate_max	48000
125}
126