7char crtx_pa_sink_input_info2dict(
struct pa_sink_input_info *ptr,
struct crtx_dict **dict_ptr)
13 *dict_ptr = crtx_init_dict(0, 0, 0);
16 di = crtx_dict_alloc_next_item(dict);
17 crtx_fill_data_item(di,
'u',
"index", ptr->index,
sizeof(ptr->index), 0);
19 di = crtx_dict_alloc_next_item(dict);
20 crtx_fill_data_item(di,
's',
"name", ptr->name, strlen(ptr->name), CRTX_DIF_CREATE_DATA_COPY);
22 di = crtx_dict_alloc_next_item(dict);
23 crtx_fill_data_item(di,
'u',
"owner_module", ptr->owner_module,
sizeof(ptr->owner_module), 0);
25 di = crtx_dict_alloc_next_item(dict);
26 crtx_fill_data_item(di,
'u',
"client", ptr->client,
sizeof(ptr->client), 0);
28 di = crtx_dict_alloc_next_item(dict);
29 crtx_fill_data_item(di,
'u',
"sink", ptr->sink,
sizeof(ptr->sink), 0);
31 di = crtx_dict_alloc_next_item(dict);
32 crtx_fill_data_item(di,
'D',
"sample_spec", 0, 0, 0);
35 di->dict = crtx_init_dict(0, 0, 0);
39 di2 = crtx_dict_alloc_next_item(dict);
40 crtx_fill_data_item(di2,
'i',
"format", ptr->sample_spec.format,
sizeof(ptr->sample_spec.format), 0);
42 di2 = crtx_dict_alloc_next_item(dict);
43 crtx_fill_data_item(di2,
'u',
"rate", ptr->sample_spec.rate,
sizeof(ptr->sample_spec.rate), 0);
45 di2 = crtx_dict_alloc_next_item(dict);
46 crtx_fill_data_item(di2,
'u',
"channels", ptr->sample_spec.channels,
sizeof(ptr->sample_spec.channels), 0);
49 di = crtx_dict_alloc_next_item(dict);
50 crtx_fill_data_item(di,
'D',
"channel_map", 0, 0, 0);
53 di->dict = crtx_init_dict(0, 0, 0);
57 di2 = crtx_dict_alloc_next_item(dict);
58 crtx_fill_data_item(di2,
'u',
"channels", ptr->channel_map.channels,
sizeof(ptr->channel_map.channels), 0);
60 di2 = crtx_dict_alloc_next_item(dict);
61 crtx_fill_data_item(di2,
'D',
"map", 0, 0, 0);
63 di2->dict = crtx_init_dict(0, ptr->channel_map.channels, 0);
66 for (i=0; i < ptr->channel_map.channels; i++)
67 crtx_fill_data_item(&di2->dict->items[i],
'i', 0, ptr->channel_map.map[i],
sizeof(ptr->channel_map.map[0]), 0);
102 di = crtx_dict_alloc_next_item(dict);
103 crtx_fill_data_item(di,
'D',
"volume", 0, 0, 0);
106 di->dict = crtx_init_dict(0, 0, 0);
110 di2 = crtx_dict_alloc_next_item(dict);
111 crtx_fill_data_item(di2,
'u',
"channels", ptr->volume.channels,
sizeof(ptr->volume.channels), 0);
113 di2 = crtx_dict_alloc_next_item(dict);
114 crtx_fill_data_item(di2,
'D',
"values", 0, 0, 0);
116 di2->dict = crtx_init_dict(0, ptr->volume.channels, 0);
119 for (i=0; i < ptr->volume.channels; i++)
120 crtx_fill_data_item(&di2->dict->items[i],
'u', 0, ptr->volume.values[i],
sizeof(ptr->volume.values[0]), 0);
155 di = crtx_dict_alloc_next_item(dict);
156 crtx_fill_data_item(di,
'U',
"buffer_usec", ptr->buffer_usec,
sizeof(ptr->buffer_usec), 0);
158 di = crtx_dict_alloc_next_item(dict);
159 crtx_fill_data_item(di,
'U',
"sink_usec", ptr->sink_usec,
sizeof(ptr->sink_usec), 0);
161 di = crtx_dict_alloc_next_item(dict);
162 crtx_fill_data_item(di,
's',
"resample_method", ptr->resample_method, strlen(ptr->resample_method), CRTX_DIF_CREATE_DATA_COPY);
164 di = crtx_dict_alloc_next_item(dict);
165 crtx_fill_data_item(di,
's',
"driver", ptr->driver, strlen(ptr->driver), CRTX_DIF_CREATE_DATA_COPY);
167 di = crtx_dict_alloc_next_item(dict);
168 crtx_fill_data_item(di,
'i',
"mute", ptr->mute,
sizeof(ptr->mute), 0);
170 di = crtx_dict_alloc_next_item(dict);
172 crtx_fill_data_item(di,
'D',
"proplist", 0, 0, 0);
173 crtx_pa_proplist2dict(ptr->proplist, &di->dict);
175 di = crtx_dict_alloc_next_item(dict);
176 crtx_fill_data_item(di,
'i',
"corked", ptr->corked,
sizeof(ptr->corked), 0);
178 di = crtx_dict_alloc_next_item(dict);
179 crtx_fill_data_item(di,
'i',
"has_volume", ptr->has_volume,
sizeof(ptr->has_volume), 0);
181 di = crtx_dict_alloc_next_item(dict);
182 crtx_fill_data_item(di,
'i',
"volume_writable", ptr->volume_writable,
sizeof(ptr->volume_writable), 0);
184 di = crtx_dict_alloc_next_item(dict);
185 crtx_fill_data_item(di,
'D',
"format", 0, 0, 0);
187 di->dict = crtx_init_dict(0, 0, 0);
191 di2 = crtx_dict_alloc_next_item(dict);
192 crtx_fill_data_item(di2,
'i',
"encoding", ptr->format->encoding,
sizeof(ptr->format->encoding), 0);
194 di2 = crtx_dict_alloc_next_item(dict);
196 crtx_fill_data_item(di2,
'D',
"plist", 0, 0, 0);
197 crtx_pa_proplist2dict(ptr->format->plist, &di2->dict);
204char crtx_pa_card_info2dict(
struct pa_card_info *ptr,
struct crtx_dict **dict_ptr)
210 *dict_ptr = crtx_init_dict(0, 0, 0);
213 di = crtx_dict_alloc_next_item(dict);
214 crtx_fill_data_item(di,
'u',
"index", ptr->index,
sizeof(ptr->index), 0);
216 di = crtx_dict_alloc_next_item(dict);
217 crtx_fill_data_item(di,
's',
"name", ptr->name, strlen(ptr->name), CRTX_DIF_DONT_FREE_DATA);
219 di = crtx_dict_alloc_next_item(dict);
220 crtx_fill_data_item(di,
'u',
"owner_module", ptr->owner_module,
sizeof(ptr->owner_module), 0);
222 di = crtx_dict_alloc_next_item(dict);
223 crtx_fill_data_item(di,
's',
"driver", ptr->driver, strlen(ptr->driver), CRTX_DIF_DONT_FREE_DATA);
225 di = crtx_dict_alloc_next_item(dict);
226 crtx_fill_data_item(di,
'u',
"n_profiles", ptr->n_profiles,
sizeof(ptr->n_profiles), 0);
228 di = crtx_dict_alloc_next_item(dict);
229 crtx_fill_data_item(di,
'D',
"profiles", 0, 0, 0);
231 di->dict = crtx_init_dict(0, 0, 0);
235 di2 = crtx_dict_alloc_next_item(dict);
236 crtx_fill_data_item(di2,
's',
"name", ptr->profiles->name, strlen(ptr->profiles->name), CRTX_DIF_DONT_FREE_DATA);
238 di2 = crtx_dict_alloc_next_item(dict);
239 crtx_fill_data_item(di2,
's',
"description", ptr->profiles->description, strlen(ptr->profiles->description), CRTX_DIF_DONT_FREE_DATA);
241 di2 = crtx_dict_alloc_next_item(dict);
242 crtx_fill_data_item(di2,
'u',
"n_sinks", ptr->profiles->n_sinks,
sizeof(ptr->profiles->n_sinks), 0);
244 di2 = crtx_dict_alloc_next_item(dict);
245 crtx_fill_data_item(di2,
'u',
"n_sources", ptr->profiles->n_sources,
sizeof(ptr->profiles->n_sources), 0);
247 di2 = crtx_dict_alloc_next_item(dict);
248 crtx_fill_data_item(di2,
'u',
"priority", ptr->profiles->priority,
sizeof(ptr->profiles->priority), 0);
251 di = crtx_dict_alloc_next_item(dict);
252 crtx_fill_data_item(di,
'D',
"active_profile", 0, 0, 0);
254 di->dict = crtx_init_dict(0, 0, 0);
258 di2 = crtx_dict_alloc_next_item(dict);
259 crtx_fill_data_item(di2,
's',
"name", ptr->active_profile->name, strlen(ptr->active_profile->name), CRTX_DIF_DONT_FREE_DATA);
261 di2 = crtx_dict_alloc_next_item(dict);
262 crtx_fill_data_item(di2,
's',
"description", ptr->active_profile->description, strlen(ptr->active_profile->description), CRTX_DIF_DONT_FREE_DATA);
264 di2 = crtx_dict_alloc_next_item(dict);
265 crtx_fill_data_item(di2,
'u',
"n_sinks", ptr->active_profile->n_sinks,
sizeof(ptr->active_profile->n_sinks), 0);
267 di2 = crtx_dict_alloc_next_item(dict);
268 crtx_fill_data_item(di2,
'u',
"n_sources", ptr->active_profile->n_sources,
sizeof(ptr->active_profile->n_sources), 0);
270 di2 = crtx_dict_alloc_next_item(dict);
271 crtx_fill_data_item(di2,
'u',
"priority", ptr->active_profile->priority,
sizeof(ptr->active_profile->priority), 0);
274 di = crtx_dict_alloc_next_item(dict);
275 crtx_fill_data_item(di,
'p',
"proplist", ptr->proplist, 0, CRTX_DIF_DONT_FREE_DATA);
277 di = crtx_dict_alloc_next_item(dict);
278 crtx_fill_data_item(di,
'u',
"n_ports", ptr->n_ports,
sizeof(ptr->n_ports), 0);
280 di = crtx_dict_alloc_next_item(dict);
281 crtx_fill_data_item(di,
'p',
"ports", ptr->ports, 0, CRTX_DIF_DONT_FREE_DATA);
283 di = crtx_dict_alloc_next_item(dict);
284 crtx_fill_data_item(di,
'p',
"profiles2", ptr->profiles2, 0, CRTX_DIF_DONT_FREE_DATA);
286 di = crtx_dict_alloc_next_item(dict);
287 crtx_fill_data_item(di,
'D',
"active_profile2", 0, 0, 0);
289 di->dict = crtx_init_dict(0, 0, 0);
293 di2 = crtx_dict_alloc_next_item(dict);
294 crtx_fill_data_item(di2,
's',
"name", ptr->active_profile2->name, strlen(ptr->active_profile2->name), CRTX_DIF_DONT_FREE_DATA);
296 di2 = crtx_dict_alloc_next_item(dict);
297 crtx_fill_data_item(di2,
's',
"description", ptr->active_profile2->description, strlen(ptr->active_profile2->description), CRTX_DIF_DONT_FREE_DATA);
299 di2 = crtx_dict_alloc_next_item(dict);
300 crtx_fill_data_item(di2,
'u',
"n_sinks", ptr->active_profile2->n_sinks,
sizeof(ptr->active_profile2->n_sinks), 0);
302 di2 = crtx_dict_alloc_next_item(dict);
303 crtx_fill_data_item(di2,
'u',
"n_sources", ptr->active_profile2->n_sources,
sizeof(ptr->active_profile2->n_sources), 0);
305 di2 = crtx_dict_alloc_next_item(dict);
306 crtx_fill_data_item(di2,
'u',
"priority", ptr->active_profile2->priority,
sizeof(ptr->active_profile2->priority), 0);
308 di2 = crtx_dict_alloc_next_item(dict);
309 crtx_fill_data_item(di2,
'i',
"available", ptr->active_profile2->available,
sizeof(ptr->active_profile2->available), 0);