1 /* Simple Plugin API
2  *
3  * Copyright © 2018 Wim Taymans
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
19  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 
25 #ifndef SPA_PARAM_PROPS_H
26 #define SPA_PARAM_PROPS_H
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 /**
33  * \addtogroup spa_param
34  * \{
35  */
36 
37 #include <spa/param/param.h>
38 
39 /** properties of SPA_TYPE_OBJECT_PropInfo */
40 enum spa_prop_info {
41 	SPA_PROP_INFO_START,
42 	SPA_PROP_INFO_id,		/**< associated id of the property */
43 	SPA_PROP_INFO_name,		/**< name of the property */
44 	SPA_PROP_INFO_type,		/**< type and range/enums of property */
45 	SPA_PROP_INFO_labels,		/**< labels of property if any, this is a
46 					  *  struct with pairs of values, the first one
47 					  *  is of the type of the property, the second
48 					  *  one is a string with a user readable label
49 					  *  for the value. */
50 	SPA_PROP_INFO_container,	/**< type of container if any (Id) */
51 	SPA_PROP_INFO_params,		/**< is part of params property (Bool) */
52 	SPA_PROP_INFO_description,	/**< User readable description */
53 };
54 
55 /** predefined properties for SPA_TYPE_OBJECT_Props */
56 enum spa_prop {
57 	SPA_PROP_START,
58 
59 	SPA_PROP_unknown,		/**< an unknown property */
60 
61 	SPA_PROP_START_Device	= 0x100,	/**< device related properties */
62 	SPA_PROP_device,
63 	SPA_PROP_deviceName,
64 	SPA_PROP_deviceFd,
65 	SPA_PROP_card,
66 	SPA_PROP_cardName,
67 
68 	SPA_PROP_minLatency,
69 	SPA_PROP_maxLatency,
70 	SPA_PROP_periods,
71 	SPA_PROP_periodSize,
72 	SPA_PROP_periodEvent,
73 	SPA_PROP_live,
74 	SPA_PROP_rate,
75 	SPA_PROP_quality,
76 	SPA_PROP_bluetoothAudioCodec,
77 
78 	SPA_PROP_START_Audio	= 0x10000,	/**< audio related properties */
79 	SPA_PROP_waveType,
80 	SPA_PROP_frequency,
81 	SPA_PROP_volume,			/**< a volume (Float), 0.0 silence, 1.0 normal */
82 	SPA_PROP_mute,				/**< mute (Bool) */
83 	SPA_PROP_patternType,
84 	SPA_PROP_ditherType,
85 	SPA_PROP_truncate,
86 	SPA_PROP_channelVolumes,		/**< a volume array, one volume per
87 						  *  channel (Array of Float) */
88 	SPA_PROP_volumeBase,			/**< a volume base (Float) */
89 	SPA_PROP_volumeStep,			/**< a volume step (Float) */
90 	SPA_PROP_channelMap,			/**< a channelmap array
91 						  * (Array (Id enum spa_audio_channel)) */
92 	SPA_PROP_monitorMute,			/**< mute (Bool) */
93 	SPA_PROP_monitorVolumes,		/**< a volume array, one volume per
94 						  *  channel (Array of Float) */
95 	SPA_PROP_latencyOffsetNsec,		/**< delay adjustment */
96 	SPA_PROP_softMute,			/**< mute (Bool) */
97 	SPA_PROP_softVolumes,			/**< a volume array, one volume per
98 						  *  channel (Array of Float) */
99 
100 	SPA_PROP_iec958Codecs,			/**< enabled IEC958 (S/PDIF) codecs,
101 						  *  (Array (Id enum spa_audio_iec958_codec) */
102 
103 	SPA_PROP_START_Video	= 0x20000,	/**< video related properties */
104 	SPA_PROP_brightness,
105 	SPA_PROP_contrast,
106 	SPA_PROP_saturation,
107 	SPA_PROP_hue,
108 	SPA_PROP_gamma,
109 	SPA_PROP_exposure,
110 	SPA_PROP_gain,
111 	SPA_PROP_sharpness,
112 
113 	SPA_PROP_START_Other	= 0x80000,	/**< other properties */
114 	SPA_PROP_params,			/**< simple control params
115 						  *    (Struct(
116 						  *	  (String : key,
117 						  *	   Pod    : value)*)) */
118 
119 
120 	SPA_PROP_START_CUSTOM	= 0x1000000,
121 };
122 
123 /**
124  * \}
125  */
126 
127 #ifdef __cplusplus
128 }  /* extern "C" */
129 #endif
130 
131 #endif /* SPA_PARAM_PROPS_H */
132