- [CCode (cname="pa_time_event")]
- public struct TimeEvent {
- }
-
- [CCode (cname="pa_defer_event")]
- public struct DeferEvent {
- }
-
- [CCode (cname="pa_signal_event", cprefix="pa_signal_", free_function="pa_signal_free")]
- public struct SignalEvent {
-
- [CCode (cname="pa_signal_new")]
- public SignalEvent(int sig, MainLoopApi.SignalEventCb cb);
-
- public void set_destroy(MainLoopApi.SignalEventDestroyCb cb);
- }
-
- [Compact]
- [CCode (cname="pa_mainloop_api")]
- public class MainLoopApi {
- public void* userdata;
-
- /* Callbacks for the consumer to implement*/
- public delegate void IoEventCb(IoEvent e, int fd, IoEventFlags flags);
- public delegate void IoEventDestroyCb(IoEvent e);
-
- public delegate void TimeEventCb(TimeEvent e, ref timeval t);
- public delegate void TimeEventDestroyCb(TimeEvent e);
-
- public delegate void DeferEventCb(DeferEvent e);
- public delegate void DeferEventDestroyCb(DeferEvent e);
-
- public delegate void SignalEventCb(SignalEvent e);
- public delegate void SignalEventDestroyCb(SignalEvent e);
-
- /* Callbacks for the provider to implement */
- public delegate IoEvent IoNewCb(int fd, IoEventFlags flags, IoEventCb cb);
- public delegate void IoEnableCb(IoEvent e, IoEventFlags flags);
- public delegate void IoFreeCb(IoEvent e);
- public delegate void IoSetDestroyCb(IoEvent e, IoEventDestroyCb? cb);
-
- public delegate TimeEvent TimeNewCb(ref timeval? t, TimeEventCb cb);
- public delegate void TimeRestartCb(TimeEvent e, ref timeval? t);
- public delegate void TimeFreeCb(TimeEvent e);
- public delegate void TimeSetDestroyCb(TimeEvent e, TimeEventDestroyCb? cb);
-
- public delegate DeferEvent DeferNewCb(DeferEventCb cb);
- public delegate void DeferEnableCb(DeferEvent e, bool b);
- public delegate void DeferFreeCb(DeferEvent e);
- public delegate void DeferSetDestroyCb(DeferEvent e, DeferEventDestroyCb? cb);
-
- public delegate void QuitCb(int retval);
-
- public delegate void OnceCb();
-
- public IoNewCb io_new;
- public IoEnableCb io_enable;
- public IoFreeCb io_free;
- public IoSetDestroyCb io_set_destroy;
-
- public TimeNewCb time_new;
- public TimeRestartCb time_restart;
- public TimeFreeCb time_free;
- public TimeSetDestroyCb time_set_destroy;
-
- public DeferNewCb defer_new;
- public DeferEnableCb defer_enable;
- public DeferFreeCb defer_free;
- public DeferSetDestroyCb defer_set_destroy;
-
- public QuitCb quit;
-
- [CCode (cname="pa_mainloop_api_once")]
- public void once(OnceCb cb);
- }
-
- [CCode (cname="pa_signal_init")]
- public void signal_init(MainLoopApi api);
-
- [CCode (cname="pa_signal_done")]
- public void signal_done();
-
- [CCode (cname="pa_poll_func")]
- public delegate int PollFunc(pollfd[] ufds);
-
- [Compact]
- [CCode (cname="pa_mainloop", cprefix="pa_mainloop_", free_function="pa_mainloop_free")]
- public class MainLoop {
-
- [CCode (cname="pa_mainloop_new")]
- public MainLoop();
-
- public int prepare(int timeout = -1);
- public int poll();
- public int dispatch();
- public int get_retval();
- public int iterate(bool block = true, out int retval = null);
- public int run(out int retval = null);
- public unowned MainLoopApi get_api();
- public void quit(int r);
- public void wakeup();
- public void set_poll_func(PollFunc poll_func);
- }
-
- [Compact]
- [CCode (cname="pa_threaded_mainloop", cprefix="pa_threaded_mainloop_", free_function="pa_threaded_mainloop_free")]
- public class ThreadedMainLoop {
-
- [CCode (cname="pa_threaded_mainloop_new")]
- public ThreadedMainLoop();
-
- public int start();
- public void stop();
- public void lock();
- public void unlock();
- public void wait();
- public void signal(bool WaitForAccept = false);
- public void accept();
- public int get_retval();
- public unowned MainLoopApi get_api();
- public bool in_thread();
- }
-
- [Compact]
- [CCode (cname="pa_glib_mainloop", cprefix="pa_glib_mainloop_", free_function="pa_glib_mainloop_free")]
- public class GLibMainLoop {
-
- [CCode (cname="pa_glib_mainloop_new")]
- public GLibMainLoop();
-
- public unowned MainLoopApi get_api();
- }
-
- [Compact]
- [CCode (cname="pa_operation", cprefix="pa_operation_", unref_function="pa_operation_unref", ref_function="pa_operation_ref")]
- public class Operation {
-
- [CCode (cname="pa_operation_state_t", cprefix="PA_OPERATION_")]
- public enum State {
- RUNNING,
- DONE,
- CANCELED
- }
-
- public void cancel();
- public State get_state();
- }
-
- [Compact]
- [CCode (cname="pa_context", cprefix="pa_context_", unref_function="pa_context_unref", ref_function="pa_context_ref")]
- public class Context {
-
- [CCode (cname="pa_context_flags_t", cprefix="PA_CONTEXT_")]
- public enum Flags {
- NOAUTOSPAWN,
- NOFAIL
- }
-
- [CCode (cname="pa_context_state_t", cprefix="PA_CONTEXT_")]
- public enum State {
- UNCONNECTED,
- CONNECTING,
- AUTHORIZING,
- SETTING_NAME,
- READ,
- FAILED,
- TERMINATED;
-
- bool IS_GOOD();
- }
-
- [CCode (cname="pa_subscription_mask_t", cprefix="PA_SUBSCRIPTION_MASK_")]
- public enum SubscriptionMask {
- NULL,
- SINK,
- SOURCE,
- SINK_INPUT,
- SOURCE_OUTPUT,
- MODULE,
- CLIENT,
- SAMPLE_CACHE,
- SERVER,
- CARD,
- ALL;
-
- [CCode (cname="pa_subscription_match_flags")]
- bool match_flags(SubscriptionEventType t);
- }
-
- [CCode (cname="pa_subscription_event_type_t", cprefix="PA_SUBSCRIPTION_EVENT_")]
- public enum SubscriptionEventType {
- SINK,
- SOURCE,
- SINK_INPUT,
- SOURCE_OUTPUT,
- MODULE,
- CLIENT,
- SAMPLE_CACHE,
- SERVER,
- CARD,
- FACILITY_MASK,
- NEW,
- CHANGE,
- REMOVE,
- TYPE_MASK
- }
-
- public delegate void NotifyCb();
- public delegate void SuccessCb(int success);
- public delegate void EventCb(string name, Proplist? proplist);
- public delegate void SubscribeCb(SubscriptionEventType t, uint32 idx);
- public delegate void SinkInfoCb(SinkInfo? i, int eol);
- public delegate void SourceInfoCb(SourceInfo? i, int eol);
- public delegate void CardInfoCb(CardInfo? i, int eol);
- public delegate void SinkInputInfoCb(SinkInputInfo? i, int eol);
- public delegate void SourceOutputInfoCb(SourceOutputInfo? i, int eol);
- public delegate void ServerInfoCb(ServerInfo? i);
- public delegate void StatInfoCb(ServerInfo? i);
- public delegate void ModuleInfoCb(ModuleInfo? i, int eol);
- public delegate void ClientInfoCb(ClientInfo? i, int eol);
- public delegate void SampleInfoCb(SampleInfo? i, int eol);
- public delegate void IndexCb(uint32 idx);
-
- [CCode (cname="pa_context_new_with_proplist")]
- public Context(MainLoopApi api, string? name, Proplist? proplist = null);
-
- public void set_state_callback(NotifyCb? cb = null);
- public void set_event_callback(EventCb? cb = null);
- public void set_subscribe_callback(SubscribeCb? cb = null);
-
- public Error errno();
-
- public int is_pending();
- public State get_state();
- public int is_local();
- public unowned string? get_server();
- public uint32 get_protocol_version();
- public uint32 get_server_protocol_version();
- public uint32 get_index();
-
- public int connect(string? server = null, Flags flags = 0, SpawnApi? api = null);
- public void disconnect();
-
- public Operation? drain(NotifyCb? cb = null);
- public Operation? exit_daemon(SuccessCb? cb = null);
- public Operation? set_default_sink(string name, SuccessCb? cb = null);
- public Operation? set_default_source(string name, SuccessCb? cb = null);
- public Operation? set_name(string name, SuccessCb? cb = null);
-
- [CCode (array_length = false)]
- public Operation? proplist_remove(string[] keys, SuccessCb? cb = null);
- public Operation? proplist_update(UpdateMode mode, Proplist pl, SuccessCb? cb = null);
-
- public Operation? subscribe(SubscriptionMask mask, SuccessCb? cb = null);
-
- public Operation? get_sink_info_by_name(string name, SinkInfoCb cb);
- public Operation? get_sink_info_by_index(uint32 idx, SinkInfoCb cb);
- public Operation? get_sink_info_list(SinkInfoCb cb);
-
- public Operation? set_sink_volume_by_name(string name, CVolume volume, SuccessCb? cb = null);
- public Operation? set_sink_volume_by_index(uint32 idx, CVolume volume, SuccessCb? cb = null);
- public Operation? set_sink_mute_by_name(string name, bool mute, SuccessCb? cb = null);
- public Operation? set_sink_mute_by_index(uint32 idx, bool mute, SuccessCb? cb = null);
-
- public Operation? suspend_sink_by_name(string name, bool suspend, SuccessCb? cb = null);
- public Operation? suspend_sink_by_index(uint32 idx, bool suspend, SuccessCb? cb = null);
-
- public Operation? set_sink_port_by_name(string name, string port, SuccessCb? cb = null);
- public Operation? set_sink_port_by_index(string idx, string port, SuccessCb? cb = null);
-
- public Operation? get_source_info_by_name(string name, SourceInfoCb cb);
- public Operation? get_source_info_by_index(uint32 idx, SourceInfoCb cb);
- public Operation? get_source_info_list(SourceInfoCb cb);
-
- public Operation? set_source_volume_by_name(string name, CVolume volume, SuccessCb? cb = null);
- public Operation? set_source_volume_by_index(uint32 idx, CVolume volume, SuccessCb? cb = null);
- public Operation? set_source_mute_by_name(string name, bool mute, SuccessCb? cb = null);
- public Operation? set_source_mute_by_index(uint32 idx, bool mute, SuccessCb? cb = null);
-
- public Operation? suspend_source_by_name(string name, bool suspend, SuccessCb? cb = null);
- public Operation? suspend_source_by_index(uint32 idx, bool suspend, SuccessCb? cb = null);
-
- public Operation? set_source_port_by_name(string name, string port, SuccessCb? cb = null);
- public Operation? set_source_port_by_index(string idx, string port, SuccessCb? cb = null);
-
- public Operation? get_server_info(ServerInfoCb cb);
-
- public Operation? get_module_info(uint32 idx, ModuleInfoCb cb);
- public Operation? get_module_info_list(ModuleInfoCb cb);
-
- public Operation? load_module(string name, string? argument, IndexCb? cb = null);
- public Operation? unload_module(uint32 idx, SuccessCb? cb = null);
-
- public Operation? get_client_info(uint32 idx, ClientInfoCb cb);
- public Operation? get_client_info_list(ClientInfoCb cb);
-
- public Operation? kill_client(uint32 idx, SuccessCb? cb = null);
-
- public Operation? get_card_info_by_name(string name, CardInfoCb cb);
- public Operation? get_card_info_by_index(uint32 idx, CardInfoCb cb);
- public Operation? get_card_info_list(CardInfoCb cb);
-
- public Operation? set_card_profile_by_index(uint32 idx, string profile, SuccessCb? cb = null);
- public Operation? set_card_profile_by_name(string name, string profile, SuccessCb? cb = null);
-
- public Operation? get_sink_input_info(uint32 idx, SinkInputInfoCb cb);
- public Operation? get_sink_input_info_list(SinkInputInfoCb cb);
-
- public Operation? move_sink_input_by_index(uint32 idx, uint32 sink_idx, SuccessCb? cb = null);
- public Operation? move_sink_input_by_name(uint32 idx, string sink_name, SuccessCb? cb = null);
-
- public Operation? set_sink_input_volume(uint32 idx, CVolume volume, SuccessCb? cb = null);
- public Operation? set_sink_input_mute(uint32 idx, bool mute, SuccessCb? cb = null);
-
- public Operation? kill_sink_input(uint32 idx, SuccessCb? cb = null);
-
- public Operation? get_source_output_info(uint32 idx, SourceOutputInfoCb cb);
- public Operation? get_source_output_info_list(SourceOutputInfoCb cb);
-
- public Operation? move_source_output_by_index(uint32 idx, uint32 source_idx, SuccessCb? cb = null);
- public Operation? move_source_output_by_name(uint32 idx, string source_name, SuccessCb? cb = null);
-
- public Operation? kill_source_output(uint32 idx, SuccessCb? cb = null);
-
- public Operation? stat(StatInfoCb cb);
-
- public Operation? get_sample_info_by_name(string name, SampleInfoCb cb);
- public Operation? get_sample_info_by_index(uint32 idx, SampleInfoCb cb);
- public Operation? get_sample_info_list(SampleInfoCb cb);
-
- public Operation? remove_sample(string name, SuccessCb? cb = null);
- public Operation? play_sample(string name, string? device = null, Volume volume = Volume.INVALID
- }
-
- [Compact]
- [CCode (cname="pa_stream", cprefix="pa_stream_", unref_function="pa_stream_unref", ref_function="pa_stream_ref")]
- public class Stream {
-
- [CCode (cname="pa_stream_flags_t", cprefix="PA_STREAM_")]
- public enum Flags {
- START_CORKED,
- INTERPOLATE_TIMING,
- NOT_MONOTONIC,
- AUTO_TIMING_UPDATE,
- NO_REMAP_CHANNELS,
- NO_REMIX_CHANNELS,
- FIX_FORMAT,
- FIX_RATE,
- FIX_CHANNELS,
- DONT_MOVE,
- VARIABLE_RATE,
- PEAK_DETECT,
- START_MUTED,
- ADJUST_LATENCY,
- EARLY_REQUESTS,
- DONT_INHIBIT_AUTO_SUSPEND,
- START_UNMUTED,
- FAIL_ON_SUSPEND
- }
-
- [CCode (cname="pa_stream_state_t", cprefix="PA_STREAM_")]
- public enum State {
- UNCONNECTED,
- CREATING,
- READY,
- FAILED,
- TERMINATED;
-
- bool IS_GOOD();
- }
-
- [CCode (cname="pa_stream_direction_t", cprefix="PA_STREAM_")]
- public enum Direction {
- NODIRECTION,
- PLAYBACK,
- RECORD,
- UPLOAD
- }
-
- [CCode (cname="pa_seek_mode_t", cprefix="PA_SEEK_")]
- public enum SeekMode {
- RELATIVE,
- ABSOLUTE,
- RELATIVE_ON_READ,
- RELATIVE_END
- }
-
- [CCode (cname="pa_buffer_attr")]
- public struct BufferAttr {
- uint32 maxlength;
- uint32 tlength;
- uint32 prebuf;
- uint32 minreq;
- uint32 fragsize;
- }
-
- [CCode (cname="pa_timing_info")]
- public struct TimingInfo {
- timeval timestamp;
- int synchronized_clocks;
- usec sink_usec;
- usec source_usec;
- usec transport_usec;
- int playing;
- int write_index_corrupt;
- int64 write_index;
- int read_index_corrupt;
- int64 read_index;
- usec configured_sink_usec;
- usec configured_source_usec;
- int64 since_underrun;
- }
-
- [CCode (cname="PA_STREAM_EVENT_REQUEST_CORK")]
- public const string EVENT_REQUEST_CORK;
-
- [CCode (cname="PA_STREAM_EVENT_REQUEST_UNCORK")]
- public const string EVENT_REQUEST_UNCORK;
-
- public delegate void SuccessCb(int success);
- public delegate void RequestCb(size_t nbytes);
- public delegate void NotifyCb();
- public delegate void EventCb(string name, Proplist proplist);
-
- [CCode (cname="pa_stream_new_with_proplist")]
- public Stream(Context c, string name, SampleSpec ss, ChannelMap map = null, Proplist proplist = null);
-
- public State get_state();
- public Context get_context();
- public uint32 get_index();
- public uint32 get_device_index();
- public unowned string? get_device_name();
- public int is_suspended();
- public int is_corked();
-
- public int connect_playback(string dev, BufferAttr a = null, Flags flags = 0, Volume volume = null, Stream sync_stream = null);
- public int connect_record(string dev, BufferAttr a = null, Flags flags = 0);
- public int connect_upload(size_t length);
- public int disconnect();
- public int finish_upload();
-
- public int begin_write(out void* data, out size_t nbytes);
- public int cancel_write();
- public int write(void *data, size_t bytes, FreeCb free_cb = null, int64 offset = 0, SeekMode mode = SeekMode.RELATIVE);
- public int peek(out void *data, out size_t nbytes);
- public int drop();
- public size_t writable_size();
- public size_t readable_size();
-
- public void set_state_callback(NotifyCb cb = null);
- public void set_write_callback(RequestCb cb = null);
- public void set_read_callback(RequestCb cb = null);
- public void set_overflow_callback(NotifyCb cb = null);
- public void set_underflow_callback(NotifyCb cb = null);
- public void set_started_callback(NotifyCb cb = null);
- public void set_latency_update_callback(NotifyCb cb = null);
- public void set_moved_callback(NotifyCb cb = null);
- public void set_suspended_callback(NotifyCb cb = null);
- public void set_event_callback(EventCb cb = null);
- public void set_buffer_attr_callback(NotifyCb cb = null);
-
- public Operation? drain(SuccessCb cb = null);
- public Operation? update_timing_info(SuccessCb cb = null);
-
- public Operation? cork(bool b, SuccessCb cb = null);
- public Operation? flush(SuccessCb cb = null);
- public Operation? prebuf(SuccessCb cb = null);
- public Operation? trigger(SuccessCb cb = null);
-
- public Operation? set_name(string name, SuccessCb cb = null);
- public Operation? set_buffer_attr(BufferAttr attr, SuccessCb cb = null);
- public Operation? update_sample_rate(uint32 rate, SuccessCb cb = null);
-
- [CCode (array_length = false)]
- public Operation? proplist_remove(string[] keys, SuccessCb cb = null);
- public Operation? proplist_update(UpdateMode mode, Proplist pl, SuccessCb cb = null);
-
- public unowned TimingInfo? get_timing_info();
- public int get_time(out usec u);
- public int get_latency(out usec u, out bool negative = null);
-
- public unowned SampleSpec? get_sample_spec();
- public unowned ChannelMap? get_channel_map();
- public unowned BufferAttr? get_buffer_attr();
-
- public int set_monitor_stream(uint32 sink_input);
- public uint32 get_monitor_stream();
- }
-
- [CCode (cname="pa_sink_port_info")]
- public struct SinkPortInfo {
- string name;
- string description;
- uint32 priority;
- }
-
- [CCode (cname="pa_sink_info")]
- public struct SinkInfo {
- string name;
- uint32 index;
- string description;
- SampleSpec sample_spec;
- ChannelMap channel_map;
- uint32 owner_module;
- CVolume volume;
- int mute;
- uint32 monitor_source;
- string monitor_source_name;
- usec latency;
- string driver;
- SinkFlags flags;
- Proplist proplist;
- usec configured_latency;
- Volume base_volume;
- SinkState state;
- uint32 n_volume_steps;
- uint32 card;
- uint32 n_ports;
- SinkPortInfo*[] ports;
- SinkPortInfo* active_port;
- }
-
- [CCode (cname="pa_source_port_info")]
- public struct SourcePortInfo {
- string name;
- string description;
- uint32 priority;
- }
-
- [CCode (cname="pa_source_info")]
- public struct SourceInfo {
- string name;
- uint32 index;
- string description;
- SampleSpec sample_spec;
- ChannelMap channel_map;
- uint32 owner_module;
- CVolume volume;
- int mute;
- uint32 monitor_of_sink;
- string monitor_of_sink_name;
- usec latency;
- string driver;
- SourceFlags flags;
- Proplist proplist;
- usec configured_latency;
- Volume base_volume;
- SourceState state;
- uint32 n_volume_steps;
- uint32 card;
- uint32 n_ports;
- SourcePortInfo*[] ports;
- SourcePortInfo* active_port;
- }
-
- [CCode (cname="pa_server_info")]
- public struct ServerInfo {
- string user_name;
- string host_name;
- string server_version;
- string server_name;
- SampleSpec sample_spec;
- string default_sink_name;
- string default_source_name;
- ChannelMap channel_map;
- }
-
- [CCode (cname="pa_module_info")]
- public struct ModuleInfo {
- uint32 index;
- string name;
- string argument;
- uint32 n_used;
- Proplist proplist;
- }
-
- [CCode (cname="pa_client_info")]
- public struct ClientInfo {
- uint32 index;
- string name;
- uint32 owner_module;
- string driver;
- Proplist proplist;
- }
-
- [CCode (cname="pa_card_profile_info")]
- public struct CardProfileInfo {
- string name;
- string description;
- uint32 n_sinks;
- uint32 n_sources;
- uint32 priority;
- }
-
- [CCode (cname="pa_card_info")]
- public struct CardInfo {
- uint32 index;
- string name;
- uint32 owner_module;
- string driver;
- uint32 n_profiles;
- CardProfileInfo profiles[];
- CardProfileInfo *active_profile;
- Proplist proplist;
- }
-
- [CCode (cname="pa_sink_input_info")]
- public struct SinkInputInfo {
- uint32 index;
- string name;
- uint32 owner_module;
- uint32 client;
- uint32 sink;
- SampleSpec sample_spec;
- ChannelMap channel_map;
- CVolume volume;
- uint32 buffer_usec;
- uint32 sink_usec;
- string resample_method;
- string driver;
- int mute;
- Proplist proplist;
- }
-
- [CCode (cname="pa_source_output_info")]
- public struct SourceOutputInfo {
- uint32 index;
- string name;
- uint32 owner_module;
- uint32 client;
- uint32 source;
- SampleSpec sample_spec;
- ChannelMap channel_map;
- uint32 buffer_usec;
- uint32 sink_usec;
- string resample_method;
- string driver;
- Proplist proplist;
- }
-
- [CCode (cname="pa_stat_info")]
- public struct StatInfo {
- uint32 memblock_total;
- uint32 memblock_total_size;
- uint32 memblock_allocated;
- uint32 memblock_allocated_size;
- uint32 scache_size;
- }
-
- [CCode (cname="pa_sample_info")]
- public struct SampleInfo {
- uint32 index;
- string name;
- CVolume volume;
- SampleSpec sample_spec;
- ChannelMap channel_map;
- usec duration;
- uint32 bytes;
- bool lazy;
- string filename;
- Proplist proplist;
- }
-
- [CCode (cname="pa_sink_flags_t", cprefix="PA_SINK_")]
- public enum SinkFlags {
- HW_VOLUME_CTRL,
- LATENCY,
- HARDWARE,
- NETWORK,
- HW_MUTE_CTRL,
- DECIBEL_VOLUME,
- FLAT_VOLUME,
- DYNAMIC_LATENCY
- }
-
- [CCode (cname="pa_source_flags_t", cprefix="PA_SOURCE_")]
- public enum SourceFlags {
- HW_VOLUME_CTRL,
- LATENCY,
- HARDWARE,
- NETWORK,
- HW_MUTE_CTRL,
- DECIBEL_VOLUME,
- DYNAMIC_LATENCY
- }
-
- [CCode (cname="pa_sink_state_t", cprefix="PA_SINK_")]
- public enum SinkState {
- INVALID_STATE,
- RUNNING,
- IDLE,
- SUSPENDED;
-
- [CCode (cname="PA_SINK_IS_OPENED")]
- public bool IS_OPENED();
- }
-
- [CCode (cname="pa_source_state_t", cprefix="PA_SOURCE_")]
- public enum SourceState {
- INVALID_STATE,
- RUNNING,
- IDLE,
- SUSPENDED;
-
- [CCode (cname="PA_SOURCE_IS_OPENED")]
- public bool IS_OPENED();
- }
+ [CCode (cname="pa_mainloop_new")]
+ public MainLoop();
+
+ public int prepare(int timeout = -1);
+ public int poll();
+ public int dispatch();
+ public int get_retval();
+ public int iterate(bool block = true, out int retval = null);
+ public int run(out int retval = null);
+ public unowned MainLoopApi get_api();
+ public void quit(int r);
+ public void wakeup();
+ public void set_poll_func(PollFunc poll_func);
+ }
+
+ [Compact]
+ [CCode (cname="pa_threaded_mainloop", cprefix="pa_threaded_mainloop_", free_function="pa_threaded_mainloop_free")]
+ public class ThreadedMainLoop {
+
+ [CCode (cname="pa_threaded_mainloop_new")]
+ public ThreadedMainLoop();
+
+ public int start();
+ public void stop();
+ public void lock();
+ public void unlock();
+ public void wait();
+ public void signal(bool WaitForAccept = false);
+ public void accept();
+ public int get_retval();
+ public unowned MainLoopApi get_api();
+ public bool in_thread();
+ }
+
+ [Compact]
+ [CCode (cname="pa_glib_mainloop", cprefix="pa_glib_mainloop_", free_function="pa_glib_mainloop_free")]
+ public class GLibMainLoop {
+
+ [CCode (cname="pa_glib_mainloop_new")]
+ public GLibMainLoop();
+
+ public unowned MainLoopApi get_api();
+ }
+
+ [Compact]
+ [CCode (cname="pa_operation", cprefix="pa_operation_", unref_function="pa_operation_unref", ref_function="pa_operation_ref")]
+ public class Operation {
+
+ [CCode (cname="pa_operation_state_t", cprefix="PA_OPERATION_")]
+ public enum State {
+ RUNNING,
+ DONE,
+ CANCELED
+ }
+
+ public void cancel();
+ public State get_state();
+ }
+
+ [Compact]
+ [CCode (cname="pa_context", cprefix="pa_context_", unref_function="pa_context_unref", ref_function="pa_context_ref")]
+ public class Context {
+
+ [CCode (cname="pa_context_flags_t", cprefix="PA_CONTEXT_")]
+ public enum Flags {
+ NOAUTOSPAWN,
+ NOFAIL
+ }
+
+ [CCode (cname="pa_context_state_t", cprefix="PA_CONTEXT_")]
+ public enum State {
+ UNCONNECTED,
+ CONNECTING,
+ AUTHORIZING,
+ SETTING_NAME,
+ READ,
+ FAILED,
+ TERMINATED;
+
+ bool IS_GOOD();
+ }
+
+ [CCode (cname="pa_subscription_mask_t", cprefix="PA_SUBSCRIPTION_MASK_")]
+ public enum SubscriptionMask {
+ NULL,
+ SINK,
+ SOURCE,
+ SINK_INPUT,
+ SOURCE_OUTPUT,
+ MODULE,
+ CLIENT,
+ SAMPLE_CACHE,
+ SERVER,
+ CARD,
+ ALL;
+
+ [CCode (cname="pa_subscription_match_flags")]
+ bool match_flags(SubscriptionEventType t);
+ }
+
+ [CCode (cname="pa_subscription_event_type_t", cprefix="PA_SUBSCRIPTION_EVENT_")]
+ public enum SubscriptionEventType {
+ SINK,
+ SOURCE,
+ SINK_INPUT,
+ SOURCE_OUTPUT,
+ MODULE,
+ CLIENT,
+ SAMPLE_CACHE,
+ SERVER,
+ CARD,
+ FACILITY_MASK,
+ NEW,
+ CHANGE,
+ REMOVE,
+ TYPE_MASK
+ }
+
+ public delegate void NotifyCb();
+ public delegate void SuccessCb(int success);
+ public delegate void EventCb(string name, Proplist? proplist);
+ public delegate void SubscribeCb(SubscriptionEventType t, uint32 idx);
+ public delegate void SinkInfoCb(SinkInfo? i, int eol);
+ public delegate void SourceInfoCb(SourceInfo? i, int eol);
+ public delegate void CardInfoCb(CardInfo? i, int eol);
+ public delegate void SinkInputInfoCb(SinkInputInfo? i, int eol);
+ public delegate void SourceOutputInfoCb(SourceOutputInfo? i, int eol);
+ public delegate void ServerInfoCb(ServerInfo? i);
+ public delegate void StatInfoCb(ServerInfo? i);
+ public delegate void ModuleInfoCb(ModuleInfo? i, int eol);
+ public delegate void ClientInfoCb(ClientInfo? i, int eol);
+ public delegate void SampleInfoCb(SampleInfo? i, int eol);
+ public delegate void IndexCb(uint32 idx);
+
+ [CCode (cname="pa_context_new_with_proplist")]
+ public Context(MainLoopApi api, string? name, Proplist? proplist = null);
+
+ public void set_state_callback(NotifyCb? cb = null);
+ public void set_event_callback(EventCb? cb = null);
+ public void set_subscribe_callback(SubscribeCb? cb = null);
+
+ public Error errno();
+
+ public int is_pending();
+ public State get_state();
+ public int is_local();
+ public unowned string? get_server();
+ public uint32 get_protocol_version();
+ public uint32 get_server_protocol_version();
+ public uint32 get_index();
+
+ public int connect(string? server = null, Flags flags = 0, SpawnApi? api = null);
+ public void disconnect();
+
+ public Operation? drain(NotifyCb? cb = null);
+ public Operation? exit_daemon(SuccessCb? cb = null);
+ public Operation? set_default_sink(string name, SuccessCb? cb = null);
+ public Operation? set_default_source(string name, SuccessCb? cb = null);
+ public Operation? set_name(string name, SuccessCb? cb = null);
+
+ [CCode (array_length = false)]
+ public Operation? proplist_remove(string[] keys, SuccessCb? cb = null);
+ public Operation? proplist_update(UpdateMode mode, Proplist pl, SuccessCb? cb = null);
+
+ public Operation? subscribe(SubscriptionMask mask, SuccessCb? cb = null);
+
+ public Operation? get_sink_info_by_name(string name, SinkInfoCb cb);
+ public Operation? get_sink_info_by_index(uint32 idx, SinkInfoCb cb);
+ public Operation? get_sink_info_list(SinkInfoCb cb);
+
+ public Operation? set_sink_volume_by_name(string name, CVolume volume, SuccessCb? cb = null);
+ public Operation? set_sink_volume_by_index(uint32 idx, CVolume volume, SuccessCb? cb = null);
+ public Operation? set_sink_mute_by_name(string name, bool mute, SuccessCb? cb = null);
+ public Operation? set_sink_mute_by_index(uint32 idx, bool mute, SuccessCb? cb = null);
+
+ public Operation? suspend_sink_by_name(string name, bool suspend, SuccessCb? cb = null);
+ public Operation? suspend_sink_by_index(uint32 idx, bool suspend, SuccessCb? cb = null);
+
+ public Operation? set_sink_port_by_name(string name, string port, SuccessCb? cb = null);
+ public Operation? set_sink_port_by_index(string idx, string port, SuccessCb? cb = null);
+
+ public Operation? get_source_info_by_name(string name, SourceInfoCb cb);
+ public Operation? get_source_info_by_index(uint32 idx, SourceInfoCb cb);
+ public Operation? get_source_info_list(SourceInfoCb cb);
+
+ public Operation? set_source_volume_by_name(string name, CVolume volume, SuccessCb? cb = null);
+ public Operation? set_source_volume_by_index(uint32 idx, CVolume volume, SuccessCb? cb = null);
+ public Operation? set_source_mute_by_name(string name, bool mute, SuccessCb? cb = null);
+ public Operation? set_source_mute_by_index(uint32 idx, bool mute, SuccessCb? cb = null);
+
+ public Operation? suspend_source_by_name(string name, bool suspend, SuccessCb? cb = null);
+ public Operation? suspend_source_by_index(uint32 idx, bool suspend, SuccessCb? cb = null);
+
+ public Operation? set_source_port_by_name(string name, string port, SuccessCb? cb = null);
+ public Operation? set_source_port_by_index(string idx, string port, SuccessCb? cb = null);
+
+ public Operation? get_server_info(ServerInfoCb cb);
+
+ public Operation? get_module_info(uint32 idx, ModuleInfoCb cb);
+ public Operation? get_module_info_list(ModuleInfoCb cb);
+
+ public Operation? load_module(string name, string? argument, IndexCb? cb = null);
+ public Operation? unload_module(uint32 idx, SuccessCb? cb = null);
+
+ public Operation? get_client_info(uint32 idx, ClientInfoCb cb);
+ public Operation? get_client_info_list(ClientInfoCb cb);
+
+ public Operation? kill_client(uint32 idx, SuccessCb? cb = null);
+
+ public Operation? get_card_info_by_name(string name, CardInfoCb cb);
+ public Operation? get_card_info_by_index(uint32 idx, CardInfoCb cb);
+ public Operation? get_card_info_list(CardInfoCb cb);
+
+ public Operation? set_card_profile_by_index(uint32 idx, string profile, SuccessCb? cb = null);
+ public Operation? set_card_profile_by_name(string name, string profile, SuccessCb? cb = null);
+
+ public Operation? get_sink_input_info(uint32 idx, SinkInputInfoCb cb);
+ public Operation? get_sink_input_info_list(SinkInputInfoCb cb);
+
+ public Operation? move_sink_input_by_index(uint32 idx, uint32 sink_idx, SuccessCb? cb = null);
+ public Operation? move_sink_input_by_name(uint32 idx, string sink_name, SuccessCb? cb = null);
+
+ public Operation? set_sink_input_volume(uint32 idx, CVolume volume, SuccessCb? cb = null);
+ public Operation? set_sink_input_mute(uint32 idx, bool mute, SuccessCb? cb = null);
+
+ public Operation? kill_sink_input(uint32 idx, SuccessCb? cb = null);
+
+ public Operation? get_source_output_info(uint32 idx, SourceOutputInfoCb cb);
+ public Operation? get_source_output_info_list(SourceOutputInfoCb cb);
+
+ public Operation? move_source_output_by_index(uint32 idx, uint32 source_idx, SuccessCb? cb = null);
+ public Operation? move_source_output_by_name(uint32 idx, string source_name, SuccessCb? cb = null);
+
+ public Operation? kill_source_output(uint32 idx, SuccessCb? cb = null);
+
+ public Operation? stat(StatInfoCb cb);
+
+ public Operation? get_sample_info_by_name(string name, SampleInfoCb cb);
+ public Operation? get_sample_info_by_index(uint32 idx, SampleInfoCb cb);
+ public Operation? get_sample_info_list(SampleInfoCb cb);
+
+ public Operation? remove_sample(string name, SuccessCb? cb = null);
+
+ public Operation? play_sample(string name, string? device = null, Volume volume = Volume.INVALID, SuccessCb? cb = null);
+ public Operation? play_sample_with_proplist(string name, string? device = null, Volume volume = Volume.INVALID, Proplist? p = null, IndexCb? cb = null);
+ }
+
+ [Compact]
+ [CCode (cname="pa_stream", cprefix="pa_stream_", unref_function="pa_stream_unref", ref_function="pa_stream_ref")]
+ public class Stream {
+
+ [CCode (cname="pa_stream_flags_t", cprefix="PA_STREAM_")]
+ public enum Flags {
+ START_CORKED,
+ INTERPOLATE_TIMING,
+ NOT_MONOTONIC,
+ AUTO_TIMING_UPDATE,
+ NO_REMAP_CHANNELS,
+ NO_REMIX_CHANNELS,
+ FIX_FORMAT,
+ FIX_RATE,
+ FIX_CHANNELS,
+ DONT_MOVE,
+ VARIABLE_RATE,
+ PEAK_DETECT,
+ START_MUTED,
+ ADJUST_LATENCY,
+ EARLY_REQUESTS,
+ DONT_INHIBIT_AUTO_SUSPEND,
+ START_UNMUTED,
+ FAIL_ON_SUSPEND
+ }
+
+ [CCode (cname="pa_stream_state_t", cprefix="PA_STREAM_")]
+ public enum State {
+ UNCONNECTED,
+ CREATING,
+ READY,
+ FAILED,
+ TERMINATED;
+
+ bool IS_GOOD();
+ }
+
+ [CCode (cname="pa_stream_direction_t", cprefix="PA_STREAM_")]
+ public enum Direction {
+ NODIRECTION,
+ PLAYBACK,
+ RECORD,
+ UPLOAD
+ }
+
+ [CCode (cname="pa_seek_mode_t", cprefix="PA_SEEK_")]
+ public enum SeekMode {
+ RELATIVE,
+ ABSOLUTE,
+ RELATIVE_ON_READ,
+ RELATIVE_END
+ }
+
+ [CCode (cname="pa_buffer_attr")]
+ public struct BufferAttr {
+ uint32 maxlength;
+ uint32 tlength;
+ uint32 prebuf;
+ uint32 minreq;
+ uint32 fragsize;
+ }
+
+ [CCode (cname="pa_timing_info")]
+ public struct TimingInfo {
+ timeval timestamp;
+ int synchronized_clocks;
+ usec sink_usec;
+ usec source_usec;
+ usec transport_usec;
+ int playing;
+ int write_index_corrupt;
+ int64 write_index;
+ int read_index_corrupt;
+ int64 read_index;
+ usec configured_sink_usec;
+ usec configured_source_usec;
+ int64 since_underrun;
+ }
+
+ [CCode (cname="PA_STREAM_EVENT_REQUEST_CORK")]
+ public const string EVENT_REQUEST_CORK;
+
+ [CCode (cname="PA_STREAM_EVENT_REQUEST_UNCORK")]
+ public const string EVENT_REQUEST_UNCORK;
+
+ public delegate void SuccessCb(int success);
+ public delegate void RequestCb(size_t nbytes);
+ public delegate void NotifyCb();
+ public delegate void EventCb(string name, Proplist proplist);
+
+ [CCode (cname="pa_stream_new_with_proplist")]
+ public Stream(Context c, string name, SampleSpec ss, ChannelMap map = null, Proplist proplist = null);
+
+ public State get_state();
+ public Context get_context();
+ public uint32 get_index();
+ public uint32 get_device_index();
+ public unowned string? get_device_name();
+ public int is_suspended();
+ public int is_corked();
+
+ public int connect_playback(string dev, BufferAttr a = null, Flags flags = 0, Volume volume = null, Stream sync_stream = null);
+ public int connect_record(string dev, BufferAttr a = null, Flags flags = 0);
+ public int connect_upload(size_t length);
+ public int disconnect();
+ public int finish_upload();
+
+ public int begin_write(out void* data, out size_t nbytes);
+ public int cancel_write();
+ public int write(void *data, size_t bytes, FreeCb free_cb = null, int64 offset = 0, SeekMode mode = SeekMode.RELATIVE);
+ public int peek(out void *data, out size_t nbytes);
+ public int drop();
+ public size_t writable_size();
+ public size_t readable_size();
+
+ public void set_state_callback(NotifyCb cb = null);
+ public void set_write_callback(RequestCb cb = null);
+ public void set_read_callback(RequestCb cb = null);
+ public void set_overflow_callback(NotifyCb cb = null);
+ public void set_underflow_callback(NotifyCb cb = null);
+ public void set_started_callback(NotifyCb cb = null);
+ public void set_latency_update_callback(NotifyCb cb = null);
+ public void set_moved_callback(NotifyCb cb = null);
+ public void set_suspended_callback(NotifyCb cb = null);
+ public void set_event_callback(EventCb cb = null);
+ public void set_buffer_attr_callback(NotifyCb cb = null);
+
+ public Operation? drain(SuccessCb cb = null);
+ public Operation? update_timing_info(SuccessCb cb = null);
+
+ public Operation? cork(bool b, SuccessCb cb = null);
+ public Operation? flush(SuccessCb cb = null);
+ public Operation? prebuf(SuccessCb cb = null);
+ public Operation? trigger(SuccessCb cb = null);
+
+ public Operation? set_name(string name, SuccessCb cb = null);
+ public Operation? set_buffer_attr(BufferAttr attr, SuccessCb cb = null);
+ public Operation? update_sample_rate(uint32 rate, SuccessCb cb = null);
+
+ [CCode (array_length = false)]
+ public Operation? proplist_remove(string[] keys, SuccessCb cb = null);
+ public Operation? proplist_update(UpdateMode mode, Proplist pl, SuccessCb cb = null);
+
+ public unowned TimingInfo? get_timing_info();
+ public int get_time(out usec u);
+ public int get_latency(out usec u, out bool negative = null);
+
+ public unowned SampleSpec? get_sample_spec();
+ public unowned ChannelMap? get_channel_map();
+ public unowned BufferAttr? get_buffer_attr();
+
+ public int set_monitor_stream(uint32 sink_input);
+ public uint32 get_monitor_stream();
+ }
+
+ [CCode (cname="pa_sink_port_info")]
+ public struct SinkPortInfo {
+ string name;
+ string description;
+ uint32 priority;
+ }
+
+ [CCode (cname="pa_sink_info")]
+ public struct SinkInfo {
+ string name;
+ uint32 index;
+ string description;
+ SampleSpec sample_spec;
+ ChannelMap channel_map;
+ uint32 owner_module;
+ CVolume volume;
+ int mute;
+ uint32 monitor_source;
+ string monitor_source_name;
+ usec latency;
+ string driver;
+ SinkFlags flags;
+ Proplist proplist;
+ usec configured_latency;
+ Volume base_volume;
+ SinkState state;
+ uint32 n_volume_steps;
+ uint32 card;
+ uint32 n_ports;
+ SinkPortInfo*[] ports;
+ SinkPortInfo* active_port;
+ }
+
+ [CCode (cname="pa_source_port_info")]
+ public struct SourcePortInfo {
+ string name;
+ string description;
+ uint32 priority;
+ }
+
+ [CCode (cname="pa_source_info")]
+ public struct SourceInfo {
+ string name;
+ uint32 index;
+ string description;
+ SampleSpec sample_spec;
+ ChannelMap channel_map;
+ uint32 owner_module;
+ CVolume volume;
+ int mute;
+ uint32 monitor_of_sink;
+ string monitor_of_sink_name;
+ usec latency;
+ string driver;
+ SourceFlags flags;
+ Proplist proplist;
+ usec configured_latency;
+ Volume base_volume;
+ SourceState state;
+ uint32 n_volume_steps;
+ uint32 card;
+ uint32 n_ports;
+ SourcePortInfo*[] ports;
+ SourcePortInfo* active_port;
+ }
+
+ [CCode (cname="pa_server_info")]
+ public struct ServerInfo {
+ string user_name;
+ string host_name;
+ string server_version;
+ string server_name;
+ SampleSpec sample_spec;
+ string default_sink_name;
+ string default_source_name;
+ ChannelMap channel_map;
+ }
+
+ [CCode (cname="pa_module_info")]
+ public struct ModuleInfo {
+ uint32 index;
+ string name;
+ string argument;
+ uint32 n_used;
+ Proplist proplist;
+ }
+
+ [CCode (cname="pa_client_info")]
+ public struct ClientInfo {
+ uint32 index;
+ string name;
+ uint32 owner_module;
+ string driver;
+ Proplist proplist;
+ }
+
+ [CCode (cname="pa_card_profile_info")]
+ public struct CardProfileInfo {
+ string name;
+ string description;
+ uint32 n_sinks;
+ uint32 n_sources;
+ uint32 priority;
+ }
+
+ [CCode (cname="pa_card_info")]
+ public struct CardInfo {
+ uint32 index;
+ string name;
+ uint32 owner_module;
+ string driver;
+ uint32 n_profiles;
+ CardProfileInfo profiles[];
+ CardProfileInfo *active_profile;
+ Proplist proplist;
+ }
+
+ [CCode (cname="pa_sink_input_info")]
+ public struct SinkInputInfo {
+ uint32 index;
+ string name;
+ uint32 owner_module;
+ uint32 client;
+ uint32 sink;
+ SampleSpec sample_spec;
+ ChannelMap channel_map;
+ CVolume volume;
+ uint32 buffer_usec;
+ uint32 sink_usec;
+ string resample_method;
+ string driver;
+ int mute;
+ Proplist proplist;
+ }
+
+ [CCode (cname="pa_source_output_info")]
+ public struct SourceOutputInfo {
+ uint32 index;
+ string name;
+ uint32 owner_module;
+ uint32 client;
+ uint32 source;
+ SampleSpec sample_spec;
+ ChannelMap channel_map;
+ uint32 buffer_usec;
+ uint32 sink_usec;
+ string resample_method;
+ string driver;
+ Proplist proplist;
+ }
+
+ [CCode (cname="pa_stat_info")]
+ public struct StatInfo {
+ uint32 memblock_total;
+ uint32 memblock_total_size;
+ uint32 memblock_allocated;
+ uint32 memblock_allocated_size;
+ uint32 scache_size;
+ }
+
+ [CCode (cname="pa_sample_info")]
+ public struct SampleInfo {
+ uint32 index;
+ string name;
+ CVolume volume;
+ SampleSpec sample_spec;
+ ChannelMap channel_map;
+ usec duration;
+ uint32 bytes;
+ bool lazy;
+ string filename;
+ Proplist proplist;
+ }
+
+ [CCode (cname="pa_sink_flags_t", cprefix="PA_SINK_")]
+ public enum SinkFlags {
+ HW_VOLUME_CTRL,
+ LATENCY,
+ HARDWARE,
+ NETWORK,
+ HW_MUTE_CTRL,
+ DECIBEL_VOLUME,
+ FLAT_VOLUME,
+ DYNAMIC_LATENCY
+ }
+
+ [CCode (cname="pa_source_flags_t", cprefix="PA_SOURCE_")]
+ public enum SourceFlags {
+ HW_VOLUME_CTRL,
+ LATENCY,
+ HARDWARE,
+ NETWORK,
+ HW_MUTE_CTRL,
+ DECIBEL_VOLUME,
+ DYNAMIC_LATENCY
+ }
+
+ [CCode (cname="pa_sink_state_t", cprefix="PA_SINK_")]
+ public enum SinkState {
+ INVALID_STATE,
+ RUNNING,
+ IDLE,
+ SUSPENDED;
+
+ [CCode (cname="PA_SINK_IS_OPENED")]
+ public bool IS_OPENED();
+ }
+
+ [CCode (cname="pa_source_state_t", cprefix="PA_SOURCE_")]
+ public enum SourceState {
+ INVALID_STATE,
+ RUNNING,
+ IDLE,
+ SUSPENDED;
+
+ [CCode (cname="PA_SOURCE_IS_OPENED")]
+ public bool IS_OPENED();
+ }