1# A generic AIF_IN/AIF_OUT widget. All attributes defined herein are namespaced
2# by alsatplg to "Object.host.direction.attribute_name" in the parent object
3#
4# Usage: host widget can be instantiated by declaring in a parent object as:
5#
6# For playback:
7# 	Object.Widget.host."playback" {
8#		index			3
9#		period_sink_count	2
10#		period_source_count	0
11#		type		 	aif_in
12#	}
13#
14# For Capture:
15# 	Object.Widget.host."capture" {
16#		index			4
17#		period_sink_count	0
18#		period_source_count	2
19#		type			aif_out
20#	}
21
22#
23# "host" class belongs to the "Widget" group of classes.
24#
25Class.Widget."host" {
26	#
27	# Attributes for host widget
28	#
29
30	#
31	# Pipeline ID that the host widget belongs to
32	#
33	DefineAttribute."index" {}
34
35	#
36	# Host direction
37	#
38	DefineAttribute."direction" {
39		type	"string"
40		constraints {
41			!valid_values [
42				"playback"
43				"capture"
44			]
45
46		}
47	}
48
49	#
50	# Host widget type
51	#
52	DefineAttribute."type" {
53		type	"string"
54		constraints {
55			!valid_values [
56				"aif_in"
57				"aif_out"
58			]
59
60		}
61	}
62
63	#include common widget attributes
64	<include/components/widget-common.conf>
65
66	DefineAttribute.uuid {
67		type	"string"
68		# Token set reference name and type
69		token_ref	"sof_tkn_comp.uuid"
70	}
71
72	# Attribute categories
73	attributes {
74		#
75		# host objects instantiated within the same alsaconf node must have unique value for
76		# direction attribute
77		#
78		unique	"direction"
79
80		#
81		# The host object name is constructed using the index and direction arguments.
82		# E.g. "host.0.capture" or "host.2.playback" etc
83		#
84		!constructor [
85			"index"
86			"direction"
87		]
88
89		#
90		# mandatory attributes that must be provided when the host class is instantiated
91		#
92		!mandatory [
93			"type"
94			"stream_name"
95		]
96		#
97		# immutable attributes cannot be modified in the object instance
98		#
99		!immutable [
100			"uuid"
101		]
102		#
103		# deprecated attributes should not be added in the object instance
104		#
105		!deprecated [
106			"preload_count"
107		]
108	}
109
110	#
111	# Default attribute values for host
112	#
113	uuid 		"0c:10:9d:8b:78:6d:8f:41:90:a3:e0:e8:05:d0:85:2b"
114	no_pm		"true"
115	period_sink_count	0
116	period_source_count	2
117}
118