1 | /* AUTOMATICALLY GENERATED, DO NOT MODIFY */ |
2 | |
3 | /* |
4 | * Schema-defined QAPI types |
5 | * |
6 | * Copyright IBM, Corp. 2011 |
7 | * Copyright (c) 2013-2018 Red Hat Inc. |
8 | * |
9 | * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. |
10 | * See the COPYING.LIB file in the top-level directory. |
11 | */ |
12 | |
13 | #ifndef QAPI_TYPES_AUDIO_H |
14 | #define QAPI_TYPES_AUDIO_H |
15 | |
16 | #include "qapi/qapi-builtin-types.h" |
17 | |
18 | typedef struct AudiodevPerDirectionOptions AudiodevPerDirectionOptions; |
19 | |
20 | typedef struct AudiodevGenericOptions AudiodevGenericOptions; |
21 | |
22 | typedef struct AudiodevAlsaPerDirectionOptions AudiodevAlsaPerDirectionOptions; |
23 | |
24 | typedef struct AudiodevAlsaOptions AudiodevAlsaOptions; |
25 | |
26 | typedef struct AudiodevCoreaudioPerDirectionOptions AudiodevCoreaudioPerDirectionOptions; |
27 | |
28 | typedef struct AudiodevCoreaudioOptions AudiodevCoreaudioOptions; |
29 | |
30 | typedef struct AudiodevDsoundOptions AudiodevDsoundOptions; |
31 | |
32 | typedef struct AudiodevOssPerDirectionOptions AudiodevOssPerDirectionOptions; |
33 | |
34 | typedef struct AudiodevOssOptions AudiodevOssOptions; |
35 | |
36 | typedef struct AudiodevPaPerDirectionOptions AudiodevPaPerDirectionOptions; |
37 | |
38 | typedef struct AudiodevPaOptions AudiodevPaOptions; |
39 | |
40 | typedef struct AudiodevWavOptions AudiodevWavOptions; |
41 | |
42 | typedef enum AudioFormat { |
43 | AUDIO_FORMAT_U8, |
44 | AUDIO_FORMAT_S8, |
45 | AUDIO_FORMAT_U16, |
46 | AUDIO_FORMAT_S16, |
47 | AUDIO_FORMAT_U32, |
48 | AUDIO_FORMAT_S32, |
49 | AUDIO_FORMAT__MAX, |
50 | } AudioFormat; |
51 | |
52 | #define AudioFormat_str(val) \ |
53 | qapi_enum_lookup(&AudioFormat_lookup, (val)) |
54 | |
55 | extern const QEnumLookup AudioFormat_lookup; |
56 | |
57 | typedef enum AudiodevDriver { |
58 | AUDIODEV_DRIVER_NONE, |
59 | AUDIODEV_DRIVER_ALSA, |
60 | AUDIODEV_DRIVER_COREAUDIO, |
61 | AUDIODEV_DRIVER_DSOUND, |
62 | AUDIODEV_DRIVER_OSS, |
63 | AUDIODEV_DRIVER_PA, |
64 | AUDIODEV_DRIVER_SDL, |
65 | AUDIODEV_DRIVER_SPICE, |
66 | AUDIODEV_DRIVER_WAV, |
67 | AUDIODEV_DRIVER__MAX, |
68 | } AudiodevDriver; |
69 | |
70 | #define AudiodevDriver_str(val) \ |
71 | qapi_enum_lookup(&AudiodevDriver_lookup, (val)) |
72 | |
73 | extern const QEnumLookup AudiodevDriver_lookup; |
74 | |
75 | typedef struct q_obj_Audiodev_base q_obj_Audiodev_base; |
76 | |
77 | typedef struct Audiodev Audiodev; |
78 | |
79 | struct AudiodevPerDirectionOptions { |
80 | bool has_fixed_settings; |
81 | bool fixed_settings; |
82 | bool has_frequency; |
83 | uint32_t frequency; |
84 | bool has_channels; |
85 | uint32_t channels; |
86 | bool has_voices; |
87 | uint32_t voices; |
88 | bool has_format; |
89 | AudioFormat format; |
90 | bool has_buffer_length; |
91 | uint32_t buffer_length; |
92 | }; |
93 | |
94 | void qapi_free_AudiodevPerDirectionOptions(AudiodevPerDirectionOptions *obj); |
95 | |
96 | struct AudiodevGenericOptions { |
97 | bool has_in; |
98 | AudiodevPerDirectionOptions *in; |
99 | bool has_out; |
100 | AudiodevPerDirectionOptions *out; |
101 | }; |
102 | |
103 | void qapi_free_AudiodevGenericOptions(AudiodevGenericOptions *obj); |
104 | |
105 | struct AudiodevAlsaPerDirectionOptions { |
106 | /* Members inherited from AudiodevPerDirectionOptions: */ |
107 | bool has_fixed_settings; |
108 | bool fixed_settings; |
109 | bool has_frequency; |
110 | uint32_t frequency; |
111 | bool has_channels; |
112 | uint32_t channels; |
113 | bool has_voices; |
114 | uint32_t voices; |
115 | bool has_format; |
116 | AudioFormat format; |
117 | bool has_buffer_length; |
118 | uint32_t buffer_length; |
119 | /* Own members: */ |
120 | bool has_dev; |
121 | char *dev; |
122 | bool has_period_length; |
123 | uint32_t period_length; |
124 | bool has_try_poll; |
125 | bool try_poll; |
126 | }; |
127 | |
128 | static inline AudiodevPerDirectionOptions *qapi_AudiodevAlsaPerDirectionOptions_base(const AudiodevAlsaPerDirectionOptions *obj) |
129 | { |
130 | return (AudiodevPerDirectionOptions *)obj; |
131 | } |
132 | |
133 | void qapi_free_AudiodevAlsaPerDirectionOptions(AudiodevAlsaPerDirectionOptions *obj); |
134 | |
135 | struct AudiodevAlsaOptions { |
136 | bool has_in; |
137 | AudiodevAlsaPerDirectionOptions *in; |
138 | bool has_out; |
139 | AudiodevAlsaPerDirectionOptions *out; |
140 | bool has_threshold; |
141 | uint32_t threshold; |
142 | }; |
143 | |
144 | void qapi_free_AudiodevAlsaOptions(AudiodevAlsaOptions *obj); |
145 | |
146 | struct AudiodevCoreaudioPerDirectionOptions { |
147 | /* Members inherited from AudiodevPerDirectionOptions: */ |
148 | bool has_fixed_settings; |
149 | bool fixed_settings; |
150 | bool has_frequency; |
151 | uint32_t frequency; |
152 | bool has_channels; |
153 | uint32_t channels; |
154 | bool has_voices; |
155 | uint32_t voices; |
156 | bool has_format; |
157 | AudioFormat format; |
158 | bool has_buffer_length; |
159 | uint32_t buffer_length; |
160 | /* Own members: */ |
161 | bool has_buffer_count; |
162 | uint32_t buffer_count; |
163 | }; |
164 | |
165 | static inline AudiodevPerDirectionOptions *qapi_AudiodevCoreaudioPerDirectionOptions_base(const AudiodevCoreaudioPerDirectionOptions *obj) |
166 | { |
167 | return (AudiodevPerDirectionOptions *)obj; |
168 | } |
169 | |
170 | void qapi_free_AudiodevCoreaudioPerDirectionOptions(AudiodevCoreaudioPerDirectionOptions *obj); |
171 | |
172 | struct AudiodevCoreaudioOptions { |
173 | bool has_in; |
174 | AudiodevCoreaudioPerDirectionOptions *in; |
175 | bool has_out; |
176 | AudiodevCoreaudioPerDirectionOptions *out; |
177 | }; |
178 | |
179 | void qapi_free_AudiodevCoreaudioOptions(AudiodevCoreaudioOptions *obj); |
180 | |
181 | struct AudiodevDsoundOptions { |
182 | bool has_in; |
183 | AudiodevPerDirectionOptions *in; |
184 | bool has_out; |
185 | AudiodevPerDirectionOptions *out; |
186 | bool has_latency; |
187 | uint32_t latency; |
188 | }; |
189 | |
190 | void qapi_free_AudiodevDsoundOptions(AudiodevDsoundOptions *obj); |
191 | |
192 | struct AudiodevOssPerDirectionOptions { |
193 | /* Members inherited from AudiodevPerDirectionOptions: */ |
194 | bool has_fixed_settings; |
195 | bool fixed_settings; |
196 | bool has_frequency; |
197 | uint32_t frequency; |
198 | bool has_channels; |
199 | uint32_t channels; |
200 | bool has_voices; |
201 | uint32_t voices; |
202 | bool has_format; |
203 | AudioFormat format; |
204 | bool has_buffer_length; |
205 | uint32_t buffer_length; |
206 | /* Own members: */ |
207 | bool has_dev; |
208 | char *dev; |
209 | bool has_buffer_count; |
210 | uint32_t buffer_count; |
211 | bool has_try_poll; |
212 | bool try_poll; |
213 | }; |
214 | |
215 | static inline AudiodevPerDirectionOptions *qapi_AudiodevOssPerDirectionOptions_base(const AudiodevOssPerDirectionOptions *obj) |
216 | { |
217 | return (AudiodevPerDirectionOptions *)obj; |
218 | } |
219 | |
220 | void qapi_free_AudiodevOssPerDirectionOptions(AudiodevOssPerDirectionOptions *obj); |
221 | |
222 | struct AudiodevOssOptions { |
223 | bool has_in; |
224 | AudiodevOssPerDirectionOptions *in; |
225 | bool has_out; |
226 | AudiodevOssPerDirectionOptions *out; |
227 | bool has_try_mmap; |
228 | bool try_mmap; |
229 | bool has_exclusive; |
230 | bool exclusive; |
231 | bool has_dsp_policy; |
232 | uint32_t dsp_policy; |
233 | }; |
234 | |
235 | void qapi_free_AudiodevOssOptions(AudiodevOssOptions *obj); |
236 | |
237 | struct AudiodevPaPerDirectionOptions { |
238 | /* Members inherited from AudiodevPerDirectionOptions: */ |
239 | bool has_fixed_settings; |
240 | bool fixed_settings; |
241 | bool has_frequency; |
242 | uint32_t frequency; |
243 | bool has_channels; |
244 | uint32_t channels; |
245 | bool has_voices; |
246 | uint32_t voices; |
247 | bool has_format; |
248 | AudioFormat format; |
249 | bool has_buffer_length; |
250 | uint32_t buffer_length; |
251 | /* Own members: */ |
252 | bool has_name; |
253 | char *name; |
254 | bool has_latency; |
255 | uint32_t latency; |
256 | }; |
257 | |
258 | static inline AudiodevPerDirectionOptions *qapi_AudiodevPaPerDirectionOptions_base(const AudiodevPaPerDirectionOptions *obj) |
259 | { |
260 | return (AudiodevPerDirectionOptions *)obj; |
261 | } |
262 | |
263 | void qapi_free_AudiodevPaPerDirectionOptions(AudiodevPaPerDirectionOptions *obj); |
264 | |
265 | struct AudiodevPaOptions { |
266 | bool has_in; |
267 | AudiodevPaPerDirectionOptions *in; |
268 | bool has_out; |
269 | AudiodevPaPerDirectionOptions *out; |
270 | bool has_server; |
271 | char *server; |
272 | }; |
273 | |
274 | void qapi_free_AudiodevPaOptions(AudiodevPaOptions *obj); |
275 | |
276 | struct AudiodevWavOptions { |
277 | bool has_in; |
278 | AudiodevPerDirectionOptions *in; |
279 | bool has_out; |
280 | AudiodevPerDirectionOptions *out; |
281 | bool has_path; |
282 | char *path; |
283 | }; |
284 | |
285 | void qapi_free_AudiodevWavOptions(AudiodevWavOptions *obj); |
286 | |
287 | struct q_obj_Audiodev_base { |
288 | char *id; |
289 | AudiodevDriver driver; |
290 | bool has_timer_period; |
291 | uint32_t timer_period; |
292 | }; |
293 | |
294 | struct Audiodev { |
295 | char *id; |
296 | AudiodevDriver driver; |
297 | bool has_timer_period; |
298 | uint32_t timer_period; |
299 | union { /* union tag is @driver */ |
300 | AudiodevGenericOptions none; |
301 | AudiodevAlsaOptions alsa; |
302 | AudiodevCoreaudioOptions coreaudio; |
303 | AudiodevDsoundOptions dsound; |
304 | AudiodevOssOptions oss; |
305 | AudiodevPaOptions pa; |
306 | AudiodevGenericOptions sdl; |
307 | AudiodevGenericOptions spice; |
308 | AudiodevWavOptions wav; |
309 | } u; |
310 | }; |
311 | |
312 | void qapi_free_Audiodev(Audiodev *obj); |
313 | |
314 | #endif /* QAPI_TYPES_AUDIO_H */ |
315 | |