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