1use std::os::raw::c_char;
17use num_derive::{FromPrimitive, ToPrimitive};
18
19#[repr(C)]
26#[derive(Debug, Copy, Clone, PartialEq, Eq)]
27#[derive(FromPrimitive, ToPrimitive)]
28#[allow(non_camel_case_types)]
29pub enum pa_error_code_t {
30 Ok = 0,
32 Access,
34 Command,
36 Invalid,
38 Exist,
40 NoEntity,
42 ConnectionRefused,
44 Protocol,
46 Timeout,
47 AuthKey,
49 Internal,
50 ConnectionTerminated,
51 Killed,
53 InvalidServer,
54 ModInitFailed,
55 BadState,
56 NoData,
57 Version,
59 TooLarge,
61 NotSupported,
63 Unknown,
65 NoExtension,
67 Obsolete,
69 NotImplemented,
71 Forked,
73 IO,
75 Busy,
77}
78
79pub const PA_ERR_MAX: usize = 27;
80
81pub const PA_OK: pa_error_code_t = pa_error_code_t::Ok;
82pub const PA_ERR_ACCESS: pa_error_code_t = pa_error_code_t::Access;
83pub const PA_ERR_COMMAND: pa_error_code_t = pa_error_code_t::Command;
84pub const PA_ERR_INVALID: pa_error_code_t = pa_error_code_t::Invalid;
85pub const PA_ERR_EXIST: pa_error_code_t = pa_error_code_t::Exist;
86pub const PA_ERR_NOENTITY: pa_error_code_t = pa_error_code_t::NoEntity;
87pub const PA_ERR_CONNECTIONREFUSED: pa_error_code_t = pa_error_code_t::ConnectionRefused;
88pub const PA_ERR_PROTOCOL: pa_error_code_t = pa_error_code_t::Protocol;
89pub const PA_ERR_TIMEOUT: pa_error_code_t = pa_error_code_t::Timeout;
90pub const PA_ERR_AUTHKEY: pa_error_code_t = pa_error_code_t::AuthKey;
91pub const PA_ERR_INTERNAL: pa_error_code_t = pa_error_code_t::Internal;
92pub const PA_ERR_CONNECTIONTERMINATED: pa_error_code_t = pa_error_code_t::ConnectionTerminated;
93pub const PA_ERR_KILLED: pa_error_code_t = pa_error_code_t::Killed;
94pub const PA_ERR_INVALIDSERVER: pa_error_code_t = pa_error_code_t::InvalidServer;
95pub const PA_ERR_MODINITFAILED: pa_error_code_t = pa_error_code_t::ModInitFailed;
96pub const PA_ERR_BADSTATE: pa_error_code_t = pa_error_code_t::BadState;
97pub const PA_ERR_NODATA: pa_error_code_t = pa_error_code_t::NoData;
98pub const PA_ERR_VERSION: pa_error_code_t = pa_error_code_t::Version;
99pub const PA_ERR_TOOLARGE: pa_error_code_t = pa_error_code_t::TooLarge;
100pub const PA_ERR_NOTSUPPORTED: pa_error_code_t = pa_error_code_t::NotSupported;
101pub const PA_ERR_UNKNOWN: pa_error_code_t = pa_error_code_t::Unknown;
102pub const PA_ERR_NOEXTENSION: pa_error_code_t = pa_error_code_t::NoExtension;
103pub const PA_ERR_OBSOLETE: pa_error_code_t = pa_error_code_t::Obsolete;
104pub const PA_ERR_NOTIMPLEMENTED: pa_error_code_t = pa_error_code_t::NotImplemented;
105pub const PA_ERR_FORKED: pa_error_code_t = pa_error_code_t::Forked;
106pub const PA_ERR_IO: pa_error_code_t = pa_error_code_t::IO;
107pub const PA_ERR_BUSY: pa_error_code_t = pa_error_code_t::Busy;
108
109#[link(name = "pulse")]
110extern "C" {
111 pub fn pa_strerror(error: i32) -> *const c_char;
112}