xref: /third_party/pulseaudio/vala/libpulse.vapi (revision 53a5a1b3)
153a5a1b3Sopenharmony_ci/***
253a5a1b3Sopenharmony_ci  This file is part of PulseAudio.
353a5a1b3Sopenharmony_ci
453a5a1b3Sopenharmony_ci  Copyright 2009 Lennart Poettering
553a5a1b3Sopenharmony_ci
653a5a1b3Sopenharmony_ci  PulseAudio is free software; you can redistribute it and/or modify
753a5a1b3Sopenharmony_ci  it under the terms of the GNU Lesser General Public License as published
853a5a1b3Sopenharmony_ci  by the Free Software Foundation; either version 2.1 of the License,
953a5a1b3Sopenharmony_ci  or (at your option) any later version.
1053a5a1b3Sopenharmony_ci
1153a5a1b3Sopenharmony_ci  PulseAudio is distributed in the hope that it will be useful, but
1253a5a1b3Sopenharmony_ci  WITHOUT ANY WARRANTY; without even the implied warranty of
1353a5a1b3Sopenharmony_ci  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1453a5a1b3Sopenharmony_ci  General Public License for more details.
1553a5a1b3Sopenharmony_ci
1653a5a1b3Sopenharmony_ci  You should have received a copy of the GNU Lesser General Public License
1753a5a1b3Sopenharmony_ci  along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
1853a5a1b3Sopenharmony_ci***/
1953a5a1b3Sopenharmony_ci
2053a5a1b3Sopenharmony_ciusing GLib;
2153a5a1b3Sopenharmony_ciusing Posix;
2253a5a1b3Sopenharmony_ci
2353a5a1b3Sopenharmony_ci[CCode (cheader_filename="pulse/pulseaudio.h")]
2453a5a1b3Sopenharmony_cinamespace PulseAudio {
2553a5a1b3Sopenharmony_ci
2653a5a1b3Sopenharmony_ci        [CCode (cname="pa_get_library_version")]
2753a5a1b3Sopenharmony_ci        public unowned string get_library_version();
2853a5a1b3Sopenharmony_ci
2953a5a1b3Sopenharmony_ci        [CCode (cname="PA_API_VERSION")]
3053a5a1b3Sopenharmony_ci        public const int API_VERSION;
3153a5a1b3Sopenharmony_ci
3253a5a1b3Sopenharmony_ci        [CCode (cname="PA_PROTOCOL_VERSION")]
3353a5a1b3Sopenharmony_ci        public const int PROTOCOL_VERSION;
3453a5a1b3Sopenharmony_ci
3553a5a1b3Sopenharmony_ci        [CCode (cname="PA_MAJOR")]
3653a5a1b3Sopenharmony_ci        public const int MAJOR;
3753a5a1b3Sopenharmony_ci
3853a5a1b3Sopenharmony_ci        [CCode (cname="PA_MINOR")]
3953a5a1b3Sopenharmony_ci        public const int MINOR;
4053a5a1b3Sopenharmony_ci
4153a5a1b3Sopenharmony_ci        [CCode (cname="PA_MICRO")]
4253a5a1b3Sopenharmony_ci        public const int MICRO;
4353a5a1b3Sopenharmony_ci
4453a5a1b3Sopenharmony_ci        [CCode (cname="PA_CHECK_VERSION")]
4553a5a1b3Sopenharmony_ci        public bool CHECK_VERSION(int major, int minor, int micro);
4653a5a1b3Sopenharmony_ci
4753a5a1b3Sopenharmony_ci        [CCode (cname="PA_INVALID_INDEX")]
4853a5a1b3Sopenharmony_ci        public const uint32 INVALID_INDEX;
4953a5a1b3Sopenharmony_ci
5053a5a1b3Sopenharmony_ci        [CCode (cname="pa_free_cb_t", has_target=false)]
5153a5a1b3Sopenharmony_ci        public delegate void FreeCb(void *p);
5253a5a1b3Sopenharmony_ci
5353a5a1b3Sopenharmony_ci        [CCode (cname="pa_sample_format_t", cprefix="PA_SAMPLE_", has_type_id=false)]
5453a5a1b3Sopenharmony_ci        public enum SampleFormat {
5553a5a1b3Sopenharmony_ci                U8,
5653a5a1b3Sopenharmony_ci                ALAW,
5753a5a1b3Sopenharmony_ci                ULAW,
5853a5a1b3Sopenharmony_ci                S16LE,
5953a5a1b3Sopenharmony_ci                S16BE,
6053a5a1b3Sopenharmony_ci                FLOAT32LE,
6153a5a1b3Sopenharmony_ci                FLOAT32BE,
6253a5a1b3Sopenharmony_ci                S32LE,
6353a5a1b3Sopenharmony_ci                S32BE,
6453a5a1b3Sopenharmony_ci                S24LE,
6553a5a1b3Sopenharmony_ci                S24BE,
6653a5a1b3Sopenharmony_ci                S24_32LE,
6753a5a1b3Sopenharmony_ci                S24_32BE,
6853a5a1b3Sopenharmony_ci                MAX,
6953a5a1b3Sopenharmony_ci                S16NE,
7053a5a1b3Sopenharmony_ci                S16RE,
7153a5a1b3Sopenharmony_ci                FLOAT32NE,
7253a5a1b3Sopenharmony_ci                FLOAT32RE,
7353a5a1b3Sopenharmony_ci                S32NE,
7453a5a1b3Sopenharmony_ci                S32RE,
7553a5a1b3Sopenharmony_ci                S24NE,
7653a5a1b3Sopenharmony_ci                S24RE,
7753a5a1b3Sopenharmony_ci                S24_32NE,
7853a5a1b3Sopenharmony_ci                S24_32RE;
7953a5a1b3Sopenharmony_ci
8053a5a1b3Sopenharmony_ci                [CCode (cname="pa_sample_size_of_format")]
8153a5a1b3Sopenharmony_ci                public size_t size();
8253a5a1b3Sopenharmony_ci
8353a5a1b3Sopenharmony_ci                [CCode (cname="pa_sample_format_to_string")]
8453a5a1b3Sopenharmony_ci                public unowned string? to_string();
8553a5a1b3Sopenharmony_ci
8653a5a1b3Sopenharmony_ci                [CCode (cname="pa_sample_format_is_le")]
8753a5a1b3Sopenharmony_ci                public int is_le();
8853a5a1b3Sopenharmony_ci
8953a5a1b3Sopenharmony_ci                [CCode (cname="pa_sample_format_is_be")]
9053a5a1b3Sopenharmony_ci                public int is_be();
9153a5a1b3Sopenharmony_ci
9253a5a1b3Sopenharmony_ci                [CCode (cname="pa_sample_format_is_ne")]
9353a5a1b3Sopenharmony_ci                public int is_ne();
9453a5a1b3Sopenharmony_ci
9553a5a1b3Sopenharmony_ci                [CCode (cname="pa_sample_format_is_re")]
9653a5a1b3Sopenharmony_ci                public int is_re();
9753a5a1b3Sopenharmony_ci
9853a5a1b3Sopenharmony_ci                [CCode (cname="pa_parse_sample_format")]
9953a5a1b3Sopenharmony_ci                public static SampleFormat parse(string b);
10053a5a1b3Sopenharmony_ci        }
10153a5a1b3Sopenharmony_ci
10253a5a1b3Sopenharmony_ci        [CCode (cname="pa_usec_t")]
10353a5a1b3Sopenharmony_ci        public struct usec : uint64 {
10453a5a1b3Sopenharmony_ci        }
10553a5a1b3Sopenharmony_ci
10653a5a1b3Sopenharmony_ci        [CCode (cname="pa_sample_spec", has_type_id=false)]
10753a5a1b3Sopenharmony_ci        public struct SampleSpec {
10853a5a1b3Sopenharmony_ci                public SampleFormat format;
10953a5a1b3Sopenharmony_ci                public uint32 rate;
11053a5a1b3Sopenharmony_ci                public uint8 channels;
11153a5a1b3Sopenharmony_ci
11253a5a1b3Sopenharmony_ci                [CCode (cname="PA_SAMPLE_SPEC_SNPRINT_MAX")]
11353a5a1b3Sopenharmony_ci                public const size_t SNPRINT_MAX;
11453a5a1b3Sopenharmony_ci
11553a5a1b3Sopenharmony_ci                [CCode (cname="pa_bytes_per_second")]
11653a5a1b3Sopenharmony_ci                public size_t bytes_per_second();
11753a5a1b3Sopenharmony_ci
11853a5a1b3Sopenharmony_ci                [CCode (cname="pa_frame_size")]
11953a5a1b3Sopenharmony_ci                public size_t frame_size();
12053a5a1b3Sopenharmony_ci
12153a5a1b3Sopenharmony_ci                [CCode (cname="pa_sample_size")]
12253a5a1b3Sopenharmony_ci                public size_t sample_size();
12353a5a1b3Sopenharmony_ci
12453a5a1b3Sopenharmony_ci                [CCode (cname="pa_bytes_to_usec", instance_pos=1.1)]
12553a5a1b3Sopenharmony_ci                public usec bytes_to_usec(size_t size);
12653a5a1b3Sopenharmony_ci
12753a5a1b3Sopenharmony_ci                [CCode (cname="pa_usec_to_bytes", instance_pos=1.1)]
12853a5a1b3Sopenharmony_ci                public size_t usec_to_bytes(usec u);
12953a5a1b3Sopenharmony_ci
13053a5a1b3Sopenharmony_ci                [CCode (cname="pa_sample_spec_init")]
13153a5a1b3Sopenharmony_ci                public unowned SampleSpec? init();
13253a5a1b3Sopenharmony_ci
13353a5a1b3Sopenharmony_ci                [CCode (cname="pa_sample_spec_valid")]
13453a5a1b3Sopenharmony_ci                public bool valid();
13553a5a1b3Sopenharmony_ci
13653a5a1b3Sopenharmony_ci                [CCode (cname="pa_sample_spec_equal")]
13753a5a1b3Sopenharmony_ci                public bool equal(SampleSpec other);
13853a5a1b3Sopenharmony_ci
13953a5a1b3Sopenharmony_ci                [CCode (cname="pa_sample_spec_snprint", instance_pos=3.1)]
14053a5a1b3Sopenharmony_ci                public unowned string snprint(char[] buf);
14153a5a1b3Sopenharmony_ci
14253a5a1b3Sopenharmony_ci                public string sprint() {
14353a5a1b3Sopenharmony_ci                        var buffer = new char[SNPRINT_MAX];
14453a5a1b3Sopenharmony_ci                        this.snprint(buffer);
14553a5a1b3Sopenharmony_ci                        return (string) buffer;
14653a5a1b3Sopenharmony_ci                }
14753a5a1b3Sopenharmony_ci
14853a5a1b3Sopenharmony_ci                public string to_string() {
14953a5a1b3Sopenharmony_ci                        return sprint();
15053a5a1b3Sopenharmony_ci                }
15153a5a1b3Sopenharmony_ci
15253a5a1b3Sopenharmony_ci                [CCode (cname="pa_sample_spec_init")]
15353a5a1b3Sopenharmony_ci                public SampleSpec();
15453a5a1b3Sopenharmony_ci        }
15553a5a1b3Sopenharmony_ci
15653a5a1b3Sopenharmony_ci        // [CCode (cname="PA_BYTES_SNPRINT_MAX")]
15753a5a1b3Sopenharmony_ci        [CCode (cname="PA_SAMPLE_SPEC_SNPRINT_MAX")]
15853a5a1b3Sopenharmony_ci        public const size_t BYTES_SNPRINT_MAX;
15953a5a1b3Sopenharmony_ci
16053a5a1b3Sopenharmony_ci        [CCode (cname="pa_bytes_snprint")]
16153a5a1b3Sopenharmony_ci        public unowned string bytes_snprint(char[] buf, uint bytes);
16253a5a1b3Sopenharmony_ci
16353a5a1b3Sopenharmony_ci        public string bytes_sprint(uint bytes) {
16453a5a1b3Sopenharmony_ci                var buffer = new char[BYTES_SNPRINT_MAX];
16553a5a1b3Sopenharmony_ci                bytes_snprint(buffer, bytes);
16653a5a1b3Sopenharmony_ci                return (string) buffer;
16753a5a1b3Sopenharmony_ci        }
16853a5a1b3Sopenharmony_ci
16953a5a1b3Sopenharmony_ci        [CCode (cname="pa_volume_t", has_type_id=false)]
17053a5a1b3Sopenharmony_ci        public struct Volume : uint32 {
17153a5a1b3Sopenharmony_ci
17253a5a1b3Sopenharmony_ci                [CCode (cname="PA_SW_VOLUME_SNPRINT_DB_MAX")]
17353a5a1b3Sopenharmony_ci                public const size_t SW_SNPRINT_DB_MAX;
17453a5a1b3Sopenharmony_ci
17553a5a1b3Sopenharmony_ci                [CCode (cname="PA_VOLUME_SNPRINT_MAX")]
17653a5a1b3Sopenharmony_ci                public const size_t SNPRINT_MAX;
17753a5a1b3Sopenharmony_ci
17853a5a1b3Sopenharmony_ci                [CCode (cname="PA_VOLUME_MAX")]
17953a5a1b3Sopenharmony_ci                public const Volume MAX;
18053a5a1b3Sopenharmony_ci
18153a5a1b3Sopenharmony_ci                [CCode (cname="PA_VOLUME_NORM")]
18253a5a1b3Sopenharmony_ci                public const Volume NORM;
18353a5a1b3Sopenharmony_ci
18453a5a1b3Sopenharmony_ci                [CCode (cname="PA_VOLUME_MUTED")]
18553a5a1b3Sopenharmony_ci                public const Volume MUTED;
18653a5a1b3Sopenharmony_ci
18753a5a1b3Sopenharmony_ci                // [CCode (cname="PA_VOLUME_INVALID")]
18853a5a1b3Sopenharmony_ci                [CCode (cname="PA_VOLUME_MAX")]
18953a5a1b3Sopenharmony_ci                public const Volume INVALID;
19053a5a1b3Sopenharmony_ci
19153a5a1b3Sopenharmony_ci                [CCode (cname="pa_volume_snprint", instance_pos = 3.1)]
19253a5a1b3Sopenharmony_ci                public unowned string snprint(char[] s);
19353a5a1b3Sopenharmony_ci
19453a5a1b3Sopenharmony_ci                public string sprint() {
19553a5a1b3Sopenharmony_ci                        var buffer = new char[SNPRINT_MAX];
19653a5a1b3Sopenharmony_ci                        this.snprint(buffer);
19753a5a1b3Sopenharmony_ci                        return (string) buffer;
19853a5a1b3Sopenharmony_ci                }
19953a5a1b3Sopenharmony_ci
20053a5a1b3Sopenharmony_ci                public string to_string() {
20153a5a1b3Sopenharmony_ci                        return sprint();
20253a5a1b3Sopenharmony_ci                }
20353a5a1b3Sopenharmony_ci
20453a5a1b3Sopenharmony_ci                [CCode (cname="pa_sw_volume_snprint_dB", instance_pos = 3.1)]
20553a5a1b3Sopenharmony_ci                public unowned string sw_snprint_dB(char[] s);
20653a5a1b3Sopenharmony_ci
20753a5a1b3Sopenharmony_ci                public string sw_sprint_dB() {
20853a5a1b3Sopenharmony_ci                        var buffer = new char[SW_SNPRINT_DB_MAX];
20953a5a1b3Sopenharmony_ci                        this.sw_snprint_dB(buffer);
21053a5a1b3Sopenharmony_ci                        return (string) buffer;
21153a5a1b3Sopenharmony_ci                }
21253a5a1b3Sopenharmony_ci
21353a5a1b3Sopenharmony_ci                [CCode (cname="pa_sw_volume_multiply")]
21453a5a1b3Sopenharmony_ci                public Volume sw_multiply(Volume other);
21553a5a1b3Sopenharmony_ci
21653a5a1b3Sopenharmony_ci                [CCode (cname="pa_sw_volume_divide")]
21753a5a1b3Sopenharmony_ci                public Volume sw_divide(Volume other);
21853a5a1b3Sopenharmony_ci
21953a5a1b3Sopenharmony_ci                [CCode (cname="pa_sw_volume_from_dB")]
22053a5a1b3Sopenharmony_ci                public static Volume sw_from_dB(double f);
22153a5a1b3Sopenharmony_ci
22253a5a1b3Sopenharmony_ci                [CCode (cname="pa_sw_volume_to_dB")]
22353a5a1b3Sopenharmony_ci                public double sw_to_dB();
22453a5a1b3Sopenharmony_ci
22553a5a1b3Sopenharmony_ci                [CCode (cname="pa_sw_volume_from_linear")]
22653a5a1b3Sopenharmony_ci                public static Volume sw_from_linear(double f);
22753a5a1b3Sopenharmony_ci
22853a5a1b3Sopenharmony_ci                [CCode (cname="pa_sw_volume_to_linear")]
22953a5a1b3Sopenharmony_ci                public double sw_to_linear();
23053a5a1b3Sopenharmony_ci        }
23153a5a1b3Sopenharmony_ci
23253a5a1b3Sopenharmony_ci        [CCode (cname="PA_DECIBEL_MININFTY")]
23353a5a1b3Sopenharmony_ci        public const double DECIBEL_MININFTY;
23453a5a1b3Sopenharmony_ci
23553a5a1b3Sopenharmony_ci        [CCode (cname="PA_CHANNELS_MAX")]
23653a5a1b3Sopenharmony_ci        public const int CHANNELS_MAX;
23753a5a1b3Sopenharmony_ci
23853a5a1b3Sopenharmony_ci        [CCode (cname="PA_RATE_MAX")]
23953a5a1b3Sopenharmony_ci        public const int RATE_MAX;
24053a5a1b3Sopenharmony_ci
24153a5a1b3Sopenharmony_ci        [CCode (cname="pa_cvolume", has_type_id=false)]
24253a5a1b3Sopenharmony_ci        public struct CVolume {
24353a5a1b3Sopenharmony_ci                public uint8 channels;
24453a5a1b3Sopenharmony_ci                public Volume values[CHANNELS_MAX];
24553a5a1b3Sopenharmony_ci
24653a5a1b3Sopenharmony_ci                [CCode (cname="PA_SW_CVOLUME_SNPRINT_DB_MAX")]
24753a5a1b3Sopenharmony_ci                public const size_t SW_SNPRINT_DB_MAX;
24853a5a1b3Sopenharmony_ci
24953a5a1b3Sopenharmony_ci                [CCode (cname="PA_CVOLUME_SNPRINT_MAX")]
25053a5a1b3Sopenharmony_ci                public const size_t SNPRINT_MAX;
25153a5a1b3Sopenharmony_ci
25253a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_equal")]
25353a5a1b3Sopenharmony_ci                public bool equal(CVolume other);
25453a5a1b3Sopenharmony_ci
25553a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_init")]
25653a5a1b3Sopenharmony_ci                public unowned CVolume? init();
25753a5a1b3Sopenharmony_ci
25853a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_reset")]
25953a5a1b3Sopenharmony_ci                public unowned CVolume? reset(uint8 channels);
26053a5a1b3Sopenharmony_ci
26153a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_mute")]
26253a5a1b3Sopenharmony_ci                public unowned CVolume? mute(uint8 channels);
26353a5a1b3Sopenharmony_ci
26453a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_snprint", instance_pos = 3.1)]
26553a5a1b3Sopenharmony_ci                public unowned string snprint(char[] s);
26653a5a1b3Sopenharmony_ci
26753a5a1b3Sopenharmony_ci                public string sprint() {
26853a5a1b3Sopenharmony_ci                        var buffer = new char[SNPRINT_MAX];
26953a5a1b3Sopenharmony_ci                        this.snprint(buffer);
27053a5a1b3Sopenharmony_ci                        return (string) buffer;
27153a5a1b3Sopenharmony_ci                }
27253a5a1b3Sopenharmony_ci
27353a5a1b3Sopenharmony_ci                public string to_string() {
27453a5a1b3Sopenharmony_ci                        return sprint();
27553a5a1b3Sopenharmony_ci                }
27653a5a1b3Sopenharmony_ci
27753a5a1b3Sopenharmony_ci                [CCode (cname="pa_sw_cvolume_snprint_dB", instance_pos = 3.1)]
27853a5a1b3Sopenharmony_ci                public unowned string sw_snprint_dB(char [] s);
27953a5a1b3Sopenharmony_ci
28053a5a1b3Sopenharmony_ci                public string sw_sprint_dB() {
28153a5a1b3Sopenharmony_ci                        var buffer = new char[SW_SNPRINT_DB_MAX];
28253a5a1b3Sopenharmony_ci                        this.sw_snprint_dB(buffer);
28353a5a1b3Sopenharmony_ci                        return (string) buffer;
28453a5a1b3Sopenharmony_ci                }
28553a5a1b3Sopenharmony_ci
28653a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_init")]
28753a5a1b3Sopenharmony_ci                public CVolume();
28853a5a1b3Sopenharmony_ci
28953a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_avg")]
29053a5a1b3Sopenharmony_ci                public Volume avg();
29153a5a1b3Sopenharmony_ci
29253a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_max")]
29353a5a1b3Sopenharmony_ci                public Volume max();
29453a5a1b3Sopenharmony_ci
29553a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_min")]
29653a5a1b3Sopenharmony_ci                public Volume min();
29753a5a1b3Sopenharmony_ci
29853a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_avg_mask")]
29953a5a1b3Sopenharmony_ci                public Volume avg_mask(ChannelMap map, ChannelPositionMask mask);
30053a5a1b3Sopenharmony_ci
30153a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_max_mask")]
30253a5a1b3Sopenharmony_ci                public Volume max_mask(ChannelMap map, ChannelPositionMask mask);
30353a5a1b3Sopenharmony_ci
30453a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_min_mask")]
30553a5a1b3Sopenharmony_ci                public Volume min_mask(ChannelMap map, ChannelPositionMask mask);
30653a5a1b3Sopenharmony_ci
30753a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_valid")]
30853a5a1b3Sopenharmony_ci                public bool valid();
30953a5a1b3Sopenharmony_ci
31053a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_channels_equal_to")]
31153a5a1b3Sopenharmony_ci                public bool channels_equal_to(Volume other);
31253a5a1b3Sopenharmony_ci
31353a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_is_muted")]
31453a5a1b3Sopenharmony_ci                public bool is_muted();
31553a5a1b3Sopenharmony_ci
31653a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_is_norm")]
31753a5a1b3Sopenharmony_ci                public bool is_norm();
31853a5a1b3Sopenharmony_ci
31953a5a1b3Sopenharmony_ci                [CCode (cname="pa_sw_cvolume_multiply")]
32053a5a1b3Sopenharmony_ci                public unowned CVolume? multiply(CVolume other);
32153a5a1b3Sopenharmony_ci
32253a5a1b3Sopenharmony_ci                [CCode (cname="pa_sw_cvolume_divide")]
32353a5a1b3Sopenharmony_ci                public unowned CVolume? divide(CVolume other);
32453a5a1b3Sopenharmony_ci
32553a5a1b3Sopenharmony_ci                [CCode (cname="pa_sw_cvolume_multiply_scalar")]
32653a5a1b3Sopenharmony_ci                public unowned CVolume? multiply_scalar(Volume other);
32753a5a1b3Sopenharmony_ci
32853a5a1b3Sopenharmony_ci                [CCode (cname="pa_sw_cvolume_divide_scalar")]
32953a5a1b3Sopenharmony_ci                public unowned CVolume? divide_scalar(Volume other);
33053a5a1b3Sopenharmony_ci
33153a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_remap")]
33253a5a1b3Sopenharmony_ci                public unowned CVolume? remap(ChannelMap from, ChannelMap to);
33353a5a1b3Sopenharmony_ci
33453a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_compatible")]
33553a5a1b3Sopenharmony_ci                public bool compatible(SampleSpec ss);
33653a5a1b3Sopenharmony_ci
33753a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_compatible_with_channel_map")]
33853a5a1b3Sopenharmony_ci                public bool compatible_with_channel_map(ChannelMap cm);
33953a5a1b3Sopenharmony_ci
34053a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_set")]
34153a5a1b3Sopenharmony_ci                public unowned CVolume? set(uint8 channels, Volume v);
34253a5a1b3Sopenharmony_ci
34353a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_get_balance")]
34453a5a1b3Sopenharmony_ci                public float get_balance(ChannelMap map);
34553a5a1b3Sopenharmony_ci
34653a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_set_balance")]
34753a5a1b3Sopenharmony_ci                public unowned CVolume? set_balance(ChannelMap map, float b);
34853a5a1b3Sopenharmony_ci
34953a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_get_fade")]
35053a5a1b3Sopenharmony_ci                public float get_fade(ChannelMap map);
35153a5a1b3Sopenharmony_ci
35253a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_set_fade")]
35353a5a1b3Sopenharmony_ci                public unowned CVolume? set_fade(ChannelMap map, float f);
35453a5a1b3Sopenharmony_ci
35553a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_scale")]
35653a5a1b3Sopenharmony_ci                public unowned CVolume? scale(Volume max);
35753a5a1b3Sopenharmony_ci
35853a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_scale_mask")]
35953a5a1b3Sopenharmony_ci                public unowned CVolume? scale_mask(Volume max, ChannelMap map, ChannelPositionMask mask);
36053a5a1b3Sopenharmony_ci
36153a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_set_position")]
36253a5a1b3Sopenharmony_ci                public unowned CVolume? set_position(ChannelMap map, ChannelPosition p, Volume v);
36353a5a1b3Sopenharmony_ci
36453a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_get_position")]
36553a5a1b3Sopenharmony_ci                public Volume get_position(ChannelMap map, ChannelPosition p);
36653a5a1b3Sopenharmony_ci
36753a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_merge")]
36853a5a1b3Sopenharmony_ci                public unowned CVolume? merge(CVolume other);
36953a5a1b3Sopenharmony_ci
37053a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_inc")]
37153a5a1b3Sopenharmony_ci                public unowned CVolume? inc(Volume plus = 1);
37253a5a1b3Sopenharmony_ci
37353a5a1b3Sopenharmony_ci                [CCode (cname="pa_cvolume_dec")]
37453a5a1b3Sopenharmony_ci                public unowned CVolume? dec(Volume minus = 1);
37553a5a1b3Sopenharmony_ci        }
37653a5a1b3Sopenharmony_ci
37753a5a1b3Sopenharmony_ci        [CCode (cname="pa_channel_map", has_type_id=false)]
37853a5a1b3Sopenharmony_ci        public struct ChannelMap {
37953a5a1b3Sopenharmony_ci                public uint8 channels;
38053a5a1b3Sopenharmony_ci                // TODO: Replace array length with CHANNELS_MAX once vala's bug #647788 is fixed
38153a5a1b3Sopenharmony_ci                public ChannelPosition map[32];
38253a5a1b3Sopenharmony_ci
38353a5a1b3Sopenharmony_ci                [CCode (cname="PA_CHANNEL_MAP_SNPRINT_MAX")]
38453a5a1b3Sopenharmony_ci                public const size_t SNPRINT_MAX;
38553a5a1b3Sopenharmony_ci
38653a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_init")]
38753a5a1b3Sopenharmony_ci                public ChannelMap();
38853a5a1b3Sopenharmony_ci
38953a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_init")]
39053a5a1b3Sopenharmony_ci                public unowned ChannelMap? init();
39153a5a1b3Sopenharmony_ci
39253a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_init_mono")]
39353a5a1b3Sopenharmony_ci                public unowned ChannelMap? init_mono();
39453a5a1b3Sopenharmony_ci
39553a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_init_stereo")]
39653a5a1b3Sopenharmony_ci                public unowned ChannelMap? init_stereo();
39753a5a1b3Sopenharmony_ci
39853a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_init_auto")]
39953a5a1b3Sopenharmony_ci                public unowned ChannelMap? init_auto(uint8 channels, ChannelMapDef def = ChannelMapDef.DEFAULT);
40053a5a1b3Sopenharmony_ci
40153a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_init_extend")]
40253a5a1b3Sopenharmony_ci                public unowned ChannelMap? init_extend(uint8 channels, ChannelMapDef def = ChannelMapDef.DEFAULT);
40353a5a1b3Sopenharmony_ci
40453a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_snprint", instance_pos = 3.1)]
40553a5a1b3Sopenharmony_ci                public unowned string snprint(char[] s);
40653a5a1b3Sopenharmony_ci
40753a5a1b3Sopenharmony_ci                public string sprint() {
40853a5a1b3Sopenharmony_ci                        var buffer = new char[SNPRINT_MAX];
40953a5a1b3Sopenharmony_ci                        this.snprint(buffer);
41053a5a1b3Sopenharmony_ci                        return (string) buffer;
41153a5a1b3Sopenharmony_ci                }
41253a5a1b3Sopenharmony_ci
41353a5a1b3Sopenharmony_ci                public string to_string() {
41453a5a1b3Sopenharmony_ci                        return sprint();
41553a5a1b3Sopenharmony_ci                }
41653a5a1b3Sopenharmony_ci
41753a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_parse")]
41853a5a1b3Sopenharmony_ci                public unowned ChannelMap? parse(string s);
41953a5a1b3Sopenharmony_ci
42053a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_equal")]
42153a5a1b3Sopenharmony_ci                public bool equal(ChannelMap other);
42253a5a1b3Sopenharmony_ci
42353a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_superset")]
42453a5a1b3Sopenharmony_ci                public bool superset(ChannelMap other);
42553a5a1b3Sopenharmony_ci
42653a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_valid")]
42753a5a1b3Sopenharmony_ci                public bool valid();
42853a5a1b3Sopenharmony_ci
42953a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_compatible")]
43053a5a1b3Sopenharmony_ci                public bool compatible(SampleSpec ss);
43153a5a1b3Sopenharmony_ci
43253a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_can_balance")]
43353a5a1b3Sopenharmony_ci                public bool can_balance();
43453a5a1b3Sopenharmony_ci
43553a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_can_fade")]
43653a5a1b3Sopenharmony_ci                public bool can_fade();
43753a5a1b3Sopenharmony_ci
43853a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_to_name")]
43953a5a1b3Sopenharmony_ci                public unowned string? to_name();
44053a5a1b3Sopenharmony_ci
44153a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_to_pretty_name")]
44253a5a1b3Sopenharmony_ci                public unowned string? to_pretty_name();
44353a5a1b3Sopenharmony_ci
44453a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_has_position")]
44553a5a1b3Sopenharmony_ci                public bool has_position(ChannelPosition p);
44653a5a1b3Sopenharmony_ci
44753a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_map_mask")]
44853a5a1b3Sopenharmony_ci                public ChannelPositionMask mask();
44953a5a1b3Sopenharmony_ci        }
45053a5a1b3Sopenharmony_ci
45153a5a1b3Sopenharmony_ci        [CCode (cname="pa_channel_position_mask_t", has_type_id=false)]
45253a5a1b3Sopenharmony_ci        public struct ChannelPositionMask : uint64 {
45353a5a1b3Sopenharmony_ci        }
45453a5a1b3Sopenharmony_ci
45553a5a1b3Sopenharmony_ci        [CCode (cname="pa_channel_position_t", cprefix="PA_CHANNEL_POSITION_", has_type_id=false)]
45653a5a1b3Sopenharmony_ci        public enum ChannelPosition {
45753a5a1b3Sopenharmony_ci                INVALID,
45853a5a1b3Sopenharmony_ci                MONO,
45953a5a1b3Sopenharmony_ci                FRONT_LEFT,
46053a5a1b3Sopenharmony_ci                FRONT_RIGHT,
46153a5a1b3Sopenharmony_ci                FRONT_CENTER,
46253a5a1b3Sopenharmony_ci                REAR_CENTER,
46353a5a1b3Sopenharmony_ci                REAR_LEFT,
46453a5a1b3Sopenharmony_ci                REAR_RIGHT,
46553a5a1b3Sopenharmony_ci                LFE,
46653a5a1b3Sopenharmony_ci                FRONT_LEFT_OF_CENTER,
46753a5a1b3Sopenharmony_ci                FRONT_RIGHT_OF_CENTER,
46853a5a1b3Sopenharmony_ci                SIDE_LEFT,
46953a5a1b3Sopenharmony_ci                SIDE_RIGHT,
47053a5a1b3Sopenharmony_ci                TOP_CENTER,
47153a5a1b3Sopenharmony_ci                AUX0,
47253a5a1b3Sopenharmony_ci                AUX1,
47353a5a1b3Sopenharmony_ci                AUX2,
47453a5a1b3Sopenharmony_ci                AUX3,
47553a5a1b3Sopenharmony_ci                AUX4,
47653a5a1b3Sopenharmony_ci                AUX5,
47753a5a1b3Sopenharmony_ci                AUX6,
47853a5a1b3Sopenharmony_ci                AUX7,
47953a5a1b3Sopenharmony_ci                AUX8,
48053a5a1b3Sopenharmony_ci                AUX9,
48153a5a1b3Sopenharmony_ci                AUX10,
48253a5a1b3Sopenharmony_ci                AUX11,
48353a5a1b3Sopenharmony_ci                AUX12,
48453a5a1b3Sopenharmony_ci                AUX13,
48553a5a1b3Sopenharmony_ci                AUX14,
48653a5a1b3Sopenharmony_ci                AUX15,
48753a5a1b3Sopenharmony_ci                AUX16,
48853a5a1b3Sopenharmony_ci                AUX17,
48953a5a1b3Sopenharmony_ci                AUX18,
49053a5a1b3Sopenharmony_ci                AUX19,
49153a5a1b3Sopenharmony_ci                AUX20,
49253a5a1b3Sopenharmony_ci                AUX21,
49353a5a1b3Sopenharmony_ci                AUX22,
49453a5a1b3Sopenharmony_ci                AUX23,
49553a5a1b3Sopenharmony_ci                AUX24,
49653a5a1b3Sopenharmony_ci                AUX25,
49753a5a1b3Sopenharmony_ci                AUX26,
49853a5a1b3Sopenharmony_ci                AUX27,
49953a5a1b3Sopenharmony_ci                AUX28,
50053a5a1b3Sopenharmony_ci                AUX29,
50153a5a1b3Sopenharmony_ci                AUX30,
50253a5a1b3Sopenharmony_ci                AUX31,
50353a5a1b3Sopenharmony_ci                MAX;
50453a5a1b3Sopenharmony_ci
50553a5a1b3Sopenharmony_ci                [CCode (cname="PA_CHANNEL_POSITION_MASK")]
50653a5a1b3Sopenharmony_ci                public ChannelPositionMask mask();
50753a5a1b3Sopenharmony_ci
50853a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_position_to_string")]
50953a5a1b3Sopenharmony_ci                public unowned string? to_string();
51053a5a1b3Sopenharmony_ci
51153a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_position_to_pretty_string")]
51253a5a1b3Sopenharmony_ci                public unowned string? to_pretty_string();
51353a5a1b3Sopenharmony_ci
51453a5a1b3Sopenharmony_ci                [CCode (cname="pa_channel_position_from_string")]
51553a5a1b3Sopenharmony_ci                public static ChannelPosition from_string(string s);
51653a5a1b3Sopenharmony_ci        }
51753a5a1b3Sopenharmony_ci
51853a5a1b3Sopenharmony_ci        [CCode (cname="pa_channel_map_def_t", cprefix="PA_CHANNEL_MAP_", has_type_id=false)]
51953a5a1b3Sopenharmony_ci        public enum ChannelMapDef {
52053a5a1b3Sopenharmony_ci                AIFF,
52153a5a1b3Sopenharmony_ci                WAVEEX,
52253a5a1b3Sopenharmony_ci                AUX,
52353a5a1b3Sopenharmony_ci                DEFAULT,
52453a5a1b3Sopenharmony_ci
52553a5a1b3Sopenharmony_ci                [CCode (cname="PA_CHANNEL_MAP_DEF_MAX")]
52653a5a1b3Sopenharmony_ci                MAX
52753a5a1b3Sopenharmony_ci        }
52853a5a1b3Sopenharmony_ci
52953a5a1b3Sopenharmony_ci        [Compact]
53053a5a1b3Sopenharmony_ci        [CCode (cname="pa_proplist", cprefix="pa_proplist_", free_function="pa_proplist_free", has_type_id=false)]
53153a5a1b3Sopenharmony_ci        public class Proplist {
53253a5a1b3Sopenharmony_ci
53353a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_MEDIA_NAME")]
53453a5a1b3Sopenharmony_ci                public const string PROP_MEDIA_NAME;
53553a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_MEDIA_TITLE")]
53653a5a1b3Sopenharmony_ci                public const string PROP_MEDIA_TITLE;
53753a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_MEDIA_ARTIST")]
53853a5a1b3Sopenharmony_ci                public const string PROP_MEDIA_ARTIST;
53953a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_MEDIA_COPYRIGHT")]
54053a5a1b3Sopenharmony_ci                public const string PROP_MEDIA_COPYRIGHT;
54153a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_MEDIA_SOFTWARE")]
54253a5a1b3Sopenharmony_ci                public const string PROP_MEDIA_SOFTWARE;
54353a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_MEDIA_LANGUAGE")]
54453a5a1b3Sopenharmony_ci                public const string PROP_MEDIA_LANGUAGE;
54553a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_MEDIA_FILENAME")]
54653a5a1b3Sopenharmony_ci                public const string PROP_MEDIA_FILENAME;
54753a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_MEDIA_ICON_NAME")]
54853a5a1b3Sopenharmony_ci                public const string PROP_MEDIA_ICON_NAME;
54953a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_MEDIA_ROLE")]
55053a5a1b3Sopenharmony_ci                public const string PROP_MEDIA_ROLE;
55153a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_EVENT_ID")]
55253a5a1b3Sopenharmony_ci                public const string PROP_EVENT_ID;
55353a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_EVENT_DESCRIPTION")]
55453a5a1b3Sopenharmony_ci                public const string PROP_EVENT_DESCRIPTION;
55553a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_EVENT_MOUSE_X")]
55653a5a1b3Sopenharmony_ci                public const string PROP_EVENT_MOUSE_X;
55753a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_EVENT_MOUSE_Y")]
55853a5a1b3Sopenharmony_ci                public const string PROP_EVENT_MOUSE_Y;
55953a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_EVENT_MOUSE_HPOS")]
56053a5a1b3Sopenharmony_ci                public const string PROP_EVENT_MOUSE_HPOS;
56153a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_EVENT_MOUSE_VPOS")]
56253a5a1b3Sopenharmony_ci                public const string PROP_EVENT_MOUSE_VPOS;
56353a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_EVENT_MOUSE_BUTTON")]
56453a5a1b3Sopenharmony_ci                public const string PROP_EVENT_MOUSE_BUTTON;
56553a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_WINDOW_NAME")]
56653a5a1b3Sopenharmony_ci                public const string PROP_WINDOW_NAME;
56753a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_WINDOW_ID")]
56853a5a1b3Sopenharmony_ci                public const string PROP_WINDOW_ID;
56953a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_WINDOW_ICON_NAME")]
57053a5a1b3Sopenharmony_ci                public const string PROP_WINDOW_ICON_NAME;
57153a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_WINDOW_X11_DISPLAY")]
57253a5a1b3Sopenharmony_ci                public const string PROP_WINDOW_X11_DISPLAY;
57353a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_WINDOW_X11_SCREEN")]
57453a5a1b3Sopenharmony_ci                public const string PROP_WINDOW_X11_SCREEN;
57553a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_WINDOW_X11_MONITOR")]
57653a5a1b3Sopenharmony_ci                public const string PROP_WINDOW_X11_MONITOR;
57753a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_WINDOW_X11_XID")]
57853a5a1b3Sopenharmony_ci                public const string PROP_WINDOW_X11_XID;
57953a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_APPLICATION_NAME")]
58053a5a1b3Sopenharmony_ci                public const string PROP_APPLICATION_NAME;
58153a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_APPLICATION_ID")]
58253a5a1b3Sopenharmony_ci                public const string PROP_APPLICATION_ID;
58353a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_APPLICATION_VERSION")]
58453a5a1b3Sopenharmony_ci                public const string PROP_APPLICATION_VERSION;
58553a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_APPLICATION_ICON_NAME")]
58653a5a1b3Sopenharmony_ci                public const string PROP_APPLICATION_ICON_NAME;
58753a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_APPLICATION_LANGUAGE")]
58853a5a1b3Sopenharmony_ci                public const string PROP_APPLICATION_LANGUAGE;
58953a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_APPLICATION_PROCESS_ID")]
59053a5a1b3Sopenharmony_ci                public const string PROP_APPLICATION_PROCESS_ID;
59153a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_APPLICATION_PROCESS_BINARY")]
59253a5a1b3Sopenharmony_ci                public const string PROP_APPLICATION_PROCESS_BINARY;
59353a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_APPLICATION_PROCESS_USER")]
59453a5a1b3Sopenharmony_ci                public const string PROP_APPLICATION_PROCESS_USER;
59553a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_APPLICATION_PROCESS_HOST")]
59653a5a1b3Sopenharmony_ci                public const string PROP_APPLICATION_PROCESS_HOST;
59753a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_APPLICATION_PROCESS_MACHINE_ID")]
59853a5a1b3Sopenharmony_ci                public const string PROP_APPLICATION_PROCESS_MACHINE_ID;
59953a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_APPLICATION_PROCESS_SESSION_ID")]
60053a5a1b3Sopenharmony_ci                public const string PROP_APPLICATION_PROCESS_SESSION_ID;
60153a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_STRING")]
60253a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_STRING;
60353a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_API")]
60453a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_API;
60553a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_DESCRIPTION")]
60653a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_DESCRIPTION;
60753a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_BUS_PATH")]
60853a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_BUS_PATH;
60953a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_SERIAL")]
61053a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_SERIAL;
61153a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_VENDOR_ID")]
61253a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_VENDOR_ID;
61353a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_VENDOR_NAME")]
61453a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_VENDOR_NAME;
61553a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_PRODUCT_ID")]
61653a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_PRODUCT_ID;
61753a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_PRODUCT_NAME")]
61853a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_PRODUCT_NAME;
61953a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_CLASS")]
62053a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_CLASS;
62153a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_FORM_FACTOR")]
62253a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_FORM_FACTOR;
62353a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_BUS")]
62453a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_BUS;
62553a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_ICON_NAME")]
62653a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_ICON_NAME;
62753a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_ACCESS_MODE")]
62853a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_ACCESS_MODE;
62953a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_MASTER_DEVICE")]
63053a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_MASTER_DEVICE;
63153a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_BUFFERING_BUFFER_SIZE")]
63253a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_BUFFERING_BUFFER_SIZE;
63353a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_BUFFERING_FRAGMENT_SIZE")]
63453a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_BUFFERING_FRAGMENT_SIZE;
63553a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_PROFILE_NAME")]
63653a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_PROFILE_NAME;
63753a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_INTENDED_ROLES")]
63853a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_INTENDED_ROLES;
63953a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_DEVICE_PROFILE_DESCRIPTION")]
64053a5a1b3Sopenharmony_ci                public const string PROP_DEVICE_PROFILE_DESCRIPTION;
64153a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_MODULE_AUTHOR")]
64253a5a1b3Sopenharmony_ci                public const string PROP_MODULE_AUTHOR;
64353a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_MODULE_DESCRIPTION")]
64453a5a1b3Sopenharmony_ci                public const string PROP_MODULE_DESCRIPTION;
64553a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_MODULE_USAGE")]
64653a5a1b3Sopenharmony_ci                public const string PROP_MODULE_USAGE;
64753a5a1b3Sopenharmony_ci                [CCode (cname="PA_PROP_MODULE_VERSION")]
64853a5a1b3Sopenharmony_ci                public const string PROP_MODULE_VERSION;
64953a5a1b3Sopenharmony_ci
65053a5a1b3Sopenharmony_ci                [CCode (cname="pa_proplist_new")]
65153a5a1b3Sopenharmony_ci                public Proplist();
65253a5a1b3Sopenharmony_ci
65353a5a1b3Sopenharmony_ci                public int sets(string key, string value);
65453a5a1b3Sopenharmony_ci                public int setp(string pair);
65553a5a1b3Sopenharmony_ci
65653a5a1b3Sopenharmony_ci                [PrintfFormat]
65753a5a1b3Sopenharmony_ci                public int setf(string key, string format, ...);
65853a5a1b3Sopenharmony_ci
65953a5a1b3Sopenharmony_ci                public int set(string key, void* data, size_t size);
66053a5a1b3Sopenharmony_ci
66153a5a1b3Sopenharmony_ci                public unowned string? gets(string key);
66253a5a1b3Sopenharmony_ci
66353a5a1b3Sopenharmony_ci                public int get(string key, out void* data, out size_t size);
66453a5a1b3Sopenharmony_ci
66553a5a1b3Sopenharmony_ci                public void update(UpdateMode mode, Proplist other);
66653a5a1b3Sopenharmony_ci
66753a5a1b3Sopenharmony_ci                public void unset(string key);
66853a5a1b3Sopenharmony_ci
66953a5a1b3Sopenharmony_ci                public void unset_many([CCode (array_length = false)] string[] key);
67053a5a1b3Sopenharmony_ci
67153a5a1b3Sopenharmony_ci                public unowned string? iterate(ref void* state);
67253a5a1b3Sopenharmony_ci
67353a5a1b3Sopenharmony_ci                public string to_string();
67453a5a1b3Sopenharmony_ci
67553a5a1b3Sopenharmony_ci                public string to_string_sep(string sep);
67653a5a1b3Sopenharmony_ci
67753a5a1b3Sopenharmony_ci                public static Proplist? from_string(string s);
67853a5a1b3Sopenharmony_ci
67953a5a1b3Sopenharmony_ci                public int contains(string key);
68053a5a1b3Sopenharmony_ci
68153a5a1b3Sopenharmony_ci                public void clear();
68253a5a1b3Sopenharmony_ci
68353a5a1b3Sopenharmony_ci                public Proplist copy();
68453a5a1b3Sopenharmony_ci
68553a5a1b3Sopenharmony_ci                public uint size();
68653a5a1b3Sopenharmony_ci
68753a5a1b3Sopenharmony_ci                [CCode (cname="pa_proplist_isempty")]
68853a5a1b3Sopenharmony_ci                public bool is_empty();
68953a5a1b3Sopenharmony_ci        }
69053a5a1b3Sopenharmony_ci
69153a5a1b3Sopenharmony_ci        [CCode (cname="pa_update_mode_t", cprefix="PA_UPDATE_", has_type_id=false)]
69253a5a1b3Sopenharmony_ci        public enum UpdateMode {
69353a5a1b3Sopenharmony_ci                SET,
69453a5a1b3Sopenharmony_ci                MERGE,
69553a5a1b3Sopenharmony_ci                REPLACE
69653a5a1b3Sopenharmony_ci        }
69753a5a1b3Sopenharmony_ci
69853a5a1b3Sopenharmony_ci        [CCode (cname="PA_OK")]
69953a5a1b3Sopenharmony_ci        public const int OK;
70053a5a1b3Sopenharmony_ci
70153a5a1b3Sopenharmony_ci        [CCode (cname="int", cprefix="PA_ERR_", has_type_id=false)]
70253a5a1b3Sopenharmony_ci        public enum Error {
70353a5a1b3Sopenharmony_ci                ACCESS,
70453a5a1b3Sopenharmony_ci                COMMAND,
70553a5a1b3Sopenharmony_ci                INVALID,
70653a5a1b3Sopenharmony_ci                EXIST,
70753a5a1b3Sopenharmony_ci                NOENTITY,
70853a5a1b3Sopenharmony_ci                CONNECTIONREFUSED,
70953a5a1b3Sopenharmony_ci                PROTOCOL,
71053a5a1b3Sopenharmony_ci                TIMEOUT,
71153a5a1b3Sopenharmony_ci                AUTHKEY,
71253a5a1b3Sopenharmony_ci                INTERNAL,
71353a5a1b3Sopenharmony_ci                CONNECTIONTERMINATED,
71453a5a1b3Sopenharmony_ci                KILLED,
71553a5a1b3Sopenharmony_ci                INVALIDSERVER,
71653a5a1b3Sopenharmony_ci                MODINITFAILED,
71753a5a1b3Sopenharmony_ci                BADSTATE,
71853a5a1b3Sopenharmony_ci                NODATA,
71953a5a1b3Sopenharmony_ci                VERSION,
72053a5a1b3Sopenharmony_ci                TOOLARGE,
72153a5a1b3Sopenharmony_ci                NOTSUPPORTED,
72253a5a1b3Sopenharmony_ci                UNKNOWN,
72353a5a1b3Sopenharmony_ci                NOEXTENSION,
72453a5a1b3Sopenharmony_ci                OBSOLETE,
72553a5a1b3Sopenharmony_ci                NOTIMPLEMENTED,
72653a5a1b3Sopenharmony_ci                FORKED,
72753a5a1b3Sopenharmony_ci                IO,
72853a5a1b3Sopenharmony_ci                MAX
72953a5a1b3Sopenharmony_ci        }
73053a5a1b3Sopenharmony_ci
73153a5a1b3Sopenharmony_ci        [CCode (cname="pa_strerror")]
73253a5a1b3Sopenharmony_ci        public unowned string? strerror(Error e);
73353a5a1b3Sopenharmony_ci
73453a5a1b3Sopenharmony_ci        [CCode (has_target = false, has_typedef = false)]
73553a5a1b3Sopenharmony_ci        public delegate void VoidFunc();
73653a5a1b3Sopenharmony_ci
73753a5a1b3Sopenharmony_ci        [CCode (cname="pa_spawn_api", has_type_id=false)]
73853a5a1b3Sopenharmony_ci        public struct SpawnApi {
73953a5a1b3Sopenharmony_ci                VoidFunc? prefork;
74053a5a1b3Sopenharmony_ci                VoidFunc? postfork;
74153a5a1b3Sopenharmony_ci                VoidFunc? atfork;
74253a5a1b3Sopenharmony_ci        }
74353a5a1b3Sopenharmony_ci
74453a5a1b3Sopenharmony_ci        [CCode (cname="pa_io_event_flags_t", cprefix="PA_IO_EVENT_", has_type_id=false)]
74553a5a1b3Sopenharmony_ci        public enum IoEventFlags {
74653a5a1b3Sopenharmony_ci                NULL,
74753a5a1b3Sopenharmony_ci                INPUT,
74853a5a1b3Sopenharmony_ci                OUTPUT,
74953a5a1b3Sopenharmony_ci                HANGUP,
75053a5a1b3Sopenharmony_ci                ERROR
75153a5a1b3Sopenharmony_ci        }
75253a5a1b3Sopenharmony_ci
75353a5a1b3Sopenharmony_ci        [Compact]
75453a5a1b3Sopenharmony_ci        [CCode (cname="pa_io_event", unref_function="", ref_function="", has_type_id=false)]
75553a5a1b3Sopenharmony_ci        public class IoEvent {
75653a5a1b3Sopenharmony_ci        }
75753a5a1b3Sopenharmony_ci
75853a5a1b3Sopenharmony_ci        [Compact]
75953a5a1b3Sopenharmony_ci        [CCode (cname="pa_time_event", unref_function="", ref_function="", has_type_id=false)]
76053a5a1b3Sopenharmony_ci        public class TimeEvent {
76153a5a1b3Sopenharmony_ci        }
76253a5a1b3Sopenharmony_ci
76353a5a1b3Sopenharmony_ci        [Compact]
76453a5a1b3Sopenharmony_ci        [CCode (cname="pa_defer_event", unref_function="", ref_function="", has_type_id=false)]
76553a5a1b3Sopenharmony_ci        public class DeferEvent {
76653a5a1b3Sopenharmony_ci        }
76753a5a1b3Sopenharmony_ci
76853a5a1b3Sopenharmony_ci        [Compact]
76953a5a1b3Sopenharmony_ci        [CCode (cname="pa_signal_event", cprefix="pa_signal_", free_function="pa_signal_free", has_type_id=false)]
77053a5a1b3Sopenharmony_ci        public class SignalEvent {
77153a5a1b3Sopenharmony_ci
77253a5a1b3Sopenharmony_ci                [CCode (cname="pa_signal_new")]
77353a5a1b3Sopenharmony_ci                public SignalEvent(int sig, MainLoopApi.SignalEventCb cb);
77453a5a1b3Sopenharmony_ci
77553a5a1b3Sopenharmony_ci                public void set_destroy([CCode (delegate_target = false)] MainLoopApi.SignalEventDestroyCb cb);
77653a5a1b3Sopenharmony_ci        }
77753a5a1b3Sopenharmony_ci
77853a5a1b3Sopenharmony_ci        [Compact]
77953a5a1b3Sopenharmony_ci        [CCode (cname="pa_mainloop_api", unref_function="", ref_function="", has_type_id=false)]
78053a5a1b3Sopenharmony_ci        public class MainLoopApi {
78153a5a1b3Sopenharmony_ci                public void* userdata;
78253a5a1b3Sopenharmony_ci
78353a5a1b3Sopenharmony_ci                /* Callbacks for the consumer to implement*/
78453a5a1b3Sopenharmony_ci                [CCode (cname = "pa_io_event_cb_t")]
78553a5a1b3Sopenharmony_ci                public delegate void IoEventCb(MainLoopApi a, IoEvent e, int fd, IoEventFlags flags);
78653a5a1b3Sopenharmony_ci                [CCode (cname = "pa_io_event_destroy_cb_t")]
78753a5a1b3Sopenharmony_ci                public delegate void IoEventDestroyCb(MainLoopApi a, IoEvent e);
78853a5a1b3Sopenharmony_ci
78953a5a1b3Sopenharmony_ci                [CCode (cname = "pa_time_event_cb_t")]
79053a5a1b3Sopenharmony_ci                public delegate void TimeEventCb(MainLoopApi a, TimeEvent e, ref timeval t);
79153a5a1b3Sopenharmony_ci                [CCode (cname = "pa_time_event_destroy_cb_t")]
79253a5a1b3Sopenharmony_ci                public delegate void TimeEventDestroyCb(MainLoopApi a, TimeEvent e);
79353a5a1b3Sopenharmony_ci
79453a5a1b3Sopenharmony_ci                [CCode (cname = "pa_defer_event_cb_t")]
79553a5a1b3Sopenharmony_ci                public delegate void DeferEventCb(MainLoopApi a, DeferEvent e);
79653a5a1b3Sopenharmony_ci                [CCode (cname = "pa_defer_event_destroy_cb_t")]
79753a5a1b3Sopenharmony_ci                public delegate void DeferEventDestroyCb(MainLoopApi a, DeferEvent e);
79853a5a1b3Sopenharmony_ci
79953a5a1b3Sopenharmony_ci                [CCode (cname = "pa_signal_cb_t")]
80053a5a1b3Sopenharmony_ci                public delegate void SignalEventCb(MainLoopApi a, SignalEvent e, int sig);
80153a5a1b3Sopenharmony_ci                [CCode (cname = "pa_signal_destroy_cb_t")]
80253a5a1b3Sopenharmony_ci                public delegate void SignalEventDestroyCb(MainLoopApi a, SignalEvent e);
80353a5a1b3Sopenharmony_ci
80453a5a1b3Sopenharmony_ci                /* Callbacks for the provider to implement */
80553a5a1b3Sopenharmony_ci                [CCode (has_target = false, has_typedef = false)]
80653a5a1b3Sopenharmony_ci                public delegate IoEvent IoNewCb(MainLoopApi a, int fd, IoEventFlags flags, IoEventCb cb);
80753a5a1b3Sopenharmony_ci                [CCode (has_target = false, has_typedef = false)]
80853a5a1b3Sopenharmony_ci                public delegate void IoEnableCb(IoEvent e, IoEventFlags flags);
80953a5a1b3Sopenharmony_ci                [CCode (has_target = false, has_typedef = false)]
81053a5a1b3Sopenharmony_ci                public delegate void IoFreeCb(IoEvent e);
81153a5a1b3Sopenharmony_ci                [CCode (has_target = false, has_typedef = false)]
81253a5a1b3Sopenharmony_ci                public delegate void IoSetDestroyCb(IoEvent e, [CCode (delegate_target = false)] IoEventDestroyCb? cb);
81353a5a1b3Sopenharmony_ci
81453a5a1b3Sopenharmony_ci                [CCode (has_target = false, has_typedef = false)]
81553a5a1b3Sopenharmony_ci                public delegate TimeEvent TimeNewCb(MainLoopApi a, timeval? t, TimeEventCb cb);
81653a5a1b3Sopenharmony_ci                [CCode (has_target = false, has_typedef = false)]
81753a5a1b3Sopenharmony_ci                public delegate void TimeRestartCb(TimeEvent e, timeval? t);
81853a5a1b3Sopenharmony_ci                [CCode (has_target = false, has_typedef = false)]
81953a5a1b3Sopenharmony_ci                public delegate void TimeFreeCb(TimeEvent e);
82053a5a1b3Sopenharmony_ci                [CCode (has_target = false, has_typedef = false)]
82153a5a1b3Sopenharmony_ci                public delegate void TimeSetDestroyCb(TimeEvent e, [CCode (delegate_target = false)] TimeEventDestroyCb? cb);
82253a5a1b3Sopenharmony_ci
82353a5a1b3Sopenharmony_ci                [CCode (has_target = false, has_typedef = false)]
82453a5a1b3Sopenharmony_ci                public delegate DeferEvent DeferNewCb(MainLoopApi a, DeferEventCb cb);
82553a5a1b3Sopenharmony_ci                [CCode (has_target = false, has_typedef = false)]
82653a5a1b3Sopenharmony_ci                public delegate void DeferEnableCb(DeferEvent e, bool b);
82753a5a1b3Sopenharmony_ci                [CCode (has_target = false, has_typedef = false)]
82853a5a1b3Sopenharmony_ci                public delegate void DeferFreeCb(DeferEvent e);
82953a5a1b3Sopenharmony_ci                [CCode (has_target = false, has_typedef = false)]
83053a5a1b3Sopenharmony_ci                public delegate void DeferSetDestroyCb(DeferEvent e, [CCode (delegate_target = false)] DeferEventDestroyCb? cb);
83153a5a1b3Sopenharmony_ci
83253a5a1b3Sopenharmony_ci                [CCode (has_target = false, has_typedef = false)]
83353a5a1b3Sopenharmony_ci                public delegate void QuitCb(MainLoopApi a, int retval);
83453a5a1b3Sopenharmony_ci
83553a5a1b3Sopenharmony_ci                [CCode (has_typedef = false)]
83653a5a1b3Sopenharmony_ci                public delegate void OnceCb(MainLoopApi a);
83753a5a1b3Sopenharmony_ci
83853a5a1b3Sopenharmony_ci                public IoNewCb io_new;
83953a5a1b3Sopenharmony_ci                public IoEnableCb io_enable;
84053a5a1b3Sopenharmony_ci                public IoFreeCb io_free;
84153a5a1b3Sopenharmony_ci                public IoSetDestroyCb io_set_destroy;
84253a5a1b3Sopenharmony_ci
84353a5a1b3Sopenharmony_ci                public TimeNewCb time_new;
84453a5a1b3Sopenharmony_ci                public TimeRestartCb time_restart;
84553a5a1b3Sopenharmony_ci                public TimeFreeCb time_free;
84653a5a1b3Sopenharmony_ci                public TimeSetDestroyCb time_set_destroy;
84753a5a1b3Sopenharmony_ci
84853a5a1b3Sopenharmony_ci                public DeferNewCb defer_new;
84953a5a1b3Sopenharmony_ci                public DeferEnableCb defer_enable;
85053a5a1b3Sopenharmony_ci                public DeferFreeCb defer_free;
85153a5a1b3Sopenharmony_ci                public DeferSetDestroyCb defer_set_destroy;
85253a5a1b3Sopenharmony_ci
85353a5a1b3Sopenharmony_ci                public QuitCb quit;
85453a5a1b3Sopenharmony_ci
85553a5a1b3Sopenharmony_ci                [CCode (cname="pa_mainloop_api_once")]
85653a5a1b3Sopenharmony_ci                public void once(OnceCb cb);
85753a5a1b3Sopenharmony_ci        }
85853a5a1b3Sopenharmony_ci
85953a5a1b3Sopenharmony_ci        [CCode (cname="pa_signal_init")]
86053a5a1b3Sopenharmony_ci        public void signal_init(MainLoopApi api);
86153a5a1b3Sopenharmony_ci
86253a5a1b3Sopenharmony_ci        [CCode (cname="pa_signal_done")]
86353a5a1b3Sopenharmony_ci        public void signal_done();
86453a5a1b3Sopenharmony_ci
86553a5a1b3Sopenharmony_ci        [CCode (cname="pa_poll_func")]
86653a5a1b3Sopenharmony_ci        public delegate int PollFunc(pollfd[] ufds, int timeout);
86753a5a1b3Sopenharmony_ci
86853a5a1b3Sopenharmony_ci        [Compact]
86953a5a1b3Sopenharmony_ci        [CCode (cname="pa_mainloop", cprefix="pa_mainloop_", free_function="pa_mainloop_free", has_type_id=false)]
87053a5a1b3Sopenharmony_ci        public class MainLoop {
87153a5a1b3Sopenharmony_ci
87253a5a1b3Sopenharmony_ci                [CCode (cname="pa_mainloop_new")]
87353a5a1b3Sopenharmony_ci                public MainLoop();
87453a5a1b3Sopenharmony_ci
87553a5a1b3Sopenharmony_ci                public int prepare(int timeout = -1);
87653a5a1b3Sopenharmony_ci                public int poll();
87753a5a1b3Sopenharmony_ci                public int dispatch();
87853a5a1b3Sopenharmony_ci                public int get_retval();
87953a5a1b3Sopenharmony_ci                public int iterate(bool block = true, out int retval = null);
88053a5a1b3Sopenharmony_ci                public int run(out int retval = null);
88153a5a1b3Sopenharmony_ci                public unowned MainLoopApi get_api();
88253a5a1b3Sopenharmony_ci                public void quit(int retval);
88353a5a1b3Sopenharmony_ci                public void wakeup();
88453a5a1b3Sopenharmony_ci                public void set_poll_func(PollFunc poll_func);
88553a5a1b3Sopenharmony_ci        }
88653a5a1b3Sopenharmony_ci
88753a5a1b3Sopenharmony_ci        [Compact]
88853a5a1b3Sopenharmony_ci        [CCode (cname="pa_threaded_mainloop", cprefix="pa_threaded_mainloop_", free_function="pa_threaded_mainloop_free")]
88953a5a1b3Sopenharmony_ci        public class ThreadedMainLoop {
89053a5a1b3Sopenharmony_ci
89153a5a1b3Sopenharmony_ci                [CCode (cname="pa_threaded_mainloop_new")]
89253a5a1b3Sopenharmony_ci                public ThreadedMainLoop();
89353a5a1b3Sopenharmony_ci
89453a5a1b3Sopenharmony_ci                public int start();
89553a5a1b3Sopenharmony_ci                public void stop();
89653a5a1b3Sopenharmony_ci                public void lock();
89753a5a1b3Sopenharmony_ci                public void unlock();
89853a5a1b3Sopenharmony_ci                public void wait();
89953a5a1b3Sopenharmony_ci                public void signal(bool WaitForAccept = false);
90053a5a1b3Sopenharmony_ci                public void accept();
90153a5a1b3Sopenharmony_ci                public int get_retval();
90253a5a1b3Sopenharmony_ci                public unowned MainLoopApi get_api();
90353a5a1b3Sopenharmony_ci                public bool in_thread();
90453a5a1b3Sopenharmony_ci        }
90553a5a1b3Sopenharmony_ci
90653a5a1b3Sopenharmony_ci        [Compact]
90753a5a1b3Sopenharmony_ci        [CCode (cname="pa_operation", cprefix="pa_operation_", unref_function="pa_operation_unref", ref_function="pa_operation_ref", has_type_id=false)]
90853a5a1b3Sopenharmony_ci        public class Operation {
90953a5a1b3Sopenharmony_ci
91053a5a1b3Sopenharmony_ci                [CCode (cname="pa_operation_state_t", cprefix="PA_OPERATION_", has_type_id=false)]
91153a5a1b3Sopenharmony_ci                public enum State {
91253a5a1b3Sopenharmony_ci                        RUNNING,
91353a5a1b3Sopenharmony_ci                        DONE,
91453a5a1b3Sopenharmony_ci                        CANCELED
91553a5a1b3Sopenharmony_ci                }
91653a5a1b3Sopenharmony_ci
91753a5a1b3Sopenharmony_ci                public void cancel();
91853a5a1b3Sopenharmony_ci                public State get_state();
91953a5a1b3Sopenharmony_ci        }
92053a5a1b3Sopenharmony_ci
92153a5a1b3Sopenharmony_ci        [Compact]
92253a5a1b3Sopenharmony_ci        [CCode (cname="pa_context", cprefix="pa_context_", unref_function="pa_context_unref", ref_function="pa_context_ref", has_type_id=false)]
92353a5a1b3Sopenharmony_ci        public class Context {
92453a5a1b3Sopenharmony_ci
92553a5a1b3Sopenharmony_ci                [CCode (cname="pa_context_flags_t", cprefix="PA_CONTEXT_", has_type_id=false)]
92653a5a1b3Sopenharmony_ci                public enum Flags {
92753a5a1b3Sopenharmony_ci                        NOAUTOSPAWN,
92853a5a1b3Sopenharmony_ci                        NOFAIL
92953a5a1b3Sopenharmony_ci                }
93053a5a1b3Sopenharmony_ci
93153a5a1b3Sopenharmony_ci                [CCode (cname="pa_context_state_t", cprefix="PA_CONTEXT_", has_type_id=false)]
93253a5a1b3Sopenharmony_ci                public enum State {
93353a5a1b3Sopenharmony_ci                        UNCONNECTED,
93453a5a1b3Sopenharmony_ci                        CONNECTING,
93553a5a1b3Sopenharmony_ci                        AUTHORIZING,
93653a5a1b3Sopenharmony_ci                        SETTING_NAME,
93753a5a1b3Sopenharmony_ci                        READY,
93853a5a1b3Sopenharmony_ci                        FAILED,
93953a5a1b3Sopenharmony_ci                        TERMINATED;
94053a5a1b3Sopenharmony_ci
94153a5a1b3Sopenharmony_ci                        [CCode (cname="PA_CONTEXT_IS_GOOD", has_type_id=false)]
94253a5a1b3Sopenharmony_ci                        public bool IS_GOOD();
94353a5a1b3Sopenharmony_ci                }
94453a5a1b3Sopenharmony_ci
94553a5a1b3Sopenharmony_ci                [CCode (cname="pa_subscription_mask_t", cprefix="PA_SUBSCRIPTION_MASK_", has_type_id=false)]
94653a5a1b3Sopenharmony_ci                public enum SubscriptionMask {
94753a5a1b3Sopenharmony_ci                        NULL,
94853a5a1b3Sopenharmony_ci                        SINK,
94953a5a1b3Sopenharmony_ci                        SOURCE,
95053a5a1b3Sopenharmony_ci                        SINK_INPUT,
95153a5a1b3Sopenharmony_ci                        SOURCE_OUTPUT,
95253a5a1b3Sopenharmony_ci                        MODULE,
95353a5a1b3Sopenharmony_ci                        CLIENT,
95453a5a1b3Sopenharmony_ci                        SAMPLE_CACHE,
95553a5a1b3Sopenharmony_ci                        SERVER,
95653a5a1b3Sopenharmony_ci                        CARD,
95753a5a1b3Sopenharmony_ci                        ALL;
95853a5a1b3Sopenharmony_ci
95953a5a1b3Sopenharmony_ci                        [CCode (cname="pa_subscription_match_flags")]
96053a5a1b3Sopenharmony_ci                        public bool match_flags(SubscriptionEventType t);
96153a5a1b3Sopenharmony_ci                }
96253a5a1b3Sopenharmony_ci
96353a5a1b3Sopenharmony_ci                [CCode (cname="pa_subscription_event_type_t", cprefix="PA_SUBSCRIPTION_EVENT_", has_type_id=false)]
96453a5a1b3Sopenharmony_ci                public enum SubscriptionEventType {
96553a5a1b3Sopenharmony_ci                        SINK,
96653a5a1b3Sopenharmony_ci                        SOURCE,
96753a5a1b3Sopenharmony_ci                        SINK_INPUT,
96853a5a1b3Sopenharmony_ci                        SOURCE_OUTPUT,
96953a5a1b3Sopenharmony_ci                        MODULE,
97053a5a1b3Sopenharmony_ci                        CLIENT,
97153a5a1b3Sopenharmony_ci                        SAMPLE_CACHE,
97253a5a1b3Sopenharmony_ci                        SERVER,
97353a5a1b3Sopenharmony_ci                        CARD,
97453a5a1b3Sopenharmony_ci                        FACILITY_MASK,
97553a5a1b3Sopenharmony_ci                        NEW,
97653a5a1b3Sopenharmony_ci                        CHANGE,
97753a5a1b3Sopenharmony_ci                        REMOVE,
97853a5a1b3Sopenharmony_ci                        TYPE_MASK
97953a5a1b3Sopenharmony_ci                }
98053a5a1b3Sopenharmony_ci
98153a5a1b3Sopenharmony_ci                [CCode (cname = "pa_context_notify_cb_t")]
98253a5a1b3Sopenharmony_ci                public delegate void NotifyCb(Context c);
98353a5a1b3Sopenharmony_ci                [CCode (cname = "pa_context_success_cb_t")]
98453a5a1b3Sopenharmony_ci                public delegate void SuccessCb(Context c, int success);
98553a5a1b3Sopenharmony_ci                [CCode (cname = "pa_context_event_cb_t")]
98653a5a1b3Sopenharmony_ci                public delegate void EventCb(Context c, string name, Proplist? proplist);
98753a5a1b3Sopenharmony_ci                [CCode (cname = "pa_context_subscribe_cb_t")]
98853a5a1b3Sopenharmony_ci                public delegate void SubscribeCb(Context c, SubscriptionEventType t, uint32 idx);
98953a5a1b3Sopenharmony_ci                [CCode (cname = "pa_sink_info_cb_t")]
99053a5a1b3Sopenharmony_ci                public delegate void SinkInfoCb(Context c, SinkInfo? i, int eol);
99153a5a1b3Sopenharmony_ci                [CCode (cname = "pa_source_info_cb_t")]
99253a5a1b3Sopenharmony_ci                public delegate void SourceInfoCb(Context c, SourceInfo? i, int eol);
99353a5a1b3Sopenharmony_ci                [CCode (cname = "pa_card_info_cb_t")]
99453a5a1b3Sopenharmony_ci                public delegate void CardInfoCb(Context c, CardInfo? i, int eol);
99553a5a1b3Sopenharmony_ci                [CCode (cname = "pa_sink_input_info_cb_t")]
99653a5a1b3Sopenharmony_ci                public delegate void SinkInputInfoCb(Context c, SinkInputInfo? i, int eol);
99753a5a1b3Sopenharmony_ci                [CCode (cname = "pa_source_output_info_cb_t")]
99853a5a1b3Sopenharmony_ci                public delegate void SourceOutputInfoCb(Context c, SourceOutputInfo? i, int eol);
99953a5a1b3Sopenharmony_ci                [CCode (cname = "pa_server_info_cb_t")]
100053a5a1b3Sopenharmony_ci                public delegate void ServerInfoCb(Context c, ServerInfo? i);
100153a5a1b3Sopenharmony_ci                [CCode (cname = "pa_stat_info_cb_t")]
100253a5a1b3Sopenharmony_ci                public delegate void StatInfoCb(Context c, ServerInfo? i);
100353a5a1b3Sopenharmony_ci                [CCode (cname = "pa_module_info_cb_t")]
100453a5a1b3Sopenharmony_ci                public delegate void ModuleInfoCb(Context c, ModuleInfo? i, int eol);
100553a5a1b3Sopenharmony_ci                [CCode (cname = "pa_client_info_cb_t")]
100653a5a1b3Sopenharmony_ci                public delegate void ClientInfoCb(Context c, ClientInfo? i, int eol);
100753a5a1b3Sopenharmony_ci                [CCode (cname = "pa_sample_info_cb_t")]
100853a5a1b3Sopenharmony_ci                public delegate void SampleInfoCb(Context c, SampleInfo? i, int eol);
100953a5a1b3Sopenharmony_ci                [CCode (cname = "pa_context_index_cb_t")]
101053a5a1b3Sopenharmony_ci                public delegate void IndexCb(Context c, uint32 idx);
101153a5a1b3Sopenharmony_ci
101253a5a1b3Sopenharmony_ci                [CCode (cname="pa_context_new_with_proplist")]
101353a5a1b3Sopenharmony_ci                public Context(MainLoopApi api, string? name, Proplist? proplist = null);
101453a5a1b3Sopenharmony_ci
101553a5a1b3Sopenharmony_ci                public void set_state_callback(NotifyCb? cb = null);
101653a5a1b3Sopenharmony_ci                public void set_event_callback(EventCb? cb = null);
101753a5a1b3Sopenharmony_ci                public void set_subscribe_callback(SubscribeCb? cb = null);
101853a5a1b3Sopenharmony_ci
101953a5a1b3Sopenharmony_ci                public Error errno();
102053a5a1b3Sopenharmony_ci
102153a5a1b3Sopenharmony_ci                public int is_pending();
102253a5a1b3Sopenharmony_ci                public State get_state();
102353a5a1b3Sopenharmony_ci                public int is_local();
102453a5a1b3Sopenharmony_ci                public unowned string? get_server();
102553a5a1b3Sopenharmony_ci                public uint32 get_protocol_version();
102653a5a1b3Sopenharmony_ci                public uint32 get_server_protocol_version();
102753a5a1b3Sopenharmony_ci                public uint32 get_index();
102853a5a1b3Sopenharmony_ci
102953a5a1b3Sopenharmony_ci                public int connect(string? server = null, Flags flags = 0, SpawnApi? api = null);
103053a5a1b3Sopenharmony_ci                public void disconnect();
103153a5a1b3Sopenharmony_ci
103253a5a1b3Sopenharmony_ci                public Operation? drain(NotifyCb? cb = null);
103353a5a1b3Sopenharmony_ci                public Operation? exit_daemon(SuccessCb? cb = null);
103453a5a1b3Sopenharmony_ci                public Operation? set_default_sink(string name, SuccessCb? cb = null);
103553a5a1b3Sopenharmony_ci                public Operation? set_default_source(string name, SuccessCb? cb = null);
103653a5a1b3Sopenharmony_ci                public Operation? set_name(string name, SuccessCb? cb = null);
103753a5a1b3Sopenharmony_ci
103853a5a1b3Sopenharmony_ci                public Operation? proplist_remove([CCode (array_length = false)] string[] keys, SuccessCb? cb = null);
103953a5a1b3Sopenharmony_ci                public Operation? proplist_update(UpdateMode mode, Proplist pl, SuccessCb? cb = null);
104053a5a1b3Sopenharmony_ci
104153a5a1b3Sopenharmony_ci                public Operation? subscribe(SubscriptionMask mask, SuccessCb? cb = null);
104253a5a1b3Sopenharmony_ci
104353a5a1b3Sopenharmony_ci                public Operation? get_sink_info_by_name(string name, SinkInfoCb cb);
104453a5a1b3Sopenharmony_ci                public Operation? get_sink_info_by_index(uint32 idx, SinkInfoCb cb);
104553a5a1b3Sopenharmony_ci                public Operation? get_sink_info_list(SinkInfoCb cb);
104653a5a1b3Sopenharmony_ci
104753a5a1b3Sopenharmony_ci                public Operation? set_sink_volume_by_name(string name, CVolume volume, SuccessCb? cb = null);
104853a5a1b3Sopenharmony_ci                public Operation? set_sink_volume_by_index(uint32 idx, CVolume volume, SuccessCb? cb = null);
104953a5a1b3Sopenharmony_ci                public Operation? set_sink_mute_by_name(string name, bool mute, SuccessCb? cb = null);
105053a5a1b3Sopenharmony_ci                public Operation? set_sink_mute_by_index(uint32 idx, bool mute, SuccessCb? cb = null);
105153a5a1b3Sopenharmony_ci
105253a5a1b3Sopenharmony_ci                public Operation? suspend_sink_by_name(string name, bool suspend, SuccessCb? cb = null);
105353a5a1b3Sopenharmony_ci                public Operation? suspend_sink_by_index(uint32 idx, bool suspend, SuccessCb? cb = null);
105453a5a1b3Sopenharmony_ci
105553a5a1b3Sopenharmony_ci                public Operation? set_sink_port_by_name(string name, string port, SuccessCb? cb = null);
105653a5a1b3Sopenharmony_ci                public Operation? set_sink_port_by_index(uint32 idx, string port, SuccessCb? cb = null);
105753a5a1b3Sopenharmony_ci
105853a5a1b3Sopenharmony_ci                public Operation? get_source_info_by_name(string name, SourceInfoCb cb);
105953a5a1b3Sopenharmony_ci                public Operation? get_source_info_by_index(uint32 idx, SourceInfoCb cb);
106053a5a1b3Sopenharmony_ci                public Operation? get_source_info_list(SourceInfoCb cb);
106153a5a1b3Sopenharmony_ci
106253a5a1b3Sopenharmony_ci                public Operation? set_source_volume_by_name(string name, CVolume volume, SuccessCb? cb = null);
106353a5a1b3Sopenharmony_ci                public Operation? set_source_volume_by_index(uint32 idx, CVolume volume, SuccessCb? cb = null);
106453a5a1b3Sopenharmony_ci                public Operation? set_source_mute_by_name(string name, bool mute, SuccessCb? cb = null);
106553a5a1b3Sopenharmony_ci                public Operation? set_source_mute_by_index(uint32 idx, bool mute, SuccessCb? cb = null);
106653a5a1b3Sopenharmony_ci
106753a5a1b3Sopenharmony_ci                public Operation? suspend_source_by_name(string name, bool suspend, SuccessCb? cb = null);
106853a5a1b3Sopenharmony_ci                public Operation? suspend_source_by_index(uint32 idx, bool suspend, SuccessCb? cb = null);
106953a5a1b3Sopenharmony_ci
107053a5a1b3Sopenharmony_ci                public Operation? set_source_port_by_name(string name, string port, SuccessCb? cb = null);
107153a5a1b3Sopenharmony_ci                public Operation? set_source_port_by_index(uint32 idx, string port, SuccessCb? cb = null);
107253a5a1b3Sopenharmony_ci
107353a5a1b3Sopenharmony_ci                public Operation? get_server_info(ServerInfoCb cb);
107453a5a1b3Sopenharmony_ci
107553a5a1b3Sopenharmony_ci                public Operation? get_module_info(uint32 idx, ModuleInfoCb cb);
107653a5a1b3Sopenharmony_ci                public Operation? get_module_info_list(ModuleInfoCb cb);
107753a5a1b3Sopenharmony_ci
107853a5a1b3Sopenharmony_ci                public Operation? load_module(string name, string? argument, IndexCb? cb = null);
107953a5a1b3Sopenharmony_ci                public Operation? unload_module(uint32 idx, SuccessCb? cb = null);
108053a5a1b3Sopenharmony_ci
108153a5a1b3Sopenharmony_ci                public Operation? get_client_info(uint32 idx, ClientInfoCb cb);
108253a5a1b3Sopenharmony_ci                public Operation? get_client_info_list(ClientInfoCb cb);
108353a5a1b3Sopenharmony_ci
108453a5a1b3Sopenharmony_ci                public Operation? kill_client(uint32 idx, SuccessCb? cb = null);
108553a5a1b3Sopenharmony_ci
108653a5a1b3Sopenharmony_ci                public Operation? get_card_info_by_name(string name, CardInfoCb cb);
108753a5a1b3Sopenharmony_ci                public Operation? get_card_info_by_index(uint32 idx, CardInfoCb cb);
108853a5a1b3Sopenharmony_ci                public Operation? get_card_info_list(CardInfoCb cb);
108953a5a1b3Sopenharmony_ci
109053a5a1b3Sopenharmony_ci                public Operation? set_card_profile_by_index(uint32 idx, string profile, SuccessCb? cb = null);
109153a5a1b3Sopenharmony_ci                public Operation? set_card_profile_by_name(string name, string profile, SuccessCb? cb = null);
109253a5a1b3Sopenharmony_ci
109353a5a1b3Sopenharmony_ci                public Operation? get_sink_input_info(uint32 idx, SinkInputInfoCb cb);
109453a5a1b3Sopenharmony_ci                public Operation? get_sink_input_info_list(SinkInputInfoCb cb);
109553a5a1b3Sopenharmony_ci
109653a5a1b3Sopenharmony_ci                public Operation? move_sink_input_by_index(uint32 idx, uint32 sink_idx, SuccessCb? cb = null);
109753a5a1b3Sopenharmony_ci                public Operation? move_sink_input_by_name(uint32 idx, string sink_name, SuccessCb? cb = null);
109853a5a1b3Sopenharmony_ci
109953a5a1b3Sopenharmony_ci                public Operation? set_sink_input_volume(uint32 idx, CVolume volume, SuccessCb? cb = null);
110053a5a1b3Sopenharmony_ci                public Operation? set_sink_input_mute(uint32 idx, bool mute, SuccessCb? cb = null);
110153a5a1b3Sopenharmony_ci
110253a5a1b3Sopenharmony_ci                public Operation? set_source_output_volume(uint32 idx, CVolume volume, SuccessCb? cb = null);
110353a5a1b3Sopenharmony_ci                public Operation? set_source_output_mute(uint32 idx, bool mute, SuccessCb? cb = null);
110453a5a1b3Sopenharmony_ci
110553a5a1b3Sopenharmony_ci                public Operation? kill_sink_input(uint32 idx, SuccessCb? cb = null);
110653a5a1b3Sopenharmony_ci
110753a5a1b3Sopenharmony_ci                public Operation? get_source_output_info(uint32 idx, SourceOutputInfoCb cb);
110853a5a1b3Sopenharmony_ci                public Operation? get_source_output_info_list(SourceOutputInfoCb cb);
110953a5a1b3Sopenharmony_ci
111053a5a1b3Sopenharmony_ci                public Operation? move_source_output_by_index(uint32 idx, uint32 source_idx, SuccessCb? cb = null);
111153a5a1b3Sopenharmony_ci                public Operation? move_source_output_by_name(uint32 idx, string source_name, SuccessCb? cb = null);
111253a5a1b3Sopenharmony_ci
111353a5a1b3Sopenharmony_ci                public Operation? kill_source_output(uint32 idx, SuccessCb? cb = null);
111453a5a1b3Sopenharmony_ci
111553a5a1b3Sopenharmony_ci                public Operation? stat(StatInfoCb cb);
111653a5a1b3Sopenharmony_ci
111753a5a1b3Sopenharmony_ci                public Operation? get_sample_info_by_name(string name, SampleInfoCb cb);
111853a5a1b3Sopenharmony_ci                public Operation? get_sample_info_by_index(uint32 idx, SampleInfoCb cb);
111953a5a1b3Sopenharmony_ci                public Operation? get_sample_info_list(SampleInfoCb cb);
112053a5a1b3Sopenharmony_ci
112153a5a1b3Sopenharmony_ci                public Operation? remove_sample(string name, SuccessCb? cb = null);
112253a5a1b3Sopenharmony_ci
112353a5a1b3Sopenharmony_ci                public Operation? play_sample(string name, string? device = null, Volume volume = Volume.INVALID, SuccessCb? cb = null);
112453a5a1b3Sopenharmony_ci                public Operation? play_sample_with_proplist(string name, string? device = null, Volume volume = Volume.INVALID, Proplist? p = null, IndexCb? cb = null);
112553a5a1b3Sopenharmony_ci        }
112653a5a1b3Sopenharmony_ci
112753a5a1b3Sopenharmony_ci        [Compact]
112853a5a1b3Sopenharmony_ci        [CCode (cname="pa_stream", cprefix="pa_stream_", unref_function="pa_stream_unref", ref_function="pa_stream_ref", has_type_id=false)]
112953a5a1b3Sopenharmony_ci        public class Stream {
113053a5a1b3Sopenharmony_ci
113153a5a1b3Sopenharmony_ci                [CCode (cname="pa_stream_flags_t", cprefix="PA_STREAM_", has_type_id=false)]
113253a5a1b3Sopenharmony_ci                public enum Flags {
113353a5a1b3Sopenharmony_ci                        START_CORKED,
113453a5a1b3Sopenharmony_ci                        INTERPOLATE_TIMING,
113553a5a1b3Sopenharmony_ci                        NOT_MONOTONIC,
113653a5a1b3Sopenharmony_ci                        AUTO_TIMING_UPDATE,
113753a5a1b3Sopenharmony_ci                        NO_REMAP_CHANNELS,
113853a5a1b3Sopenharmony_ci                        NO_REMIX_CHANNELS,
113953a5a1b3Sopenharmony_ci                        FIX_FORMAT,
114053a5a1b3Sopenharmony_ci                        FIX_RATE,
114153a5a1b3Sopenharmony_ci                        FIX_CHANNELS,
114253a5a1b3Sopenharmony_ci                        DONT_MOVE,
114353a5a1b3Sopenharmony_ci                        VARIABLE_RATE,
114453a5a1b3Sopenharmony_ci                        PEAK_DETECT,
114553a5a1b3Sopenharmony_ci                        START_MUTED,
114653a5a1b3Sopenharmony_ci                        ADJUST_LATENCY,
114753a5a1b3Sopenharmony_ci                        EARLY_REQUESTS,
114853a5a1b3Sopenharmony_ci                        DONT_INHIBIT_AUTO_SUSPEND,
114953a5a1b3Sopenharmony_ci                        START_UNMUTED,
115053a5a1b3Sopenharmony_ci                        FAIL_ON_SUSPEND
115153a5a1b3Sopenharmony_ci                }
115253a5a1b3Sopenharmony_ci
115353a5a1b3Sopenharmony_ci                [CCode (cname="pa_stream_state_t", cprefix="PA_STREAM_", has_type_id=false)]
115453a5a1b3Sopenharmony_ci                public enum State {
115553a5a1b3Sopenharmony_ci                        UNCONNECTED,
115653a5a1b3Sopenharmony_ci                        CREATING,
115753a5a1b3Sopenharmony_ci                        READY,
115853a5a1b3Sopenharmony_ci                        FAILED,
115953a5a1b3Sopenharmony_ci                        TERMINATED;
116053a5a1b3Sopenharmony_ci
116153a5a1b3Sopenharmony_ci                        [CCode (cname="PA_STREAM_IS_GOOD")]
116253a5a1b3Sopenharmony_ci                        public bool IS_GOOD();
116353a5a1b3Sopenharmony_ci                }
116453a5a1b3Sopenharmony_ci
116553a5a1b3Sopenharmony_ci                [CCode (cname="pa_stream_direction_t", cprefix="PA_STREAM_", has_type_id=false)]
116653a5a1b3Sopenharmony_ci                public enum Direction {
116753a5a1b3Sopenharmony_ci                        NODIRECTION,
116853a5a1b3Sopenharmony_ci                        PLAYBACK,
116953a5a1b3Sopenharmony_ci                        RECORD,
117053a5a1b3Sopenharmony_ci                        UPLOAD
117153a5a1b3Sopenharmony_ci                }
117253a5a1b3Sopenharmony_ci
117353a5a1b3Sopenharmony_ci                [CCode (cname="pa_seek_mode_t", cprefix="PA_SEEK_", has_type_id=false)]
117453a5a1b3Sopenharmony_ci                public enum SeekMode {
117553a5a1b3Sopenharmony_ci                        RELATIVE,
117653a5a1b3Sopenharmony_ci                        ABSOLUTE,
117753a5a1b3Sopenharmony_ci                        RELATIVE_ON_READ,
117853a5a1b3Sopenharmony_ci                        RELATIVE_END
117953a5a1b3Sopenharmony_ci                }
118053a5a1b3Sopenharmony_ci
118153a5a1b3Sopenharmony_ci                [CCode (cname="pa_buffer_attr", has_type_id=false)]
118253a5a1b3Sopenharmony_ci                public struct BufferAttr {
118353a5a1b3Sopenharmony_ci                        uint32 maxlength;
118453a5a1b3Sopenharmony_ci                        uint32 tlength;
118553a5a1b3Sopenharmony_ci                        uint32 prebuf;
118653a5a1b3Sopenharmony_ci                        uint32 minreq;
118753a5a1b3Sopenharmony_ci                        uint32 fragsize;
118853a5a1b3Sopenharmony_ci                }
118953a5a1b3Sopenharmony_ci
119053a5a1b3Sopenharmony_ci                [CCode (cname="pa_timing_info", has_type_id=false)]
119153a5a1b3Sopenharmony_ci                public struct TimingInfo {
119253a5a1b3Sopenharmony_ci                        timeval timestamp;
119353a5a1b3Sopenharmony_ci                        int synchronized_clocks;
119453a5a1b3Sopenharmony_ci                        usec sink_usec;
119553a5a1b3Sopenharmony_ci                        usec source_usec;
119653a5a1b3Sopenharmony_ci                        usec transport_usec;
119753a5a1b3Sopenharmony_ci                        int playing;
119853a5a1b3Sopenharmony_ci                        int write_index_corrupt;
119953a5a1b3Sopenharmony_ci                        int64 write_index;
120053a5a1b3Sopenharmony_ci                        int read_index_corrupt;
120153a5a1b3Sopenharmony_ci                        int64 read_index;
120253a5a1b3Sopenharmony_ci                        usec configured_sink_usec;
120353a5a1b3Sopenharmony_ci                        usec configured_source_usec;
120453a5a1b3Sopenharmony_ci                        int64 since_underrun;
120553a5a1b3Sopenharmony_ci                }
120653a5a1b3Sopenharmony_ci
120753a5a1b3Sopenharmony_ci                [CCode (cname="PA_STREAM_EVENT_REQUEST_CORK")]
120853a5a1b3Sopenharmony_ci                public const string EVENT_REQUEST_CORK;
120953a5a1b3Sopenharmony_ci
121053a5a1b3Sopenharmony_ci                [CCode (cname="PA_STREAM_EVENT_REQUEST_UNCORK")]
121153a5a1b3Sopenharmony_ci                public const string EVENT_REQUEST_UNCORK;
121253a5a1b3Sopenharmony_ci
121353a5a1b3Sopenharmony_ci                [CCode (cname = "pa_stream_success_cb_t")]
121453a5a1b3Sopenharmony_ci                public delegate void SuccessCb(Stream s, int success);
121553a5a1b3Sopenharmony_ci                [CCode (cname = "pa_stream_request_cb_t")]
121653a5a1b3Sopenharmony_ci                public delegate void RequestCb(Stream s, size_t nbytes);
121753a5a1b3Sopenharmony_ci                [CCode (cname = "pa_stream_notify_cb_t")]
121853a5a1b3Sopenharmony_ci                public delegate void NotifyCb(Stream s);
121953a5a1b3Sopenharmony_ci                [CCode (cname = "pa_stream_event_cb_t")]
122053a5a1b3Sopenharmony_ci                public delegate void EventCb(Stream s, string name, Proplist proplist);
122153a5a1b3Sopenharmony_ci
122253a5a1b3Sopenharmony_ci                [CCode (cname="pa_stream_new_with_proplist")]
122353a5a1b3Sopenharmony_ci                public Stream(Context c, string name, SampleSpec ss, ChannelMap? map = null, Proplist? proplist = null);
122453a5a1b3Sopenharmony_ci
122553a5a1b3Sopenharmony_ci                public State get_state();
122653a5a1b3Sopenharmony_ci                public Context get_context();
122753a5a1b3Sopenharmony_ci                public uint32 get_index();
122853a5a1b3Sopenharmony_ci                public uint32 get_device_index();
122953a5a1b3Sopenharmony_ci                public unowned string? get_device_name();
123053a5a1b3Sopenharmony_ci                public int is_suspended();
123153a5a1b3Sopenharmony_ci                public int is_corked();
123253a5a1b3Sopenharmony_ci
123353a5a1b3Sopenharmony_ci                public int connect_playback(string? dev = null, BufferAttr? a = null, Flags flags = 0, CVolume? volume = null, Stream? sync_stream = null);
123453a5a1b3Sopenharmony_ci                public int connect_record(string? dev = null, BufferAttr? a = null, Flags flags = 0);
123553a5a1b3Sopenharmony_ci                public int connect_upload(size_t length);
123653a5a1b3Sopenharmony_ci                public int disconnect();
123753a5a1b3Sopenharmony_ci                public int finish_upload();
123853a5a1b3Sopenharmony_ci
123953a5a1b3Sopenharmony_ci                public int begin_write(out void* data, out size_t nbytes);
124053a5a1b3Sopenharmony_ci                public int cancel_write();
124153a5a1b3Sopenharmony_ci                public int write(void *data, size_t bytes, FreeCb? free_cb = null, int64 offset = 0, SeekMode mode = SeekMode.RELATIVE);
124253a5a1b3Sopenharmony_ci                public int peek(out void *data, out size_t nbytes);
124353a5a1b3Sopenharmony_ci                public int drop();
124453a5a1b3Sopenharmony_ci                public size_t writable_size();
124553a5a1b3Sopenharmony_ci                public size_t readable_size();
124653a5a1b3Sopenharmony_ci
124753a5a1b3Sopenharmony_ci                public void set_state_callback(NotifyCb? cb = null);
124853a5a1b3Sopenharmony_ci                public void set_write_callback(RequestCb? cb = null);
124953a5a1b3Sopenharmony_ci                public void set_read_callback(RequestCb? cb = null);
125053a5a1b3Sopenharmony_ci                public void set_overflow_callback(NotifyCb? cb = null);
125153a5a1b3Sopenharmony_ci                public void set_underflow_callback(NotifyCb? cb = null);
125253a5a1b3Sopenharmony_ci                public void set_started_callback(NotifyCb? cb = null);
125353a5a1b3Sopenharmony_ci                public void set_latency_update_callback(NotifyCb? cb = null);
125453a5a1b3Sopenharmony_ci                public void set_moved_callback(NotifyCb? cb = null);
125553a5a1b3Sopenharmony_ci                public void set_suspended_callback(NotifyCb? cb = null);
125653a5a1b3Sopenharmony_ci                public void set_event_callback(EventCb? cb = null);
125753a5a1b3Sopenharmony_ci                public void set_buffer_attr_callback(NotifyCb? cb = null);
125853a5a1b3Sopenharmony_ci
125953a5a1b3Sopenharmony_ci                public Operation? drain(SuccessCb? cb = null);
126053a5a1b3Sopenharmony_ci                public Operation? update_timing_info(SuccessCb? cb = null);
126153a5a1b3Sopenharmony_ci
126253a5a1b3Sopenharmony_ci                public Operation? cork(bool b, SuccessCb? cb = null);
126353a5a1b3Sopenharmony_ci                public Operation? flush(SuccessCb? cb = null);
126453a5a1b3Sopenharmony_ci                public Operation? prebuf(SuccessCb? cb = null);
126553a5a1b3Sopenharmony_ci                public Operation? trigger(SuccessCb? cb = null);
126653a5a1b3Sopenharmony_ci
126753a5a1b3Sopenharmony_ci                public Operation? set_name(string name, SuccessCb? cb = null);
126853a5a1b3Sopenharmony_ci                public Operation? set_buffer_attr(BufferAttr attr, SuccessCb? cb = null);
126953a5a1b3Sopenharmony_ci                public Operation? update_sample_rate(uint32 rate, SuccessCb? cb = null);
127053a5a1b3Sopenharmony_ci
127153a5a1b3Sopenharmony_ci                public Operation? proplist_remove([CCode (array_length = false)] string[] keys, SuccessCb? cb = null);
127253a5a1b3Sopenharmony_ci                public Operation? proplist_update(UpdateMode mode, Proplist pl, SuccessCb? cb = null);
127353a5a1b3Sopenharmony_ci
127453a5a1b3Sopenharmony_ci                public unowned TimingInfo? get_timing_info();
127553a5a1b3Sopenharmony_ci                public int get_time(out usec u);
127653a5a1b3Sopenharmony_ci                public int get_latency(out usec u, out bool negative = null);
127753a5a1b3Sopenharmony_ci
127853a5a1b3Sopenharmony_ci                public unowned SampleSpec? get_sample_spec();
127953a5a1b3Sopenharmony_ci                public unowned ChannelMap? get_channel_map();
128053a5a1b3Sopenharmony_ci                public unowned BufferAttr? get_buffer_attr();
128153a5a1b3Sopenharmony_ci
128253a5a1b3Sopenharmony_ci                public int set_monitor_stream(uint32 sink_input);
128353a5a1b3Sopenharmony_ci                public uint32 get_monitor_stream();
128453a5a1b3Sopenharmony_ci        }
128553a5a1b3Sopenharmony_ci        
128653a5a1b3Sopenharmony_ci        [CCode (cname="pa_direction_t", cprefix="PA_DIRECTION_", has_type_id=false)]
128753a5a1b3Sopenharmony_ci        [Flags]
128853a5a1b3Sopenharmony_ci        public enum Direction {
128953a5a1b3Sopenharmony_ci                OUTPUT = 0x0001U,
129053a5a1b3Sopenharmony_ci                INPUT = 0x0002U
129153a5a1b3Sopenharmony_ci        }
129253a5a1b3Sopenharmony_ci
129353a5a1b3Sopenharmony_ci        [CCode (cname="pa_port_available_t", cprefix="PA_PORT_AVAILABLE_", has_type_id=false)]
129453a5a1b3Sopenharmony_ci        public enum PortAvailable {
129553a5a1b3Sopenharmony_ci                UNKNOWN = 0,
129653a5a1b3Sopenharmony_ci                NO = 1,
129753a5a1b3Sopenharmony_ci                YES = 2
129853a5a1b3Sopenharmony_ci        }
129953a5a1b3Sopenharmony_ci
130053a5a1b3Sopenharmony_ci        [CCode (cname="pa_sink_port_info", has_type_id=false)]
130153a5a1b3Sopenharmony_ci        public struct SinkPortInfo {
130253a5a1b3Sopenharmony_ci                public string name;
130353a5a1b3Sopenharmony_ci                public string description;
130453a5a1b3Sopenharmony_ci                public uint32 priority;
130553a5a1b3Sopenharmony_ci        }
130653a5a1b3Sopenharmony_ci
130753a5a1b3Sopenharmony_ci        [CCode (cname="pa_sink_info", has_type_id=false)]
130853a5a1b3Sopenharmony_ci        public struct SinkInfo {
130953a5a1b3Sopenharmony_ci                public unowned string name;
131053a5a1b3Sopenharmony_ci                public uint32 index;
131153a5a1b3Sopenharmony_ci                public unowned string description;
131253a5a1b3Sopenharmony_ci                public SampleSpec sample_spec;
131353a5a1b3Sopenharmony_ci                public ChannelMap channel_map;
131453a5a1b3Sopenharmony_ci                public uint32 owner_module;
131553a5a1b3Sopenharmony_ci                public CVolume volume;
131653a5a1b3Sopenharmony_ci                public int mute;
131753a5a1b3Sopenharmony_ci                public uint32 monitor_source;
131853a5a1b3Sopenharmony_ci                public unowned string monitor_source_name;
131953a5a1b3Sopenharmony_ci                public usec latency;
132053a5a1b3Sopenharmony_ci                public unowned string driver;
132153a5a1b3Sopenharmony_ci                public SinkFlags flags;
132253a5a1b3Sopenharmony_ci                public Proplist proplist;
132353a5a1b3Sopenharmony_ci                public usec configured_latency;
132453a5a1b3Sopenharmony_ci                public Volume base_volume;
132553a5a1b3Sopenharmony_ci                public SinkState state;
132653a5a1b3Sopenharmony_ci                public uint32 n_volume_steps;
132753a5a1b3Sopenharmony_ci                public uint32 card;
132853a5a1b3Sopenharmony_ci                public uint32 n_ports;
132953a5a1b3Sopenharmony_ci                [CCode (array_length_cname="n_ports")]
133053a5a1b3Sopenharmony_ci                public SinkPortInfo*[] ports;
133153a5a1b3Sopenharmony_ci                public SinkPortInfo* active_port;
133253a5a1b3Sopenharmony_ci        }
133353a5a1b3Sopenharmony_ci
133453a5a1b3Sopenharmony_ci        [CCode (cname="pa_source_port_info", has_type_id=false)]
133553a5a1b3Sopenharmony_ci        public struct SourcePortInfo {
133653a5a1b3Sopenharmony_ci                public unowned string name;
133753a5a1b3Sopenharmony_ci                public unowned string description;
133853a5a1b3Sopenharmony_ci                public uint32 priority;
133953a5a1b3Sopenharmony_ci        }
134053a5a1b3Sopenharmony_ci
134153a5a1b3Sopenharmony_ci        [CCode (cname="pa_source_info", has_type_id=false)]
134253a5a1b3Sopenharmony_ci        public struct SourceInfo {
134353a5a1b3Sopenharmony_ci                public unowned string name;
134453a5a1b3Sopenharmony_ci                public uint32 index;
134553a5a1b3Sopenharmony_ci                public unowned string description;
134653a5a1b3Sopenharmony_ci                public SampleSpec sample_spec;
134753a5a1b3Sopenharmony_ci                public ChannelMap channel_map;
134853a5a1b3Sopenharmony_ci                public uint32 owner_module;
134953a5a1b3Sopenharmony_ci                public CVolume volume;
135053a5a1b3Sopenharmony_ci                public int mute;
135153a5a1b3Sopenharmony_ci                public uint32 monitor_of_sink;
135253a5a1b3Sopenharmony_ci                public unowned string monitor_of_sink_name;
135353a5a1b3Sopenharmony_ci                public usec latency;
135453a5a1b3Sopenharmony_ci                public unowned string driver;
135553a5a1b3Sopenharmony_ci                public SourceFlags flags;
135653a5a1b3Sopenharmony_ci                public Proplist proplist;
135753a5a1b3Sopenharmony_ci                public usec configured_latency;
135853a5a1b3Sopenharmony_ci                public Volume base_volume;
135953a5a1b3Sopenharmony_ci                public SourceState state;
136053a5a1b3Sopenharmony_ci                public uint32 n_volume_steps;
136153a5a1b3Sopenharmony_ci                public uint32 card;
136253a5a1b3Sopenharmony_ci                public uint32 n_ports;
136353a5a1b3Sopenharmony_ci                [CCode (array_length_cname="n_ports")]
136453a5a1b3Sopenharmony_ci                public SourcePortInfo*[] ports;
136553a5a1b3Sopenharmony_ci                public SourcePortInfo* active_port;
136653a5a1b3Sopenharmony_ci        }
136753a5a1b3Sopenharmony_ci
136853a5a1b3Sopenharmony_ci        [CCode (cname="pa_server_info", has_type_id=false)]
136953a5a1b3Sopenharmony_ci        public struct ServerInfo {
137053a5a1b3Sopenharmony_ci                public unowned string user_name;
137153a5a1b3Sopenharmony_ci                public unowned string host_name;
137253a5a1b3Sopenharmony_ci                public unowned string server_version;
137353a5a1b3Sopenharmony_ci                public unowned string server_name;
137453a5a1b3Sopenharmony_ci                public SampleSpec sample_spec;
137553a5a1b3Sopenharmony_ci                public unowned string default_sink_name;
137653a5a1b3Sopenharmony_ci                public unowned string default_source_name;
137753a5a1b3Sopenharmony_ci                public uint32 cookie;
137853a5a1b3Sopenharmony_ci                public ChannelMap channel_map;
137953a5a1b3Sopenharmony_ci        }
138053a5a1b3Sopenharmony_ci
138153a5a1b3Sopenharmony_ci        [CCode (cname="pa_module_info", has_type_id=false)]
138253a5a1b3Sopenharmony_ci        public struct ModuleInfo {
138353a5a1b3Sopenharmony_ci                public uint32 index;
138453a5a1b3Sopenharmony_ci                public unowned string name;
138553a5a1b3Sopenharmony_ci                public unowned string argument;
138653a5a1b3Sopenharmony_ci                public uint32 n_used;
138753a5a1b3Sopenharmony_ci                public Proplist proplist;
138853a5a1b3Sopenharmony_ci        }
138953a5a1b3Sopenharmony_ci
139053a5a1b3Sopenharmony_ci        [CCode (cname="pa_client_info", has_type_id=false)]
139153a5a1b3Sopenharmony_ci        public struct ClientInfo {
139253a5a1b3Sopenharmony_ci                public uint32 index;
139353a5a1b3Sopenharmony_ci                public unowned string name;
139453a5a1b3Sopenharmony_ci                public uint32 owner_module;
139553a5a1b3Sopenharmony_ci                public unowned string driver;
139653a5a1b3Sopenharmony_ci                public Proplist proplist;
139753a5a1b3Sopenharmony_ci        }
139853a5a1b3Sopenharmony_ci
139953a5a1b3Sopenharmony_ci        [CCode (cname="pa_card_profile_info", has_type_id=false)]
140053a5a1b3Sopenharmony_ci        public struct CardProfileInfo {
140153a5a1b3Sopenharmony_ci                public unowned string name;
140253a5a1b3Sopenharmony_ci                public unowned string description;
140353a5a1b3Sopenharmony_ci                public uint32 n_sinks;
140453a5a1b3Sopenharmony_ci                public uint32 n_sources;
140553a5a1b3Sopenharmony_ci                public uint32 priority;
140653a5a1b3Sopenharmony_ci        }
140753a5a1b3Sopenharmony_ci        
140853a5a1b3Sopenharmony_ci        [CCode (cname="pa_card_profile_info2", has_type_id=false)]
140953a5a1b3Sopenharmony_ci        public struct CardProfileInfo2 {
141053a5a1b3Sopenharmony_ci                public unowned string name;
141153a5a1b3Sopenharmony_ci                public unowned string description;
141253a5a1b3Sopenharmony_ci                public uint32 n_sinks;
141353a5a1b3Sopenharmony_ci                public uint32 n_sources;
141453a5a1b3Sopenharmony_ci                public uint32 priority;
141553a5a1b3Sopenharmony_ci                int available;
141653a5a1b3Sopenharmony_ci        }
141753a5a1b3Sopenharmony_ci        
141853a5a1b3Sopenharmony_ci        [CCode (cname="pa_card_port_info", has_type_id=false)]
141953a5a1b3Sopenharmony_ci        public struct CardPortInfo {
142053a5a1b3Sopenharmony_ci                public unowned string name;
142153a5a1b3Sopenharmony_ci                public unowned string description;
142253a5a1b3Sopenharmony_ci                public uint32 priority;
142353a5a1b3Sopenharmony_ci                PortAvailable available;
142453a5a1b3Sopenharmony_ci                Direction direction;
142553a5a1b3Sopenharmony_ci                public uint32 n_profiles;
142653a5a1b3Sopenharmony_ci                [CCode (array_length_cname="n_profiles")]
142753a5a1b3Sopenharmony_ci                public CardProfileInfo*[] profiles;
142853a5a1b3Sopenharmony_ci                public Proplist proplist;
142953a5a1b3Sopenharmony_ci                public int64 latency_offset;
143053a5a1b3Sopenharmony_ci                [CCode (array_length_cname="n_profiles")]
143153a5a1b3Sopenharmony_ci                public CardProfileInfo2*[] profiles2;
143253a5a1b3Sopenharmony_ci        }
143353a5a1b3Sopenharmony_ci
143453a5a1b3Sopenharmony_ci        [CCode (cname="pa_card_info", has_type_id=false)]
143553a5a1b3Sopenharmony_ci        public struct CardInfo {
143653a5a1b3Sopenharmony_ci                public uint32 index;
143753a5a1b3Sopenharmony_ci                public unowned string name;
143853a5a1b3Sopenharmony_ci                public uint32 owner_module;
143953a5a1b3Sopenharmony_ci                public unowned string driver;
144053a5a1b3Sopenharmony_ci                public uint32 n_profiles;
144153a5a1b3Sopenharmony_ci                [CCode (array_length_cname="n_profiles")]
144253a5a1b3Sopenharmony_ci                public CardProfileInfo[] profiles;
144353a5a1b3Sopenharmony_ci                public CardProfileInfo *active_profile;
144453a5a1b3Sopenharmony_ci                [CCode (array_length_cname="n_profiles")]
144553a5a1b3Sopenharmony_ci                public CardProfileInfo2*[] profiles2;
144653a5a1b3Sopenharmony_ci                public CardProfileInfo2 *active_profile2;
144753a5a1b3Sopenharmony_ci                public Proplist proplist;
144853a5a1b3Sopenharmony_ci                public uint32 n_ports;
144953a5a1b3Sopenharmony_ci                [CCode (array_length_cname="n_ports")]
145053a5a1b3Sopenharmony_ci                public CardPortInfo*[] ports;
145153a5a1b3Sopenharmony_ci        }
145253a5a1b3Sopenharmony_ci
145353a5a1b3Sopenharmony_ci        [CCode (cname="pa_sink_input_info", has_type_id=false)]
145453a5a1b3Sopenharmony_ci        public struct SinkInputInfo {
145553a5a1b3Sopenharmony_ci                public uint32 index;
145653a5a1b3Sopenharmony_ci                public unowned string name;
145753a5a1b3Sopenharmony_ci                public uint32 owner_module;
145853a5a1b3Sopenharmony_ci                public uint32 client;
145953a5a1b3Sopenharmony_ci                public uint32 sink;
146053a5a1b3Sopenharmony_ci                public SampleSpec sample_spec;
146153a5a1b3Sopenharmony_ci                public ChannelMap channel_map;
146253a5a1b3Sopenharmony_ci                public CVolume volume;
146353a5a1b3Sopenharmony_ci                public uint32 buffer_usec;
146453a5a1b3Sopenharmony_ci                public uint32 sink_usec;
146553a5a1b3Sopenharmony_ci                public unowned string resample_method;
146653a5a1b3Sopenharmony_ci                public unowned string driver;
146753a5a1b3Sopenharmony_ci                public int mute;
146853a5a1b3Sopenharmony_ci                public Proplist proplist;
146953a5a1b3Sopenharmony_ci                public int corked;
147053a5a1b3Sopenharmony_ci                public int has_volume;
147153a5a1b3Sopenharmony_ci                public int volume_writable;
147253a5a1b3Sopenharmony_ci        }
147353a5a1b3Sopenharmony_ci
147453a5a1b3Sopenharmony_ci        [CCode (cname="pa_source_output_info", has_type_id=false)]
147553a5a1b3Sopenharmony_ci        public struct SourceOutputInfo {
147653a5a1b3Sopenharmony_ci                public uint32 index;
147753a5a1b3Sopenharmony_ci                public unowned string name;
147853a5a1b3Sopenharmony_ci                public uint32 owner_module;
147953a5a1b3Sopenharmony_ci                public uint32 client;
148053a5a1b3Sopenharmony_ci                public uint32 source;
148153a5a1b3Sopenharmony_ci                public SampleSpec sample_spec;
148253a5a1b3Sopenharmony_ci                public ChannelMap channel_map;
148353a5a1b3Sopenharmony_ci                public uint32 buffer_usec;
148453a5a1b3Sopenharmony_ci                public uint32 source_usec;
148553a5a1b3Sopenharmony_ci                public unowned string resample_method;
148653a5a1b3Sopenharmony_ci                public unowned string driver;
148753a5a1b3Sopenharmony_ci                public Proplist proplist;
148853a5a1b3Sopenharmony_ci                public int corked;
148953a5a1b3Sopenharmony_ci                public CVolume volume;
149053a5a1b3Sopenharmony_ci                public int mute;
149153a5a1b3Sopenharmony_ci                public int has_volume;
149253a5a1b3Sopenharmony_ci                public int volume_writable;
149353a5a1b3Sopenharmony_ci        }
149453a5a1b3Sopenharmony_ci
149553a5a1b3Sopenharmony_ci        [CCode (cname="pa_stat_info", has_type_id=false)]
149653a5a1b3Sopenharmony_ci        public struct StatInfo {
149753a5a1b3Sopenharmony_ci                public uint32 memblock_total;
149853a5a1b3Sopenharmony_ci                public uint32 memblock_total_size;
149953a5a1b3Sopenharmony_ci                public uint32 memblock_allocated;
150053a5a1b3Sopenharmony_ci                public uint32 memblock_allocated_size;
150153a5a1b3Sopenharmony_ci                public uint32 scache_size;
150253a5a1b3Sopenharmony_ci        }
150353a5a1b3Sopenharmony_ci
150453a5a1b3Sopenharmony_ci        [CCode (cname="pa_sample_info", has_type_id=false)]
150553a5a1b3Sopenharmony_ci        public struct SampleInfo {
150653a5a1b3Sopenharmony_ci                public uint32 index;
150753a5a1b3Sopenharmony_ci                public unowned string name;
150853a5a1b3Sopenharmony_ci                public CVolume volume;
150953a5a1b3Sopenharmony_ci                public SampleSpec sample_spec;
151053a5a1b3Sopenharmony_ci                public ChannelMap channel_map;
151153a5a1b3Sopenharmony_ci                public usec duration;
151253a5a1b3Sopenharmony_ci                public uint32 bytes;
151353a5a1b3Sopenharmony_ci                public bool lazy;
151453a5a1b3Sopenharmony_ci                public unowned string filename;
151553a5a1b3Sopenharmony_ci                public Proplist proplist;
151653a5a1b3Sopenharmony_ci        }
151753a5a1b3Sopenharmony_ci
151853a5a1b3Sopenharmony_ci        [CCode (cname="pa_sink_flags_t", cprefix="PA_SINK_", has_type_id=false)]
151953a5a1b3Sopenharmony_ci        public enum SinkFlags {
152053a5a1b3Sopenharmony_ci                HW_VOLUME_CTRL,
152153a5a1b3Sopenharmony_ci                LATENCY,
152253a5a1b3Sopenharmony_ci                HARDWARE,
152353a5a1b3Sopenharmony_ci                NETWORK,
152453a5a1b3Sopenharmony_ci                HW_MUTE_CTRL,
152553a5a1b3Sopenharmony_ci                DECIBEL_VOLUME,
152653a5a1b3Sopenharmony_ci                FLAT_VOLUME,
152753a5a1b3Sopenharmony_ci                DYNAMIC_LATENCY
152853a5a1b3Sopenharmony_ci        }
152953a5a1b3Sopenharmony_ci
153053a5a1b3Sopenharmony_ci        [CCode (cname="pa_source_flags_t", cprefix="PA_SOURCE_", has_type_id=false)]
153153a5a1b3Sopenharmony_ci        public enum SourceFlags {
153253a5a1b3Sopenharmony_ci                HW_VOLUME_CTRL,
153353a5a1b3Sopenharmony_ci                LATENCY,
153453a5a1b3Sopenharmony_ci                HARDWARE,
153553a5a1b3Sopenharmony_ci                NETWORK,
153653a5a1b3Sopenharmony_ci                HW_MUTE_CTRL,
153753a5a1b3Sopenharmony_ci                DECIBEL_VOLUME,
153853a5a1b3Sopenharmony_ci                DYNAMIC_LATENCY
153953a5a1b3Sopenharmony_ci        }
154053a5a1b3Sopenharmony_ci
154153a5a1b3Sopenharmony_ci        [CCode (cname="pa_sink_state_t", cprefix="PA_SINK_", has_type_id=false)]
154253a5a1b3Sopenharmony_ci        public enum SinkState {
154353a5a1b3Sopenharmony_ci                INVALID_STATE,
154453a5a1b3Sopenharmony_ci                RUNNING,
154553a5a1b3Sopenharmony_ci                IDLE,
154653a5a1b3Sopenharmony_ci                SUSPENDED;
154753a5a1b3Sopenharmony_ci
154853a5a1b3Sopenharmony_ci                [CCode (cname="PA_SINK_IS_OPENED")]
154953a5a1b3Sopenharmony_ci                public bool IS_OPENED();
155053a5a1b3Sopenharmony_ci        }
155153a5a1b3Sopenharmony_ci
155253a5a1b3Sopenharmony_ci        [CCode (cname="pa_source_state_t", cprefix="PA_SOURCE_", has_type_id=false)]
155353a5a1b3Sopenharmony_ci        public enum SourceState {
155453a5a1b3Sopenharmony_ci                INVALID_STATE,
155553a5a1b3Sopenharmony_ci                RUNNING,
155653a5a1b3Sopenharmony_ci                IDLE,
155753a5a1b3Sopenharmony_ci                SUSPENDED;
155853a5a1b3Sopenharmony_ci
155953a5a1b3Sopenharmony_ci                [CCode (cname="PA_SOURCE_IS_OPENED")]
156053a5a1b3Sopenharmony_ci                public bool IS_OPENED();
156153a5a1b3Sopenharmony_ci        }
156253a5a1b3Sopenharmony_ci
156353a5a1b3Sopenharmony_ci        [CCode (cname="pa_gettimeofday")]
156453a5a1b3Sopenharmony_ci        public unowned timeval? gettimeofday(out timeval tv);
156553a5a1b3Sopenharmony_ci
156653a5a1b3Sopenharmony_ci        [CCode (cname="pa_timeval_diff")]
156753a5a1b3Sopenharmony_ci        public usec timeval_diff(ref timeval a, ref timeval b);
156853a5a1b3Sopenharmony_ci
156953a5a1b3Sopenharmony_ci        [CCode (cname="pa_timeval_cmp")]
157053a5a1b3Sopenharmony_ci        public int timeval_cmp(ref timeval a, ref timeval b);
157153a5a1b3Sopenharmony_ci
157253a5a1b3Sopenharmony_ci        [CCode (cname="pa_timeval_age")]
157353a5a1b3Sopenharmony_ci        public usec timeval_age(ref timeval a);
157453a5a1b3Sopenharmony_ci
157553a5a1b3Sopenharmony_ci        [CCode (cname="pa_timeval_add")]
157653a5a1b3Sopenharmony_ci        public unowned timeval? timeval_add(ref timeval tv, usec x);
157753a5a1b3Sopenharmony_ci
157853a5a1b3Sopenharmony_ci        [CCode (cname="pa_timeval_sub")]
157953a5a1b3Sopenharmony_ci        public unowned timeval? timeval_sub(ref timeval tv, usec x);
158053a5a1b3Sopenharmony_ci
158153a5a1b3Sopenharmony_ci        [CCode (cname="pa_timeval_store")]
158253a5a1b3Sopenharmony_ci        public unowned timeval? timeval_store(out timeval tv, usec c);
158353a5a1b3Sopenharmony_ci
158453a5a1b3Sopenharmony_ci        [CCode (cname="pa_timeval_load")]
158553a5a1b3Sopenharmony_ci        public usec timeval_load(timeval tv);
158653a5a1b3Sopenharmony_ci
158753a5a1b3Sopenharmony_ci        [CCode (cname="PA_USEC_MAX")]
158853a5a1b3Sopenharmony_ci        public const usec USEC_MAX;
158953a5a1b3Sopenharmony_ci
159053a5a1b3Sopenharmony_ci        [CCode (cname="PA_USEC_INVALID")]
159153a5a1b3Sopenharmony_ci        public const usec USEC_INVALID;
159253a5a1b3Sopenharmony_ci
159353a5a1b3Sopenharmony_ci        [CCode (cname="PA_MSEC_PER_SEC")]
159453a5a1b3Sopenharmony_ci        public const usec MSEC_PER_SEC;
159553a5a1b3Sopenharmony_ci
159653a5a1b3Sopenharmony_ci        [CCode (cname="PA_USEC_PER_SEC")]
159753a5a1b3Sopenharmony_ci        public const usec USEC_PER_SEC;
159853a5a1b3Sopenharmony_ci
159953a5a1b3Sopenharmony_ci        [CCode (cname="PA_NSEC_PER_SEC")]
160053a5a1b3Sopenharmony_ci        public const uint64 NSEC_PER_SEC;
160153a5a1b3Sopenharmony_ci
160253a5a1b3Sopenharmony_ci
160353a5a1b3Sopenharmony_ci        [CCode (cname="PA_USEC_PER_MSEC")]
160453a5a1b3Sopenharmony_ci        public const usec USEC_PER_MSEC;
160553a5a1b3Sopenharmony_ci
160653a5a1b3Sopenharmony_ci        [CCode (cname="PA_NSEC_PER_MSEC")]
160753a5a1b3Sopenharmony_ci        public const uint64 NSEC_PER_MSEC;
160853a5a1b3Sopenharmony_ci
160953a5a1b3Sopenharmony_ci
161053a5a1b3Sopenharmony_ci        [CCode (cname="PA_NSEC_PER_USEC")]
161153a5a1b3Sopenharmony_ci        public const uint64 NSEC_PER_USEC;
161253a5a1b3Sopenharmony_ci}
1613