]> code.delx.au - pulseaudio/blob - pulseaudio.vapi
Merge remote branch 'origin/master-tx'
[pulseaudio] / pulseaudio.vapi
1 /***
2 This file is part of PulseAudio.
3
4 Copyright 2009 Lennart Poettering
5
6 PulseAudio is free software; you can redistribute it and/or modify
7 it under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation; either version 2.1 of the License,
9 or (at your option) any later version.
10
11 PulseAudio is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public License
17 along with PulseAudio; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
19 USA.
20 ***/
21
22 using GLib;
23 using Posix;
24
25 [CCode (cheader_filename="pulse/pulseaudio.h")]
26 namespace Pulse {
27
28 [CCode (cname="pa_get_library_version")]
29 public unowned string get_library_version();
30
31 [CCode (cname="PA_API_VERSION")]
32 public const int API_VERSION;
33
34 [CCode (cname="PA_PROTOCOL_VERSION")]
35 public const int PROTOCOL_VERSION;
36
37 [CCode (cname="PA_MAJOR")]
38 public const int MAJOR;
39
40 [CCode (cname="PA_MINOR")]
41 public const int MINOR;
42
43 [CCode (cname="PA_MICRO")]
44 public const int MICRO;
45
46 [CCode (cname="PA_CHECK_VERSION")]
47 public bool CHECK_VERSION(int major, int minor, int micro);
48
49 [CCode (cname="INVALID_INDEX")]
50 public const uint32 INVALID_INDEX;
51
52 [CCode (cname="pa_free_cb_t")]
53 public delegate void FreeCb(void *p);
54
55 [CCode (cname="pa_sample_format_t", cprefix="PA_SAMPLE_")]
56 public enum SampleFormat {
57 U8,
58 ALAW,
59 ULAW,
60 S16LE,
61 S16BE,
62 FLOAT32LE,
63 FLOAT32BE,
64 S32LE,
65 S32BE,
66 S24LE,
67 S24BE,
68 S24_32LE,
69 S24_32BE,
70 MAX,
71 S16NE,
72 S16RE,
73 FLOAT32NE,
74 FLOAT32RE,
75 S32NE,
76 S32RE,
77 S24NE,
78 S24RE,
79 S24_32NE,
80 S24_32RE;
81
82 [CCode (cname="pa_sample_size_of_format")]
83 public size_t size();
84
85 [CCode (cname="pa_sample_format_to_string")]
86 public unowned string? to_string();
87
88 [CCode (cname="pa_sample_format_is_le")]
89 public int is_le();
90
91 [CCode (cname="pa_sample_format_is_be")]
92 public int is_be();
93
94 [CCode (cname="pa_sample_format_is_ne")]
95 public int is_ne();
96
97 [CCode (cname="pa_sample_format_is_re")]
98 public int is_re();
99
100 [CCode (cname="pa_parse_sample_format")]
101 public static SampleFormat parse(string b);
102 }
103
104 [CCode (cname="pa_usec_t")]
105 public struct usec : uint64 {
106 }
107
108 [CCode (cname="pa_sample_spec")]
109 public struct SampleSpec {
110 public SampleFormat format;
111 public uint32 rate;
112 public uint8 channels;
113
114 [CCode (cname="PA_SAMPLE_SPEC_SNPRINT_MAX")]
115 public static const size_t SNPRINT_MAX;
116
117 [CCode (cname="pa_bytes_per_second")]
118 public size_t bytes_per_second();
119
120 [CCode (cname="pa_frame_size")]
121 public size_t frame_size();
122
123 [CCode (cname="pa_sample_size")]
124 public size_t sample_size();
125
126 [CCode (cname="pa_bytes_to_usec", instance_pos=1.1)]
127 public usec bytes_to_usec(size_t size);
128
129 [CCode (cname="pa_usec_to_bytes", instance_pos=1.1)]
130 public size_t usec_to_bytes(usec u);
131
132 [CCode (cname="pa_sample_spec_init")]
133 public unowned SampleSpec? init();
134
135 [CCode (cname="pa_sample_spec_valid")]
136 public bool valid();
137
138 [CCode (cname="pa_sample_spec_equal")]
139 public bool equal(SampleSpec other);
140
141 [CCode (cname="pa_sample_spec_snprint", instance_pos=3.1)]
142 public unowned string snprint(char[] buf);
143
144 public string sprint() {
145 var buffer = new char[SNPRINT_MAX];
146 this.snprint(buffer);
147 return (string) buffer;
148 }
149
150 public string to_string() {
151 return sprint();
152 }
153
154 [CCode (cname="pa_sample_spec_init")]
155 SampleSpec();
156 }
157
158 // [CCode (cname="PA_BYTES_SNPRINT_MAX")]
159 [CCode (cname="PA_SAMPLE_SPEC_SNPRINT_MAX")]
160 public const size_t BYTES_SNPRINT_MAX;
161
162 [CCode (cname="pa_bytes_snprint")]
163 public unowned string bytes_snprint(char[] buf, uint bytes);
164
165 public string bytes_sprint(uint bytes) {
166 var buffer = new char[BYTES_SNPRINT_MAX];
167 bytes_snprint(buffer, bytes);
168 return (string) buffer;
169 }
170
171 [CCode (cname="pa_volume_t")]
172 public struct Volume : uint32 {
173
174 [CCode (cname="PA_SW_VOLUME_SNPRINT_DB_MAX")]
175 public static const size_t SW_SNPRINT_DB_MAX;
176
177 [CCode (cname="PA_VOLUME_SNPRINT_MAX")]
178 public static const size_t SNPRINT_MAX;
179
180 [CCode (cname="PA_VOLUME_MAX")]
181 public static const Volume MAX;
182
183 [CCode (cname="PA_VOLUME_NORM")]
184 public static const Volume NORM;
185
186 [CCode (cname="PA_VOLUME_MUTED")]
187 public static const Volume MUTED;
188
189 // [CCode (cname="PA_VOLUME_INVALID")]
190 [CCode (cname="PA_VOLUME_MAX")]
191 public static const Volume INVALID;
192
193 [CCode (cname="pa_volume_snprint", instance_pos = 3.1)]
194 public unowned string snprint(char[] s);
195
196 public string sprint() {
197 var buffer = new char[SNPRINT_MAX];
198 this.snprint(buffer);
199 return (string) buffer;
200 }
201
202 public string to_string() {
203 return sprint();
204 }
205
206 [CCode (cname="pa_sw_volume_snprint_dB", instance_pos = 3.1)]
207 public unowned string sw_snprint_dB(char[] s);
208
209 public string sw_sprint_dB() {
210 var buffer = new char[SW_SNPRINT_DB_MAX];
211 this.sw_snprint_dB(buffer);
212 return (string) buffer;
213 }
214
215 [CCode (cname="pa_sw_volume_multiply")]
216 public Volume sw_multiply(Volume other);
217
218 [CCode (cname="pa_sw_volume_divide")]
219 public Volume sw_divide(Volume other);
220
221 [CCode (cname="pa_sw_volume_from_dB")]
222 public static Volume sw_from_dB(double f);
223
224 [CCode (cname="pa_sw_volume_to_dB")]
225 public double sw_to_dB();
226
227 [CCode (cname="pa_sw_volume_from_linear")]
228 public static Volume sw_from_linear(double f);
229
230 [CCode (cname="pa_sw_volume_to_linear")]
231 public double sw_to_linear();
232 }
233
234 [CCode (cname="PA_DECIBEL_MININFTY")]
235 public const double DECIBEL_MININFTY;
236
237 [CCode (cname="PA_CHANNELS_MAX")]
238 public const int CHANNELS_MAX;
239
240 [CCode (cname="PA_CHANNELS_MAX")]
241 public const int RATE_MAX;
242
243 [CCode (cname="pa_cvolume")]
244 public struct CVolume {
245 public uint8 channels;
246 public Volume values[];
247
248 [CCode (cname="PA_SW_CVOLUME_SNPRINT_DB_MAX")]
249 public static const size_t SW_SNPRINT_DB_MAX;
250
251 [CCode (cname="PA_CVOLUME_SNPRINT_MAX")]
252 public static const size_t SNPRINT_MAX;
253
254 [CCode (cname="pa_cvolume_equal")]
255 public bool equal(CVolume other);
256
257 [CCode (cname="pa_cvolume_init")]
258 public unowned CVolume? init();
259
260 [CCode (cname="pa_cvolume_reset")]
261 public unowned CVolume? reset(uint8 channels);
262
263 [CCode (cname="pa_cvolume_mute")]
264 public unowned CVolume? mute(uint8 channels);
265
266 [CCode (cname="pa_cvolume_snprint", instance_pos = 3.1)]
267 public unowned string snprint(char[] s);
268
269 public string sprint() {
270 var buffer = new char[SNPRINT_MAX];
271 this.snprint(buffer);
272 return (string) buffer;
273 }
274
275 public string to_string() {
276 return sprint();
277 }
278
279 [CCode (cname="pa_sw_cvolume_snprint_dB", instance_pos = 3.1)]
280 public unowned string sw_snprint_dB(char [] s);
281
282 public string sw_sprint_dB() {
283 var buffer = new char[SW_SNPRINT_DB_MAX];
284 this.sw_snprint_dB(buffer);
285 return (string) buffer;
286 }
287
288 [CCode (cname="pa_cvolume_init")]
289 public CVolume();
290
291 [CCode (cname="pa_cvolume_avg")]
292 public Volume avg();
293
294 [CCode (cname="pa_cvolume_max")]
295 public Volume max();
296
297 [CCode (cname="pa_cvolume_min")]
298 public Volume min();
299
300 [CCode (cname="pa_cvolume_avg_mask")]
301 public Volume avg_mask(ChannelMap map, ChannelPositionMask mask);
302
303 [CCode (cname="pa_cvolume_max_mask")]
304 public Volume max_mask(ChannelMap map, ChannelPositionMask mask);
305
306 [CCode (cname="pa_cvolume_min_mask")]
307 public Volume min_mask(ChannelMap map, ChannelPositionMask mask);
308
309 [CCode (cname="pa_cvolume_valid")]
310 public bool valid();
311
312 [CCode (cname="pa_cvolume_channels_equal_to")]
313 public bool channels_equal_to(Volume other);
314
315 [CCode (cname="pa_cvolume_is_muted")]
316 public bool is_muted();
317
318 [CCode (cname="pa_cvolume_is_norm")]
319 public bool is_norm();
320
321 [CCode (cname="pa_sw_cvolume_multiply")]
322 public unowned CVolume? multiply(CVolume other);
323
324 [CCode (cname="pa_sw_cvolume_divide")]
325 public unowned CVolume? divide(CVolume other);
326
327 [CCode (cname="pa_sw_cvolume_multiply_scalar")]
328 public unowned CVolume? multiply_scalar(Volume other);
329
330 [CCode (cname="pa_sw_cvolume_divide_scalar")]
331 public unowned CVolume? divide_scalar(Volume other);
332
333 [CCode (cname="pa_cvolume_remap")]
334 public unowned CVolume? remap(ChannelMap from, ChannelMap to);
335
336 [CCode (cname="pa_cvolume_compatible")]
337 public bool compatible(SampleSpec ss);
338
339 [CCode (cname="pa_cvolume_compatible_with_channel_map")]
340 public bool compatible_with_channel_map(ChannelMap cm);
341
342 [CCode (cname="pa_cvolume_get_balance")]
343 public float get_balance(ChannelMap map);
344
345 [CCode (cname="pa_cvolume_set_balance")]
346 public unowned CVolume? set_balance(ChannelMap map, float b);
347
348 [CCode (cname="pa_cvolume_get_fade")]
349 public float get_fade(ChannelMap map);
350
351 [CCode (cname="pa_cvolume_set_fade")]
352 public unowned CVolume? set_fade(ChannelMap map, float f);
353
354 [CCode (cname="pa_cvolume_scale")]
355 public unowned CVolume? scale(Volume max);
356
357 [CCode (cname="pa_cvolume_scale_mask")]
358 public unowned CVolume? scale_mask(Volume max, ChannelMap map, ChannelPositionMask mask);
359
360 [CCode (cname="pa_cvolume_set_position")]
361 public unowned CVolume? set_position(ChannelMap map, ChannelPosition p, Volume v);
362
363 [CCode (cname="pa_cvolume_get_position")]
364 public Volume get_position(ChannelMap map, ChannelPosition p);
365
366 [CCode (cname="pa_cvolume_merge")]
367 public unowned CVolume? merge(CVolume other);
368
369 [CCode (cname="pa_cvolume_inc")]
370 public unowned CVolume? inc(Volume plus = 1);
371
372 [CCode (cname="pa_cvolume_dec")]
373 public unowned CVolume? dec(Volume minus = 1);
374 }
375
376 [CCode (cname="pa_channel_map")]
377 public struct ChannelMap {
378 public uint8 channels;
379 public ChannelPosition map[];
380
381 [CCode (cname="PA_CHANNEL_MAP_SNPRINT_MAX")]
382 public static const size_t SNPRINT_MAX;
383
384 [CCode (cname="pa_channel_map_init")]
385 public ChannelMap();
386
387 [CCode (cname="pa_channel_map_init")]
388 public unowned ChannelMap? init();
389
390 [CCode (cname="pa_channel_map_init_mono")]
391 public unowned ChannelMap? init_mono();
392
393 [CCode (cname="pa_channel_map_init_stereo")]
394 public unowned ChannelMap? init_stereo();
395
396 [CCode (cname="pa_channel_map_init_auto")]
397 public unowned ChannelMap? init_auto(uint8 channels, ChannelMapDef def = ChannelMapDef.DEFAULT);
398
399 [CCode (cname="pa_channel_map_init_extend")]
400 public unowned ChannelMap? init_extend(uint8 channels, ChannelMapDef def = ChannelMapDef.DEFAULT);
401
402 [CCode (cname="pa_channel_map_snprint", instance_pos = 3.1)]
403 public unowned string snprint(char[] s);
404
405 public string sprint() {
406 var buffer = new char[SNPRINT_MAX];
407 this.snprint(buffer);
408 return (string) buffer;
409 }
410
411 public string to_string() {
412 return sprint();
413 }
414
415 [CCode (cname="pa_channel_map_parse")]
416 public unowned ChannelMap? parse(string s);
417
418 [CCode (cname="pa_channel_map_equal")]
419 public bool equal(ChannelMap other);
420
421 [CCode (cname="pa_channel_map_superset")]
422 public bool superset(ChannelMap other);
423
424 [CCode (cname="pa_channel_map_valid")]
425 public bool valid();
426
427 [CCode (cname="pa_channel_map_compatible")]
428 public bool compatible(SampleSpec ss);
429
430 [CCode (cname="pa_channel_map_can_balance")]
431 public bool can_balance();
432
433 [CCode (cname="pa_channel_map_can_fade")]
434 public bool can_fade();
435
436 [CCode (cname="pa_channel_map_to_name")]
437 public unowned string? to_name();
438
439 [CCode (cname="pa_channel_map_to_pretty_name")]
440 public unowned string? to_pretty_name();
441
442 [CCode (cname="pa_channel_map_has_position")]
443 public bool has_position(ChannelPosition p);
444
445 [CCode (cname="pa_channel_map_mask")]
446 public ChannelPositionMask mask();
447 }
448
449 [CCode (cname="pa_channel_position_mask_t")]
450 public struct ChannelPositionMask : uint64 {
451 }
452
453 [CCode (cname="pa_channel_position_t", cprefix="PA_CHANNEL_POSITION_")]
454 public enum ChannelPosition {
455 INVALID,
456 MONO,
457 FRONT_LEFT,
458 FRONT_RIGHT,
459 FRONT_CENTER,
460 REAR_CENTER,
461 REAR_LEFT,
462 REAR_RIGHT,
463 LFE,
464 FRONT_LEFT_OF_CENTER,
465 FRONT_RIGHT_OF_CENTER,
466 SIDE_LEFT,
467 SIDE_RIGHT,
468 TOP_CENTER,
469 AUX0,
470 AUX1,
471 AUX2,
472 AUX3,
473 AUX4,
474 AUX5,
475 AUX6,
476 AUX7,
477 AUX8,
478 AUX9,
479 AUX10,
480 AUX11,
481 AUX12,
482 AUX13,
483 AUX14,
484 AUX15,
485 AUX16,
486 AUX17,
487 AUX18,
488 AUX19,
489 AUX20,
490 AUX21,
491 AUX22,
492 AUX23,
493 AUX24,
494 AUX25,
495 AUX26,
496 AUX27,
497 AUX28,
498 AUX29,
499 AUX30,
500 AUX31,
501 MAX;
502
503 [CCode (cname="PA_CHANNEL_POSITION_MASK")]
504 public ChannelPositionMask mask();
505
506 [CCode (cname="pa_channel_position_to_string")]
507 public unowned string? to_string();
508
509 [CCode (cname="pa_channel_position_to_pretty_string")]
510 public unowned string? to_pretty_string();
511
512 [CCode (cname="pa_channel_position_from_string")]
513 public static ChannelPosition from_string(string s);
514 }
515
516 [CCode (cname="pa_channel_map_def_t", cprefix="PA_CHANNEL_MAP_")]
517 public enum ChannelMapDef {
518 AIFF,
519 WAVEEX,
520 AUX,
521 DEFAULT,
522
523 [CCode (cname="PA_CHANNEL_MAP_DEF_MAX")]
524 MAX
525 }
526
527 [Compact]
528 [CCode (cname="pa_proplist", cprefix="pa_proplist_", free_function="pa_proplist_free")]
529 public class Proplist {
530
531 [CCode (cname="PA_PROP_MEDIA_NAME")]
532 public static const string PROP_MEDIA_NAME;
533 [CCode (cname="PA_PROP_MEDIA_TITLE")]
534 public static const string PROP_MEDIA_TITLE;
535 [CCode (cname="PA_PROP_MEDIA_ARTIST")]
536 public static const string PROP_MEDIA_ARTIST;
537 [CCode (cname="PA_PROP_MEDIA_COPYRIGHT")]
538 public static const string PROP_MEDIA_COPYRIGHT;
539 [CCode (cname="PA_PROP_MEDIA_SOFTWARE")]
540 public static const string PROP_MEDIA_SOFTWARE;
541 [CCode (cname="PA_PROP_MEDIA_LANGUAGE")]
542 public static const string PROP_MEDIA_LANGUAGE;
543 [CCode (cname="PA_PROP_MEDIA_FILENAME")]
544 public static const string PROP_MEDIA_FILENAME;
545 [CCode (cname="PA_PROP_MEDIA_ICON_NAME")]
546 public static const string PROP_MEDIA_ICON_NAME;
547 [CCode (cname="PA_PROP_MEDIA_ROLE")]
548 public static const string PROP_MEDIA_ROLE;
549 [CCode (cname="PA_PROP_EVENT_ID")]
550 public static const string PROP_EVENT_ID;
551 [CCode (cname="PA_PROP_EVENT_DESCRIPTION")]
552 public static const string PROP_EVENT_DESCRIPTION;
553 [CCode (cname="PA_PROP_EVENT_MOUSE_X")]
554 public static const string PROP_EVENT_MOUSE_X;
555 [CCode (cname="PA_PROP_EVENT_MOUSE_Y")]
556 public static const string PROP_EVENT_MOUSE_Y;
557 [CCode (cname="PA_PROP_EVENT_MOUSE_HPOS")]
558 public static const string PROP_EVENT_MOUSE_HPOS;
559 [CCode (cname="PA_PROP_EVENT_MOUSE_VPOS")]
560 public static const string PROP_EVENT_MOUSE_VPOS;
561 [CCode (cname="PA_PROP_EVENT_MOUSE_BUTTON")]
562 public static const string PROP_EVENT_MOUSE_BUTTON;
563 [CCode (cname="PA_PROP_WINDOW_NAME")]
564 public static const string PROP_WINDOW_NAME;
565 [CCode (cname="PA_PROP_WINDOW_ID")]
566 public static const string PROP_WINDOW_ID;
567 [CCode (cname="PA_PROP_WINDOW_ICON_NAME")]
568 public static const string PROP_WINDOW_ICON_NAME;
569 [CCode (cname="PA_PROP_WINDOW_X11_DISPLAY")]
570 public static const string PROP_WINDOW_X11_DISPLAY;
571 [CCode (cname="PA_PROP_WINDOW_X11_SCREEN")]
572 public static const string PROP_WINDOW_X11_SCREEN;
573 [CCode (cname="PA_PROP_WINDOW_X11_MONITOR")]
574 public static const string PROP_WINDOW_X11_MONITOR;
575 [CCode (cname="PA_PROP_WINDOW_X11_XID")]
576 public static const string PROP_WINDOW_X11_XID;
577 [CCode (cname="PA_PROP_APPLICATION_NAME")]
578 public static const string PROP_APPLICATION_NAME;
579 [CCode (cname="PA_PROP_APPLICATION_ID")]
580 public static const string PROP_APPLICATION_ID;
581 [CCode (cname="PA_PROP_APPLICATION_VERSION")]
582 public static const string PROP_APPLICATION_VERSION;
583 [CCode (cname="PA_PROP_APPLICATION_ICON_NAME")]
584 public static const string PROP_APPLICATION_ICON_NAME;
585 [CCode (cname="PA_PROP_APPLICATION_LANGUAGE")]
586 public static const string PROP_APPLICATION_LANGUAGE;
587 [CCode (cname="PA_PROP_APPLICATION_PROCESS_ID")]
588 public static const string PROP_APPLICATION_PROCESS_ID;
589 [CCode (cname="PA_PROP_APPLICATION_PROCESS_BINARY")]
590 public static const string PROP_APPLICATION_PROCESS_BINARY;
591 [CCode (cname="PA_PROP_APPLICATION_PROCESS_USER")]
592 public static const string PROP_APPLICATION_PROCESS_USER;
593 [CCode (cname="PA_PROP_APPLICATION_PROCESS_HOST")]
594 public static const string PROP_APPLICATION_PROCESS_HOST;
595 [CCode (cname="PA_PROP_APPLICATION_PROCESS_MACHINE_ID")]
596 public static const string PROP_APPLICATION_PROCESS_MACHINE_ID;
597 [CCode (cname="PA_PROP_APPLICATION_PROCESS_SESSION_ID")]
598 public static const string PROP_APPLICATION_PROCESS_SESSION_ID;
599 [CCode (cname="PA_PROP_DEVICE_STRING")]
600 public static const string PROP_DEVICE_STRING;
601 [CCode (cname="PA_PROP_DEVICE_API")]
602 public static const string PROP_DEVICE_API;
603 [CCode (cname="PA_PROP_DEVICE_DESCRIPTION")]
604 public static const string PROP_DEVICE_DESCRIPTION;
605 [CCode (cname="PA_PROP_DEVICE_BUS_PATH")]
606 public static const string PROP_DEVICE_BUS_PATH;
607 [CCode (cname="PA_PROP_DEVICE_SERIAL")]
608 public static const string PROP_DEVICE_SERIAL;
609 [CCode (cname="PA_PROP_DEVICE_VENDOR_ID")]
610 public static const string PROP_DEVICE_VENDOR_ID;
611 [CCode (cname="PA_PROP_DEVICE_VENDOR_NAME")]
612 public static const string PROP_DEVICE_VENDOR_NAME;
613 [CCode (cname="PA_PROP_DEVICE_PRODUCT_ID")]
614 public static const string PROP_DEVICE_PRODUCT_ID;
615 [CCode (cname="PA_PROP_DEVICE_PRODUCT_NAME")]
616 public static const string PROP_DEVICE_PRODUCT_NAME;
617 [CCode (cname="PA_PROP_DEVICE_CLASS")]
618 public static const string PROP_DEVICE_CLASS;
619 [CCode (cname="PA_PROP_DEVICE_FORM_FACTOR")]
620 public static const string PROP_DEVICE_FORM_FACTOR;
621 [CCode (cname="PA_PROP_DEVICE_BUS")]
622 public static const string PROP_DEVICE_BUS;
623 [CCode (cname="PA_PROP_DEVICE_ICON_NAME")]
624 public static const string PROP_DEVICE_ICON_NAME;
625 [CCode (cname="PA_PROP_DEVICE_ACCESS_MODE")]
626 public static const string PROP_DEVICE_ACCESS_MODE;
627 [CCode (cname="PA_PROP_DEVICE_MASTER_DEVICE")]
628 public static const string PROP_DEVICE_MASTER_DEVICE;
629 [CCode (cname="PA_PROP_DEVICE_BUFFERING_BUFFER_SIZE")]
630 public static const string PROP_DEVICE_BUFFERING_BUFFER_SIZE;
631 [CCode (cname="PA_PROP_DEVICE_BUFFERING_FRAGMENT_SIZE")]
632 public static const string PROP_DEVICE_BUFFERING_FRAGMENT_SIZE;
633 [CCode (cname="PA_PROP_DEVICE_PROFILE_NAME")]
634 public static const string PROP_DEVICE_PROFILE_NAME;
635 [CCode (cname="PA_PROP_DEVICE_INTENDED_ROLES")]
636 public static const string PROP_DEVICE_INTENDED_ROLES;
637 [CCode (cname="PA_PROP_DEVICE_PROFILE_DESCRIPTION")]
638 public static const string PROP_DEVICE_PROFILE_DESCRIPTION;
639 [CCode (cname="PA_PROP_MODULE_AUTHOR")]
640 public static const string PROP_MODULE_AUTHOR;
641 [CCode (cname="PA_PROP_MODULE_DESCRIPTION")]
642 public static const string PROP_MODULE_DESCRIPTION;
643 [CCode (cname="PA_PROP_MODULE_USAGE")]
644 public static const string PROP_MODULE_USAGE;
645 [CCode (cname="PA_PROP_MODULE_VERSION")]
646 public static const string PROP_MODULE_VERSION;
647
648 [CCode (cname="pa_proplist_new")]
649 public Proplist();
650
651 public int sets(string key, string value);
652 public int setp(string pair);
653
654 [PrintfFormat]
655 public int setf(string key, string format, ...);
656
657 public int set(string key, void* data, size_t size);
658
659 public unowned string? gets(string key);
660
661 public int get(string key, out void* data, out size_t size);
662
663 public void update(UpdateMode mode, Proplist other);
664
665 public void unset(string key);
666
667 [CCode (array_length = false)]
668 public void unset_many(string[] key);
669
670 public unowned string? iterate(ref void* state);
671
672 public string to_string();
673
674 public string to_string_sep(string sep);
675
676 public static Proplist? from_string(string s);
677
678 public int contains(string key);
679
680 public void clear();
681
682 public Proplist copy();
683
684 public uint size();
685
686 public bool is_empty();
687 }
688
689 [CCode (cname="pa_update_mode_t", cprefix="PA_UPDATE_")]
690 public enum UpdateMode {
691 SET,
692 MERGE,
693 REPLACE
694 }
695
696 [CCode (cname="PA_OK")]
697 public const int OK;
698
699 [CCode (cname="int", cprefix="PA_ERR_")]
700 public enum Error {
701 ACCESS,
702 COMMAND,
703 INVALID,
704 EXIST,
705 NOENTITY,
706 CONNECTIONREFUSED,
707 PROTOCOL,
708 TIMEOUT,
709 AUTHKEY,
710 INTERNAL,
711 CONNECTIONTERMINATED,
712 KILLED,
713 INVALIDSERVER,
714 MODINITFAILED,
715 BADSTATE,
716 NODATA,
717 VERSION,
718 TOOLARGE,
719 NOTSUPPORTED,
720 UNKNOWN,
721 NOEXTENSION,
722 OBSOLETE,
723 NOTIMPLEMENTED,
724 FORKED,
725 IO,
726 MAX
727 }
728
729 [CCode (cname="pa_strerror")]
730 public unowned string? strerror(Error e);
731
732 public delegate void VoidFunc();
733
734 [CCode (cname="pa_spawn_api")]
735 public struct SpawnApi {
736 VoidFunc? prefork;
737 VoidFunc? postfork;
738 VoidFunc? atfork;
739 }
740
741 [CCode (cname="pa_io_event_flags_t", cprefix="PA_IO_EVENT_")]
742 public enum IoEventFlags {
743 NULL,
744 INPUT,
745 OUTPUT,
746 HANGUP,
747 ERROR
748 }
749
750 [CCode (cname="pa_io_event")]
751 public struct IoEvent {
752 }
753
754 [CCode (cname="pa_time_event")]
755 public struct TimeEvent {
756 }
757
758 [CCode (cname="pa_defer_event")]
759 public struct DeferEvent {
760 }
761
762 [CCode (cname="pa_signal_event", cprefix="pa_signal_", free_function="pa_signal_free")]
763 public struct SignalEvent {
764
765 [CCode (cname="pa_signal_new")]
766 public SignalEvent(int sig, MainLoopApi.SignalEventCb cb);
767
768 public void set_destroy(MainLoopApi.SignalEventDestroyCb cb);
769 }
770
771 [Compact]
772 [CCode (cname="pa_mainloop_api")]
773 public class MainLoopApi {
774 public void* userdata;
775
776 /* Callbacks for the consumer to implement*/
777 public delegate void IoEventCb(IoEvent e, int fd, IoEventFlags flags);
778 public delegate void IoEventDestroyCb(IoEvent e);
779
780 public delegate void TimeEventCb(TimeEvent e, ref timeval t);
781 public delegate void TimeEventDestroyCb(TimeEvent e);
782
783 public delegate void DeferEventCb(DeferEvent e);
784 public delegate void DeferEventDestroyCb(DeferEvent e);
785
786 public delegate void SignalEventCb(SignalEvent e);
787 public delegate void SignalEventDestroyCb(SignalEvent e);
788
789 /* Callbacks for the provider to implement */
790 public delegate IoEvent IoNewCb(int fd, IoEventFlags flags, IoEventCb cb);
791 public delegate void IoEnableCb(IoEvent e, IoEventFlags flags);
792 public delegate void IoFreeCb(IoEvent e);
793 public delegate void IoSetDestroyCb(IoEvent e, IoEventDestroyCb? cb);
794
795 public delegate TimeEvent TimeNewCb(ref timeval? t, TimeEventCb cb);
796 public delegate void TimeRestartCb(TimeEvent e, ref timeval? t);
797 public delegate void TimeFreeCb(TimeEvent e);
798 public delegate void TimeSetDestroyCb(TimeEvent e, TimeEventDestroyCb? cb);
799
800 public delegate DeferEvent DeferNewCb(DeferEventCb cb);
801 public delegate void DeferEnableCb(DeferEvent e, bool b);
802 public delegate void DeferFreeCb(DeferEvent e);
803 public delegate void DeferSetDestroyCb(DeferEvent e, DeferEventDestroyCb? cb);
804
805 public delegate void QuitCb(int retval);
806
807 public delegate void OnceCb();
808
809 public IoNewCb io_new;
810 public IoEnableCb io_enable;
811 public IoFreeCb io_free;
812 public IoSetDestroyCb io_set_destroy;
813
814 public TimeNewCb time_new;
815 public TimeRestartCb time_restart;
816 public TimeFreeCb time_free;
817 public TimeSetDestroyCb time_set_destroy;
818
819 public DeferNewCb defer_new;
820 public DeferEnableCb defer_enable;
821 public DeferFreeCb defer_free;
822 public DeferSetDestroyCb defer_set_destroy;
823
824 public QuitCb quit;
825
826 [CCode (cname="pa_mainloop_api_once")]
827 public void once(OnceCb cb);
828 }
829
830 [CCode (cname="pa_signal_init")]
831 public void signal_init(MainLoopApi api);
832
833 [CCode (cname="pa_signal_done")]
834 public void signal_done();
835
836 [CCode (cname="pa_poll_func")]
837 public delegate int PollFunc(pollfd[] ufds);
838
839 [Compact]
840 [CCode (cname="pa_mainloop", cprefix="pa_mainloop_", free_function="pa_mainloop_free")]
841 public class MainLoop {
842
843 [CCode (cname="pa_mainloop_new")]
844 public MainLoop();
845
846 public int prepare(int timeout = -1);
847 public int poll();
848 public int dispatch();
849 public int get_retval();
850 public int iterate(bool block = true, out int retval = null);
851 public int run(out int retval = null);
852 public unowned MainLoopApi get_api();
853 public void quit(int r);
854 public void wakeup();
855 public void set_poll_func(PollFunc poll_func);
856 }
857
858 [Compact]
859 [CCode (cname="pa_threaded_mainloop", cprefix="pa_threaded_mainloop_", free_function="pa_threaded_mainloop_free")]
860 public class ThreadedMainLoop {
861
862 [CCode (cname="pa_threaded_mainloop_new")]
863 public ThreadedMainLoop();
864
865 public int start();
866 public void stop();
867 public void lock();
868 public void unlock();
869 public void wait();
870 public void signal(bool WaitForAccept = false);
871 public void accept();
872 public int get_retval();
873 public unowned MainLoopApi get_api();
874 public bool in_thread();
875 }
876
877 [Compact]
878 [CCode (cname="pa_glib_mainloop", cprefix="pa_glib_mainloop_", free_function="pa_glib_mainloop_free")]
879 public class GLibMainLoop {
880
881 [CCode (cname="pa_glib_mainloop_new")]
882 public GLibMainLoop();
883
884 public unowned MainLoopApi get_api();
885 }
886
887 [Compact]
888 [CCode (cname="pa_operation", cprefix="pa_operation_", unref_function="pa_operation_unref", ref_function="pa_operation_ref")]
889 public class Operation {
890
891 [CCode (cname="pa_operation_state_t", cprefix="PA_OPERATION_")]
892 public enum State {
893 RUNNING,
894 DONE,
895 CANCELED
896 }
897
898 public void cancel();
899 public State get_state();
900 }
901
902 [Compact]
903 [CCode (cname="pa_context", cprefix="pa_context_", unref_function="pa_context_unref", ref_function="pa_context_ref")]
904 public class Context {
905
906 [CCode (cname="pa_context_flags_t", cprefix="PA_CONTEXT_")]
907 public enum Flags {
908 NOAUTOSPAWN,
909 NOFAIL
910 }
911
912 [CCode (cname="pa_context_state_t", cprefix="PA_CONTEXT_")]
913 public enum State {
914 UNCONNECTED,
915 CONNECTING,
916 AUTHORIZING,
917 SETTING_NAME,
918 READ,
919 FAILED,
920 TERMINATED;
921
922 bool IS_GOOD();
923 }
924
925 [CCode (cname="pa_subscription_mask_t", cprefix="PA_SUBSCRIPTION_MASK_")]
926 public enum SubscriptionMask {
927 NULL,
928 SINK,
929 SOURCE,
930 SINK_INPUT,
931 SOURCE_OUTPUT,
932 MODULE,
933 CLIENT,
934 SAMPLE_CACHE,
935 SERVER,
936 CARD,
937 ALL;
938
939 [CCode (cname="pa_subscription_match_flags")]
940 bool match_flags(SubscriptionEventType t);
941 }
942
943 [CCode (cname="pa_subscription_event_type_t", cprefix="PA_SUBSCRIPTION_EVENT_")]
944 public enum SubscriptionEventType {
945 SINK,
946 SOURCE,
947 SINK_INPUT,
948 SOURCE_OUTPUT,
949 MODULE,
950 CLIENT,
951 SAMPLE_CACHE,
952 SERVER,
953 CARD,
954 FACILITY_MASK,
955 NEW,
956 CHANGE,
957 REMOVE,
958 TYPE_MASK
959 }
960
961 public delegate void NotifyCb();
962 public delegate void SuccessCb(int success);
963 public delegate void EventCb(string name, Proplist? proplist);
964 public delegate void SubscribeCb(SubscriptionEventType t, uint32 idx);
965 public delegate void SinkInfoCb(SinkInfo? i, int eol);
966 public delegate void SourceInfoCb(SourceInfo? i, int eol);
967 public delegate void CardInfoCb(CardInfo? i, int eol);
968 public delegate void SinkInputInfoCb(SinkInputInfo? i, int eol);
969 public delegate void SourceOutputInfoCb(SourceOutputInfo? i, int eol);
970 public delegate void ServerInfoCb(ServerInfo? i);
971 public delegate void StatInfoCb(ServerInfo? i);
972 public delegate void ModuleInfoCb(ModuleInfo? i, int eol);
973 public delegate void ClientInfoCb(ClientInfo? i, int eol);
974 public delegate void SampleInfoCb(SampleInfo? i, int eol);
975 public delegate void IndexCb(uint32 idx);
976
977 [CCode (cname="pa_context_new_with_proplist")]
978 public Context(MainLoopApi api, string? name, Proplist? proplist = null);
979
980 public void set_state_callback(NotifyCb? cb = null);
981 public void set_event_callback(EventCb? cb = null);
982 public void set_subscribe_callback(SubscribeCb? cb = null);
983
984 public Error errno();
985
986 public int is_pending();
987 public State get_state();
988 public int is_local();
989 public unowned string? get_server();
990 public uint32 get_protocol_version();
991 public uint32 get_server_protocol_version();
992 public uint32 get_index();
993
994 public int connect(string? server = null, Flags flags = 0, SpawnApi? api = null);
995 public void disconnect();
996
997 public Operation? drain(NotifyCb? cb = null);
998 public Operation? exit_daemon(SuccessCb? cb = null);
999 public Operation? set_default_sink(string name, SuccessCb? cb = null);
1000 public Operation? set_default_source(string name, SuccessCb? cb = null);
1001 public Operation? set_name(string name, SuccessCb? cb = null);
1002
1003 [CCode (array_length = false)]
1004 public Operation? proplist_remove(string[] keys, SuccessCb? cb = null);
1005 public Operation? proplist_update(UpdateMode mode, Proplist pl, SuccessCb? cb = null);
1006
1007 public Operation? subscribe(SubscriptionMask mask, SuccessCb? cb = null);
1008
1009 public Operation? get_sink_info_by_name(string name, SinkInfoCb cb);
1010 public Operation? get_sink_info_by_index(uint32 idx, SinkInfoCb cb);
1011 public Operation? get_sink_info_list(SinkInfoCb cb);
1012
1013 public Operation? set_sink_volume_by_name(string name, CVolume volume, SuccessCb? cb = null);
1014 public Operation? set_sink_volume_by_index(uint32 idx, CVolume volume, SuccessCb? cb = null);
1015 public Operation? set_sink_mute_by_name(string name, bool mute, SuccessCb? cb = null);
1016 public Operation? set_sink_mute_by_index(uint32 idx, bool mute, SuccessCb? cb = null);
1017
1018 public Operation? suspend_sink_by_name(string name, bool suspend, SuccessCb? cb = null);
1019 public Operation? suspend_sink_by_index(uint32 idx, bool suspend, SuccessCb? cb = null);
1020
1021 public Operation? set_sink_port_by_name(string name, string port, SuccessCb? cb = null);
1022 public Operation? set_sink_port_by_index(string idx, string port, SuccessCb? cb = null);
1023
1024 public Operation? get_source_info_by_name(string name, SourceInfoCb cb);
1025 public Operation? get_source_info_by_index(uint32 idx, SourceInfoCb cb);
1026 public Operation? get_source_info_list(SourceInfoCb cb);
1027
1028 public Operation? set_source_volume_by_name(string name, CVolume volume, SuccessCb? cb = null);
1029 public Operation? set_source_volume_by_index(uint32 idx, CVolume volume, SuccessCb? cb = null);
1030 public Operation? set_source_mute_by_name(string name, bool mute, SuccessCb? cb = null);
1031 public Operation? set_source_mute_by_index(uint32 idx, bool mute, SuccessCb? cb = null);
1032
1033 public Operation? suspend_source_by_name(string name, bool suspend, SuccessCb? cb = null);
1034 public Operation? suspend_source_by_index(uint32 idx, bool suspend, SuccessCb? cb = null);
1035
1036 public Operation? set_source_port_by_name(string name, string port, SuccessCb? cb = null);
1037 public Operation? set_source_port_by_index(string idx, string port, SuccessCb? cb = null);
1038
1039 public Operation? get_server_info(ServerInfoCb cb);
1040
1041 public Operation? get_module_info(uint32 idx, ModuleInfoCb cb);
1042 public Operation? get_module_info_list(ModuleInfoCb cb);
1043
1044 public Operation? load_module(string name, string? argument, IndexCb? cb = null);
1045 public Operation? unload_module(uint32 idx, SuccessCb? cb = null);
1046
1047 public Operation? get_client_info(uint32 idx, ClientInfoCb cb);
1048 public Operation? get_client_info_list(ClientInfoCb cb);
1049
1050 public Operation? kill_client(uint32 idx, SuccessCb? cb = null);
1051
1052 public Operation? get_card_info_by_name(string name, CardInfoCb cb);
1053 public Operation? get_card_info_by_index(uint32 idx, CardInfoCb cb);
1054 public Operation? get_card_info_list(CardInfoCb cb);
1055
1056 public Operation? set_card_profile_by_index(uint32 idx, string profile, SuccessCb? cb = null);
1057 public Operation? set_card_profile_by_name(string name, string profile, SuccessCb? cb = null);
1058
1059 public Operation? get_sink_input_info(uint32 idx, SinkInputInfoCb cb);
1060 public Operation? get_sink_input_info_list(SinkInputInfoCb cb);
1061
1062 public Operation? move_sink_input_by_index(uint32 idx, uint32 sink_idx, SuccessCb? cb = null);
1063 public Operation? move_sink_input_by_name(uint32 idx, string sink_name, SuccessCb? cb = null);
1064
1065 public Operation? set_sink_input_volume(uint32 idx, CVolume volume, SuccessCb? cb = null);
1066 public Operation? set_sink_input_mute(uint32 idx, bool mute, SuccessCb? cb = null);
1067
1068 public Operation? kill_sink_input(uint32 idx, SuccessCb? cb = null);
1069
1070 public Operation? get_source_output_info(uint32 idx, SourceOutputInfoCb cb);
1071 public Operation? get_source_output_info_list(SourceOutputInfoCb cb);
1072
1073 public Operation? move_source_output_by_index(uint32 idx, uint32 source_idx, SuccessCb? cb = null);
1074 public Operation? move_source_output_by_name(uint32 idx, string source_name, SuccessCb? cb = null);
1075
1076 public Operation? kill_source_output(uint32 idx, SuccessCb? cb = null);
1077
1078 public Operation? stat(StatInfoCb cb);
1079
1080 public Operation? get_sample_info_by_name(string name, SampleInfoCb cb);
1081 public Operation? get_sample_info_by_index(uint32 idx, SampleInfoCb cb);
1082 public Operation? get_sample_info_list(SampleInfoCb cb);
1083
1084 public Operation? remove_sample(string name, SuccessCb? cb = null);
1085
1086 public Operation? play_sample(string name, string? device = null, Volume volume = Volume.INVALID, SuccessCb? cb = null);
1087 public Operation? play_sample_with_proplist(string name, string? device = null, Volume volume = Volume.INVALID, Proplist? p = null, IndexCb? cb = null);
1088 }
1089
1090 [Compact]
1091 [CCode (cname="pa_stream", cprefix="pa_stream_", unref_function="pa_stream_unref", ref_function="pa_stream_ref")]
1092 public class Stream {
1093
1094 [CCode (cname="pa_stream_flags_t", cprefix="PA_STREAM_")]
1095 public enum Flags {
1096 START_CORKED,
1097 INTERPOLATE_TIMING,
1098 NOT_MONOTONIC,
1099 AUTO_TIMING_UPDATE,
1100 NO_REMAP_CHANNELS,
1101 NO_REMIX_CHANNELS,
1102 FIX_FORMAT,
1103 FIX_RATE,
1104 FIX_CHANNELS,
1105 DONT_MOVE,
1106 VARIABLE_RATE,
1107 PEAK_DETECT,
1108 START_MUTED,
1109 ADJUST_LATENCY,
1110 EARLY_REQUESTS,
1111 DONT_INHIBIT_AUTO_SUSPEND,
1112 START_UNMUTED,
1113 FAIL_ON_SUSPEND
1114 }
1115
1116 [CCode (cname="pa_stream_state_t", cprefix="PA_STREAM_")]
1117 public enum State {
1118 UNCONNECTED,
1119 CREATING,
1120 READY,
1121 FAILED,
1122 TERMINATED;
1123
1124 bool IS_GOOD();
1125 }
1126
1127 [CCode (cname="pa_stream_direction_t", cprefix="PA_STREAM_")]
1128 public enum Direction {
1129 NODIRECTION,
1130 PLAYBACK,
1131 RECORD,
1132 UPLOAD
1133 }
1134
1135 [CCode (cname="pa_seek_mode_t", cprefix="PA_SEEK_")]
1136 public enum SeekMode {
1137 RELATIVE,
1138 ABSOLUTE,
1139 RELATIVE_ON_READ,
1140 RELATIVE_END
1141 }
1142
1143 [CCode (cname="pa_buffer_attr")]
1144 public struct BufferAttr {
1145 uint32 maxlength;
1146 uint32 tlength;
1147 uint32 prebuf;
1148 uint32 minreq;
1149 uint32 fragsize;
1150 }
1151
1152 [CCode (cname="pa_timing_info")]
1153 public struct TimingInfo {
1154 timeval timestamp;
1155 int synchronized_clocks;
1156 usec sink_usec;
1157 usec source_usec;
1158 usec transport_usec;
1159 int playing;
1160 int write_index_corrupt;
1161 int64 write_index;
1162 int read_index_corrupt;
1163 int64 read_index;
1164 usec configured_sink_usec;
1165 usec configured_source_usec;
1166 int64 since_underrun;
1167 }
1168
1169 [CCode (cname="PA_STREAM_EVENT_REQUEST_CORK")]
1170 public const string EVENT_REQUEST_CORK;
1171
1172 [CCode (cname="PA_STREAM_EVENT_REQUEST_UNCORK")]
1173 public const string EVENT_REQUEST_UNCORK;
1174
1175 public delegate void SuccessCb(int success);
1176 public delegate void RequestCb(size_t nbytes);
1177 public delegate void NotifyCb();
1178 public delegate void EventCb(string name, Proplist proplist);
1179
1180 [CCode (cname="pa_stream_new_with_proplist")]
1181 public Stream(Context c, string name, SampleSpec ss, ChannelMap map = null, Proplist proplist = null);
1182
1183 public State get_state();
1184 public Context get_context();
1185 public uint32 get_index();
1186 public uint32 get_device_index();
1187 public unowned string? get_device_name();
1188 public int is_suspended();
1189 public int is_corked();
1190
1191 public int connect_playback(string dev, BufferAttr a = null, Flags flags = 0, Volume volume = null, Stream sync_stream = null);
1192 public int connect_record(string dev, BufferAttr a = null, Flags flags = 0);
1193 public int connect_upload(size_t length);
1194 public int disconnect();
1195 public int finish_upload();
1196
1197 public int begin_write(out void* data, out size_t nbytes);
1198 public int cancel_write();
1199 public int write(void *data, size_t bytes, FreeCb free_cb = null, int64 offset = 0, SeekMode mode = SeekMode.RELATIVE);
1200 public int peek(out void *data, out size_t nbytes);
1201 public int drop();
1202 public size_t writable_size();
1203 public size_t readable_size();
1204
1205 public void set_state_callback(NotifyCb cb = null);
1206 public void set_write_callback(RequestCb cb = null);
1207 public void set_read_callback(RequestCb cb = null);
1208 public void set_overflow_callback(NotifyCb cb = null);
1209 public void set_underflow_callback(NotifyCb cb = null);
1210 public void set_started_callback(NotifyCb cb = null);
1211 public void set_latency_update_callback(NotifyCb cb = null);
1212 public void set_moved_callback(NotifyCb cb = null);
1213 public void set_suspended_callback(NotifyCb cb = null);
1214 public void set_event_callback(EventCb cb = null);
1215 public void set_buffer_attr_callback(NotifyCb cb = null);
1216
1217 public Operation? drain(SuccessCb cb = null);
1218 public Operation? update_timing_info(SuccessCb cb = null);
1219
1220 public Operation? cork(bool b, SuccessCb cb = null);
1221 public Operation? flush(SuccessCb cb = null);
1222 public Operation? prebuf(SuccessCb cb = null);
1223 public Operation? trigger(SuccessCb cb = null);
1224
1225 public Operation? set_name(string name, SuccessCb cb = null);
1226 public Operation? set_buffer_attr(BufferAttr attr, SuccessCb cb = null);
1227 public Operation? update_sample_rate(uint32 rate, SuccessCb cb = null);
1228
1229 [CCode (array_length = false)]
1230 public Operation? proplist_remove(string[] keys, SuccessCb cb = null);
1231 public Operation? proplist_update(UpdateMode mode, Proplist pl, SuccessCb cb = null);
1232
1233 public unowned TimingInfo? get_timing_info();
1234 public int get_time(out usec u);
1235 public int get_latency(out usec u, out bool negative = null);
1236
1237 public unowned SampleSpec? get_sample_spec();
1238 public unowned ChannelMap? get_channel_map();
1239 public unowned BufferAttr? get_buffer_attr();
1240
1241 public int set_monitor_stream(uint32 sink_input);
1242 public uint32 get_monitor_stream();
1243 }
1244
1245 [CCode (cname="pa_sink_port_info")]
1246 public struct SinkPortInfo {
1247 string name;
1248 string description;
1249 uint32 priority;
1250 }
1251
1252 [CCode (cname="pa_sink_info")]
1253 public struct SinkInfo {
1254 string name;
1255 uint32 index;
1256 string description;
1257 SampleSpec sample_spec;
1258 ChannelMap channel_map;
1259 uint32 owner_module;
1260 CVolume volume;
1261 int mute;
1262 uint32 monitor_source;
1263 string monitor_source_name;
1264 usec latency;
1265 string driver;
1266 SinkFlags flags;
1267 Proplist proplist;
1268 usec configured_latency;
1269 Volume base_volume;
1270 SinkState state;
1271 uint32 n_volume_steps;
1272 uint32 card;
1273 uint32 n_ports;
1274 SinkPortInfo*[] ports;
1275 SinkPortInfo* active_port;
1276 }
1277
1278 [CCode (cname="pa_source_port_info")]
1279 public struct SourcePortInfo {
1280 string name;
1281 string description;
1282 uint32 priority;
1283 }
1284
1285 [CCode (cname="pa_source_info")]
1286 public struct SourceInfo {
1287 string name;
1288 uint32 index;
1289 string description;
1290 SampleSpec sample_spec;
1291 ChannelMap channel_map;
1292 uint32 owner_module;
1293 CVolume volume;
1294 int mute;
1295 uint32 monitor_of_sink;
1296 string monitor_of_sink_name;
1297 usec latency;
1298 string driver;
1299 SourceFlags flags;
1300 Proplist proplist;
1301 usec configured_latency;
1302 Volume base_volume;
1303 SourceState state;
1304 uint32 n_volume_steps;
1305 uint32 card;
1306 uint32 n_ports;
1307 SourcePortInfo*[] ports;
1308 SourcePortInfo* active_port;
1309 }
1310
1311 [CCode (cname="pa_server_info")]
1312 public struct ServerInfo {
1313 string user_name;
1314 string host_name;
1315 string server_version;
1316 string server_name;
1317 SampleSpec sample_spec;
1318 string default_sink_name;
1319 string default_source_name;
1320 ChannelMap channel_map;
1321 }
1322
1323 [CCode (cname="pa_module_info")]
1324 public struct ModuleInfo {
1325 uint32 index;
1326 string name;
1327 string argument;
1328 uint32 n_used;
1329 Proplist proplist;
1330 }
1331
1332 [CCode (cname="pa_client_info")]
1333 public struct ClientInfo {
1334 uint32 index;
1335 string name;
1336 uint32 owner_module;
1337 string driver;
1338 Proplist proplist;
1339 }
1340
1341 [CCode (cname="pa_card_profile_info")]
1342 public struct CardProfileInfo {
1343 string name;
1344 string description;
1345 uint32 n_sinks;
1346 uint32 n_sources;
1347 uint32 priority;
1348 }
1349
1350 [CCode (cname="pa_card_info")]
1351 public struct CardInfo {
1352 uint32 index;
1353 string name;
1354 uint32 owner_module;
1355 string driver;
1356 uint32 n_profiles;
1357 CardProfileInfo profiles[];
1358 CardProfileInfo *active_profile;
1359 Proplist proplist;
1360 }
1361
1362 [CCode (cname="pa_sink_input_info")]
1363 public struct SinkInputInfo {
1364 uint32 index;
1365 string name;
1366 uint32 owner_module;
1367 uint32 client;
1368 uint32 sink;
1369 SampleSpec sample_spec;
1370 ChannelMap channel_map;
1371 CVolume volume;
1372 uint32 buffer_usec;
1373 uint32 sink_usec;
1374 string resample_method;
1375 string driver;
1376 int mute;
1377 Proplist proplist;
1378 }
1379
1380 [CCode (cname="pa_source_output_info")]
1381 public struct SourceOutputInfo {
1382 uint32 index;
1383 string name;
1384 uint32 owner_module;
1385 uint32 client;
1386 uint32 source;
1387 SampleSpec sample_spec;
1388 ChannelMap channel_map;
1389 uint32 buffer_usec;
1390 uint32 sink_usec;
1391 string resample_method;
1392 string driver;
1393 Proplist proplist;
1394 }
1395
1396 [CCode (cname="pa_stat_info")]
1397 public struct StatInfo {
1398 uint32 memblock_total;
1399 uint32 memblock_total_size;
1400 uint32 memblock_allocated;
1401 uint32 memblock_allocated_size;
1402 uint32 scache_size;
1403 }
1404
1405 [CCode (cname="pa_sample_info")]
1406 public struct SampleInfo {
1407 uint32 index;
1408 string name;
1409 CVolume volume;
1410 SampleSpec sample_spec;
1411 ChannelMap channel_map;
1412 usec duration;
1413 uint32 bytes;
1414 bool lazy;
1415 string filename;
1416 Proplist proplist;
1417 }
1418
1419 [CCode (cname="pa_sink_flags_t", cprefix="PA_SINK_")]
1420 public enum SinkFlags {
1421 HW_VOLUME_CTRL,
1422 LATENCY,
1423 HARDWARE,
1424 NETWORK,
1425 HW_MUTE_CTRL,
1426 DECIBEL_VOLUME,
1427 FLAT_VOLUME,
1428 DYNAMIC_LATENCY
1429 }
1430
1431 [CCode (cname="pa_source_flags_t", cprefix="PA_SOURCE_")]
1432 public enum SourceFlags {
1433 HW_VOLUME_CTRL,
1434 LATENCY,
1435 HARDWARE,
1436 NETWORK,
1437 HW_MUTE_CTRL,
1438 DECIBEL_VOLUME,
1439 DYNAMIC_LATENCY
1440 }
1441
1442 [CCode (cname="pa_sink_state_t", cprefix="PA_SINK_")]
1443 public enum SinkState {
1444 INVALID_STATE,
1445 RUNNING,
1446 IDLE,
1447 SUSPENDED;
1448
1449 [CCode (cname="PA_SINK_IS_OPENED")]
1450 public bool IS_OPENED();
1451 }
1452
1453 [CCode (cname="pa_source_state_t", cprefix="PA_SOURCE_")]
1454 public enum SourceState {
1455 INVALID_STATE,
1456 RUNNING,
1457 IDLE,
1458 SUSPENDED;
1459
1460 [CCode (cname="PA_SOURCE_IS_OPENED")]
1461 public bool IS_OPENED();
1462 }
1463 }