libpulse: as a special exception, don't require a non-NULL context in pa_context_errno
[pulseaudio-mirror.git] / pulseaudio.vapi
blobcf0e82e004ab5b90e555f8fba76ce2b07e2ea07b
1 /***
2   This file is part of PulseAudio.
4   Copyright 2009 Lennart Poettering
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.
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.
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 ***/
22 using GLib;
23 using Posix;
25 [CCode (cheader_filename="pulse/pulseaudio.h")]
26 namespace Pulse {
28         [CCode (cname="pa_get_library_version")]
29         public unowned string get_library_version();
31         [CCode (cname="PA_API_VERSION")]
32         public const int API_VERSION;
34         [CCode (cname="PA_PROTOCOL_VERSION")]
35         public const int PROTOCOL_VERSION;
37         [CCode (cname="PA_MAJOR")]
38         public const int MAJOR;
40         [CCode (cname="PA_MINOR")]
41         public const int MINOR;
43         [CCode (cname="PA_MICRO")]
44         public const int MICRO;
46         [CCode (cname="PA_CHECK_VERSION")]
47         public bool CHECK_VERSION(int major, int minor, int micro);
49         [CCode (cname="INVALID_INDEX")]
50         public const uint32 INVALID_INDEX;
52         [CCode (cname="pa_free_cb_t")]
53         public delegate void FreeCb(void *p);
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;
82                 [CCode (cname="pa_sample_size_of_format")]
83                 public size_t size();
85                 [CCode (cname="pa_sample_format_to_string")]
86                 public unowned string? to_string();
88                 [CCode (cname="pa_sample_format_is_le")]
89                 public int is_le();
91                 [CCode (cname="pa_sample_format_is_be")]
92                 public int is_be();
94                 [CCode (cname="pa_sample_format_is_ne")]
95                 public int is_ne();
97                 [CCode (cname="pa_sample_format_is_re")]
98                 public int is_re();
100                 [CCode (cname="pa_parse_sample_format")]
101                 public static SampleFormat parse(string b);
102         }
104         [CCode (cname="pa_usec_t")]
105         public struct usec : uint64 {
106         }
108         [CCode (cname="pa_sample_spec")]
109         public struct SampleSpec {
110                 public SampleFormat format;
111                 public uint32 rate;
112                 public uint8 channels;
114                 [CCode (cname="PA_SAMPLE_SPEC_SNPRINT_MAX")]
115                 public static const size_t SNPRINT_MAX;
117                 [CCode (cname="pa_bytes_per_second")]
118                 public size_t bytes_per_second();
120                 [CCode (cname="pa_frame_size")]
121                 public size_t frame_size();
123                 [CCode (cname="pa_sample_size")]
124                 public size_t sample_size();
126                 [CCode (cname="pa_bytes_to_usec", instance_pos=1.1)]
127                 public usec bytes_to_usec(size_t size);
129                 [CCode (cname="pa_usec_to_bytes", instance_pos=1.1)]
130                 public size_t usec_to_bytes(usec u);
132                 [CCode (cname="pa_sample_spec_init")]
133                 public unowned SampleSpec? init();
135                 [CCode (cname="pa_sample_spec_valid")]
136                 public bool valid();
138                 [CCode (cname="pa_sample_spec_equal")]
139                 public bool equal(SampleSpec other);
141                 [CCode (cname="pa_sample_spec_snprint", instance_pos=3.1)]
142                 public unowned string snprint(char[] buf);
144                 public string sprint() {
145                         var buffer = new char[SNPRINT_MAX];
146                         this.snprint(buffer);
147                         return (string) buffer;
148                 }
150                 public string to_string() {
151                         return sprint();
152                 }
154                 [CCode (cname="pa_sample_spec_init")]
155                 SampleSpec();
156         }
158         // [CCode (cname="PA_BYTES_SNPRINT_MAX")]
159         [CCode (cname="PA_SAMPLE_SPEC_SNPRINT_MAX")]
160         public const size_t BYTES_SNPRINT_MAX;
162         [CCode (cname="pa_bytes_snprint")]
163         public unowned string bytes_snprint(char[] buf, uint bytes);
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         }
171         [CCode (cname="pa_volume_t")]
172         public struct Volume : uint32 {
174                 [CCode (cname="PA_SW_VOLUME_SNPRINT_DB_MAX")]
175                 public static const size_t SW_SNPRINT_DB_MAX;
177                 [CCode (cname="PA_VOLUME_SNPRINT_MAX")]
178                 public static const size_t SNPRINT_MAX;
180                 [CCode (cname="PA_VOLUME_MAX")]
181                 public static const Volume MAX;
183                 [CCode (cname="PA_VOLUME_NORM")]
184                 public static const Volume NORM;
186                 [CCode (cname="PA_VOLUME_MUTED")]
187                 public static const Volume MUTED;
189                 // [CCode (cname="PA_VOLUME_INVALID")]
190                 [CCode (cname="PA_VOLUME_MAX")]
191                 public static const Volume INVALID;
193                 [CCode (cname="pa_volume_snprint", instance_pos = 3.1)]
194                 public unowned string snprint(char[] s);
196                 public string sprint() {
197                         var buffer = new char[SNPRINT_MAX];
198                         this.snprint(buffer);
199                         return (string) buffer;
200                 }
202                 public string to_string() {
203                         return sprint();
204                 }
206                 [CCode (cname="pa_sw_volume_snprint_dB", instance_pos = 3.1)]
207                 public unowned string sw_snprint_dB(char[] s);
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                 }
215                 [CCode (cname="pa_sw_volume_multiply")]
216                 public Volume sw_multiply(Volume other);
218                 [CCode (cname="pa_sw_volume_divide")]
219                 public Volume sw_divide(Volume other);
221                 [CCode (cname="pa_sw_volume_from_dB")]
222                 public static Volume sw_from_dB(double f);
224                 [CCode (cname="pa_sw_volume_to_dB")]
225                 public double sw_to_dB();
227                 [CCode (cname="pa_sw_volume_from_linear")]
228                 public static Volume sw_from_linear(double f);
230                 [CCode (cname="pa_sw_volume_to_linear")]
231                 public double sw_to_linear();
232         }
234         [CCode (cname="PA_DECIBEL_MININFTY")]
235         public const double DECIBEL_MININFTY;
237         [CCode (cname="PA_CHANNELS_MAX")]
238         public const int CHANNELS_MAX;
240         [CCode (cname="PA_CHANNELS_MAX")]
241         public const int RATE_MAX;
243         [CCode (cname="pa_cvolume")]
244         public struct CVolume {
245                 public uint8 channels;
246                 public Volume values[];
248                 [CCode (cname="PA_SW_CVOLUME_SNPRINT_DB_MAX")]
249                 public static const size_t SW_SNPRINT_DB_MAX;
251                 [CCode (cname="PA_CVOLUME_SNPRINT_MAX")]
252                 public static const size_t SNPRINT_MAX;
254                 [CCode (cname="pa_cvolume_equal")]
255                 public bool equal(CVolume other);
257                 [CCode (cname="pa_cvolume_init")]
258                 public unowned CVolume? init();
260                 [CCode (cname="pa_cvolume_reset")]
261                 public unowned CVolume? reset(uint8 channels);
263                 [CCode (cname="pa_cvolume_mute")]
264                 public unowned CVolume? mute(uint8 channels);
266                 [CCode (cname="pa_cvolume_snprint", instance_pos = 3.1)]
267                 public unowned string snprint(char[] s);
269                 public string sprint() {
270                         var buffer = new char[SNPRINT_MAX];
271                         this.snprint(buffer);
272                         return (string) buffer;
273                 }
275                 public string to_string() {
276                         return sprint();
277                 }
279                 [CCode (cname="pa_sw_cvolume_snprint_dB", instance_pos = 3.1)]
280                 public unowned string sw_snprint_dB(char [] s);
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                 }
288                 [CCode (cname="pa_cvolume_init")]
289                 public CVolume();
291                 [CCode (cname="pa_cvolume_avg")]
292                 public Volume avg();
294                 [CCode (cname="pa_cvolume_max")]
295                 public Volume max();
297                 [CCode (cname="pa_cvolume_min")]
298                 public Volume min();
300                 [CCode (cname="pa_cvolume_avg_mask")]
301                 public Volume avg_mask(ChannelMap map, ChannelPositionMask mask);
303                 [CCode (cname="pa_cvolume_max_mask")]
304                 public Volume max_mask(ChannelMap map, ChannelPositionMask mask);
306                 [CCode (cname="pa_cvolume_min_mask")]
307                 public Volume min_mask(ChannelMap map, ChannelPositionMask mask);
309                 [CCode (cname="pa_cvolume_valid")]
310                 public bool valid();
312                 [CCode (cname="pa_cvolume_channels_equal_to")]
313                 public bool channels_equal_to(Volume other);
315                 [CCode (cname="pa_cvolume_is_muted")]
316                 public bool is_muted();
318                 [CCode (cname="pa_cvolume_is_norm")]
319                 public bool is_norm();
321                 [CCode (cname="pa_sw_cvolume_multiply")]
322                 public unowned CVolume? multiply(CVolume other);
324                 [CCode (cname="pa_sw_cvolume_divide")]
325                 public unowned CVolume? divide(CVolume other);
327                 [CCode (cname="pa_sw_cvolume_multiply_scalar")]
328                 public unowned CVolume? multiply_scalar(Volume other);
330                 [CCode (cname="pa_sw_cvolume_divide_scalar")]
331                 public unowned CVolume? divide_scalar(Volume other);
333                 [CCode (cname="pa_cvolume_remap")]
334                 public unowned CVolume? remap(ChannelMap from, ChannelMap to);
336                 [CCode (cname="pa_cvolume_compatible")]
337                 public bool compatible(SampleSpec ss);
339                 [CCode (cname="pa_cvolume_compatible_with_channel_map")]
340                 public bool compatible_with_channel_map(ChannelMap cm);
342                 [CCode (cname="pa_cvolume_get_balance")]
343                 public float get_balance(ChannelMap map);
345                 [CCode (cname="pa_cvolume_set_balance")]
346                 public unowned CVolume? set_balance(ChannelMap map, float b);
348                 [CCode (cname="pa_cvolume_get_fade")]
349                 public float get_fade(ChannelMap map);
351                 [CCode (cname="pa_cvolume_set_fade")]
352                 public unowned CVolume? set_fade(ChannelMap map, float f);
354                 [CCode (cname="pa_cvolume_scale")]
355                 public unowned CVolume? scale(Volume max);
357                 [CCode (cname="pa_cvolume_scale_mask")]
358                 public unowned CVolume? scale_mask(Volume max, ChannelMap map, ChannelPositionMask mask);
360                 [CCode (cname="pa_cvolume_set_position")]
361                 public unowned CVolume? set_position(ChannelMap map, ChannelPosition p, Volume v);
363                 [CCode (cname="pa_cvolume_get_position")]
364                 public Volume get_position(ChannelMap map, ChannelPosition p);
366                 [CCode (cname="pa_cvolume_merge")]
367                 public unowned CVolume? merge(CVolume other);
369                 [CCode (cname="pa_cvolume_inc")]
370                 public unowned CVolume? inc(Volume plus = 1);
372                 [CCode (cname="pa_cvolume_dec")]
373                 public unowned CVolume? dec(Volume minus = 1);
374         }
376         [CCode (cname="pa_channel_map")]
377         public struct ChannelMap {
378                 public uint8 channels;
379                 public ChannelPosition map[];
381                 [CCode (cname="PA_CHANNEL_MAP_SNPRINT_MAX")]
382                 public static const size_t SNPRINT_MAX;
384                 [CCode (cname="pa_channel_map_init")]
385                 public ChannelMap();
387                 [CCode (cname="pa_channel_map_init")]
388                 public unowned ChannelMap? init();
390                 [CCode (cname="pa_channel_map_init_mono")]
391                 public unowned ChannelMap? init_mono();
393                 [CCode (cname="pa_channel_map_init_stereo")]
394                 public unowned ChannelMap? init_stereo();
396                 [CCode (cname="pa_channel_map_init_auto")]
397                 public unowned ChannelMap? init_auto(uint8 channels, ChannelMapDef def = ChannelMapDef.DEFAULT);
399                 [CCode (cname="pa_channel_map_init_extend")]
400                 public unowned ChannelMap? init_extend(uint8 channels, ChannelMapDef def = ChannelMapDef.DEFAULT);
402                 [CCode (cname="pa_channel_map_snprint", instance_pos = 3.1)]
403                 public unowned string snprint(char[] s);
405                 public string sprint() {
406                         var buffer = new char[SNPRINT_MAX];
407                         this.snprint(buffer);
408                         return (string) buffer;
409                 }
411                 public string to_string() {
412                         return sprint();
413                 }
415                 [CCode (cname="pa_channel_map_parse")]
416                 public unowned ChannelMap? parse(string s);
418                 [CCode (cname="pa_channel_map_equal")]
419                 public bool equal(ChannelMap other);
421                 [CCode (cname="pa_channel_map_superset")]
422                 public bool superset(ChannelMap other);
424                 [CCode (cname="pa_channel_map_valid")]
425                 public bool valid();
427                 [CCode (cname="pa_channel_map_compatible")]
428                 public bool compatible(SampleSpec ss);
430                 [CCode (cname="pa_channel_map_can_balance")]
431                 public bool can_balance();
433                 [CCode (cname="pa_channel_map_can_fade")]
434                 public bool can_fade();
436                 [CCode (cname="pa_channel_map_to_name")]
437                 public unowned string? to_name();
439                 [CCode (cname="pa_channel_map_to_pretty_name")]
440                 public unowned string? to_pretty_name();
442                 [CCode (cname="pa_channel_map_has_position")]
443                 public bool has_position(ChannelPosition p);
445                 [CCode (cname="pa_channel_map_mask")]
446                 public ChannelPositionMask mask();
447         }
449         [CCode (cname="pa_channel_position_mask_t")]
450         public struct ChannelPositionMask : uint64 {
451         }
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;
503                 [CCode (cname="PA_CHANNEL_POSITION_MASK")]
504                 public ChannelPositionMask mask();
506                 [CCode (cname="pa_channel_position_to_string")]
507                 public unowned string? to_string();
509                 [CCode (cname="pa_channel_position_to_pretty_string")]
510                 public unowned string? to_pretty_string();
512                 [CCode (cname="pa_channel_position_from_string")]
513                 public static ChannelPosition from_string(string s);
514         }
516         [CCode (cname="pa_channel_map_def_t", cprefix="PA_CHANNEL_MAP_")]
517         public enum ChannelMapDef {
518                 AIFF,
519                 WAVEEX,
520                 AUX,
521                 DEFAULT,
523                 [CCode (cname="PA_CHANNEL_MAP_DEF_MAX")]
524                 MAX
525         }
527         [Compact]
528         [CCode (cname="pa_proplist", cprefix="pa_proplist_", free_function="pa_proplist_free")]
529         public class Proplist {
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;
648                 [CCode (cname="pa_proplist_new")]
649                 public Proplist();
651                 public int sets(string key, string value);
652                 public int setp(string pair);
654                 [PrintfFormat]
655                 public int setf(string key, string format, ...);
657                 public int set(string key, void* data, size_t size);
659                 public unowned string? gets(string key);
661                 public int get(string key, out void* data, out size_t size);
663                 public void update(UpdateMode mode, Proplist other);
665                 public void unset(string key);
667                 [CCode (array_length = false)]
668                 public void unset_many(string[] key);
670                 public unowned string? iterate(ref void* state);
672                 public string to_string();
674                 public string to_string_sep(string sep);
676                 public static Proplist? from_string(string s);
678                 public int contains(string key);
680                 public void clear();
682                 public Proplist copy();
684                 public uint size();
686                 public bool is_empty();
687         }
689         [CCode (cname="pa_update_mode_t", cprefix="PA_UPDATE_")]
690         public enum UpdateMode {
691                 SET,
692                 MERGE,
693                 REPLACE
694         }
696         [CCode (cname="PA_OK")]
697         public const int OK;
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         }
729         [CCode (cname="pa_strerror")]
730         public unowned string? strerror(Error e);
732         public delegate void VoidFunc();
734         [CCode (cname="pa_spawn_api")]
735         public struct SpawnApi {
736                 VoidFunc? prefork;
737                 VoidFunc? postfork;
738                 VoidFunc? atfork;
739         }
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         }
750         [CCode (cname="pa_io_event")]
751         public struct IoEvent {
752         }
754         [CCode (cname="pa_time_event")]
755         public struct TimeEvent {
756         }
758         [CCode (cname="pa_defer_event")]
759         public struct DeferEvent {
760         }
762         [CCode (cname="pa_signal_event", cprefix="pa_signal_", free_function="pa_signal_free")]
763         public struct SignalEvent {
765                 [CCode (cname="pa_signal_new")]
766                 public SignalEvent(int sig, MainLoopApi.SignalEventCb cb);
768                 public void set_destroy(MainLoopApi.SignalEventDestroyCb cb);
769         }
771         [Compact]
772         [CCode (cname="pa_mainloop_api")]
773         public class MainLoopApi {
774                 public void* userdata;
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);
780                 public delegate void TimeEventCb(TimeEvent e, ref timeval t);
781                 public delegate void TimeEventDestroyCb(TimeEvent e);
783                 public delegate void DeferEventCb(DeferEvent e);
784                 public delegate void DeferEventDestroyCb(DeferEvent e);
786                 public delegate void SignalEventCb(SignalEvent e);
787                 public delegate void SignalEventDestroyCb(SignalEvent e);
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);
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);
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);
805                 public delegate void QuitCb(int retval);
807                 public delegate void OnceCb();
809                 public IoNewCb io_new;
810                 public IoEnableCb io_enable;
811                 public IoFreeCb io_free;
812                 public IoSetDestroyCb io_set_destroy;
814                 public TimeNewCb time_new;
815                 public TimeRestartCb time_restart;
816                 public TimeFreeCb time_free;
817                 public TimeSetDestroyCb time_set_destroy;
819                 public DeferNewCb defer_new;
820                 public DeferEnableCb defer_enable;
821                 public DeferFreeCb defer_free;
822                 public DeferSetDestroyCb defer_set_destroy;
824                 public QuitCb quit;
826                 [CCode (cname="pa_mainloop_api_once")]
827                 public void once(OnceCb cb);
828         }
830         [CCode (cname="pa_signal_init")]
831         public void signal_init(MainLoopApi api);
833         [CCode (cname="pa_signal_done")]
834         public void signal_done();
836         [CCode (cname="pa_poll_func")]
837         public delegate int PollFunc(pollfd[] ufds);
839         [Compact]
840         [CCode (cname="pa_mainloop", cprefix="pa_mainloop_", free_function="pa_mainloop_free")]
841         public class MainLoop {
843                 [CCode (cname="pa_mainloop_new")]
844                 public MainLoop();
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         }
858         [Compact]
859         [CCode (cname="pa_threaded_mainloop", cprefix="pa_threaded_mainloop_", free_function="pa_threaded_mainloop_free")]
860         public class ThreadedMainLoop {
862                 [CCode (cname="pa_threaded_mainloop_new")]
863                 public ThreadedMainLoop();
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         }
877         [Compact]
878         [CCode (cname="pa_glib_mainloop", cprefix="pa_glib_mainloop_", free_function="pa_glib_mainloop_free")]
879         public class GLibMainLoop {
881                 [CCode (cname="pa_glib_mainloop_new")]
882                 public GLibMainLoop();
884                 public unowned MainLoopApi get_api();
885         }
887         [Compact]
888         [CCode (cname="pa_operation", cprefix="pa_operation_", unref_function="pa_operation_unref", ref_function="pa_operation_ref")]
889         public class Operation {
891                 [CCode (cname="pa_operation_state_t", cprefix="PA_OPERATION_")]
892                 public enum State {
893                         RUNNING,
894                         DONE,
895                         CANCELED
896                 }
898                 public void cancel();
899                 public State get_state();
900         }
902         [Compact]
903         [CCode (cname="pa_context", cprefix="pa_context_", unref_function="pa_context_unref", ref_function="pa_context_ref")]
904         public class Context {
906                 [CCode (cname="pa_context_flags_t", cprefix="PA_CONTEXT_")]
907                 public enum Flags {
908                         NOAUTOSPAWN,
909                         NOFAIL
910                 }
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;
922                         bool IS_GOOD();
923                 }
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;
939                         [CCode (cname="pa_subscription_match_flags")]
940                         bool match_flags(SubscriptionEventType t);
941                 }
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                 }
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);
977                 [CCode (cname="pa_context_new_with_proplist")]
978                 public Context(MainLoopApi api, string? name, Proplist? proplist = null);
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);
984                 public Error errno();
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();
994                 public int connect(string? server = null, Flags flags = 0, SpawnApi? api = null);
995                 public void disconnect();
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);
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);
1007                 public Operation? subscribe(SubscriptionMask mask, SuccessCb? cb = null);
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);
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);
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);
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);
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);
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);
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);
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);
1039                 public Operation? get_server_info(ServerInfoCb cb);
1041                 public Operation? get_module_info(uint32 idx, ModuleInfoCb cb);
1042                 public Operation? get_module_info_list(ModuleInfoCb cb);
1044                 public Operation? load_module(string name, string? argument, IndexCb? cb = null);
1045                 public Operation? unload_module(uint32 idx, SuccessCb? cb = null);
1047                 public Operation? get_client_info(uint32 idx, ClientInfoCb cb);
1048                 public Operation? get_client_info_list(ClientInfoCb cb);
1050                 public Operation? kill_client(uint32 idx, SuccessCb? cb = null);
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);
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);
1059                 public Operation? get_sink_input_info(uint32 idx, SinkInputInfoCb cb);
1060                 public Operation? get_sink_input_info_list(SinkInputInfoCb cb);
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);
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);
1068                 public Operation? kill_sink_input(uint32 idx, SuccessCb? cb = null);
1070                 public Operation? get_source_output_info(uint32 idx, SourceOutputInfoCb cb);
1071                 public Operation? get_source_output_info_list(SourceOutputInfoCb cb);
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);
1076                 public Operation? kill_source_output(uint32 idx, SuccessCb? cb = null);
1078                 public Operation? stat(StatInfoCb cb);
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);
1084                 public Operation? remove_sample(string name, SuccessCb? cb = null);
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         }
1090         [Compact]
1091         [CCode (cname="pa_stream", cprefix="pa_stream_", unref_function="pa_stream_unref", ref_function="pa_stream_ref")]
1092         public class Stream {
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                 }
1116                 [CCode (cname="pa_stream_state_t", cprefix="PA_STREAM_")]
1117                 public enum State {
1118                         UNCONNECTED,
1119                         CREATING,
1120                         READY,
1121                         FAILED,
1122                         TERMINATED;
1124                         bool IS_GOOD();
1125                 }
1127                 [CCode (cname="pa_stream_direction_t", cprefix="PA_STREAM_")]
1128                 public enum Direction {
1129                         NODIRECTION,
1130                         PLAYBACK,
1131                         RECORD,
1132                         UPLOAD
1133                 }
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                 }
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                 }
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                 }
1169                 [CCode (cname="PA_STREAM_EVENT_REQUEST_CORK")]
1170                 public const string EVENT_REQUEST_CORK;
1172                 [CCode (cname="PA_STREAM_EVENT_REQUEST_UNCORK")]
1173                 public const string EVENT_REQUEST_UNCORK;
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);
1180                 [CCode (cname="pa_stream_new_with_proplist")]
1181                 public Stream(Context c, string name, SampleSpec ss, ChannelMap map = null, Proplist proplist = null);
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();
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();
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();
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);
1217                 public Operation? drain(SuccessCb cb = null);
1218                 public Operation? update_timing_info(SuccessCb cb = null);
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);
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);
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);
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);
1237                 public unowned SampleSpec? get_sample_spec();
1238                 public unowned ChannelMap? get_channel_map();
1239                 public unowned BufferAttr? get_buffer_attr();
1241                 public int set_monitor_stream(uint32 sink_input);
1242                 public uint32 get_monitor_stream();
1243         }
1245         [CCode (cname="pa_sink_port_info")]
1246         public struct SinkPortInfo {
1247                 string name;
1248                 string description;
1249                 uint32 priority;
1250         }
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         }
1278         [CCode (cname="pa_source_port_info")]
1279         public struct SourcePortInfo {
1280                 string name;
1281                 string description;
1282                 uint32 priority;
1283         }
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         }
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         }
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         }
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         }
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         }
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         }
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         }
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         }
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         }
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         }
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         }
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         }
1442         [CCode (cname="pa_sink_state_t", cprefix="PA_SINK_")]
1443         public enum SinkState {
1444                 INVALID_STATE,
1445                 RUNNING,
1446                 IDLE,
1447                 SUSPENDED;
1449                 [CCode (cname="PA_SINK_IS_OPENED")]
1450                 public bool IS_OPENED();
1451         }
1453         [CCode (cname="pa_source_state_t", cprefix="PA_SOURCE_")]
1454         public enum SourceState {
1455                 INVALID_STATE,
1456                 RUNNING,
1457                 IDLE,
1458                 SUSPENDED;
1460                 [CCode (cname="PA_SOURCE_IS_OPENED")]
1461                 public bool IS_OPENED();
1462         }