summaryrefslogtreecommitdiff
path: root/src/lib.rs
blob: 805a7cdb009549381bfe1e022a47884287dbb3df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT

#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
#![cfg_attr(feature = "cargo-clippy", allow(approx_constant, type_complexity, unreadable_literal))]

extern crate libc;

#[allow(unused_imports)]
use libc::{c_int, c_char, c_uchar, c_float, c_uint, c_double,
    c_short, c_ushort, c_long, c_ulong,
    c_void, size_t, ssize_t, intptr_t, uintptr_t, time_t, FILE};

#[allow(unused_imports)]
use glib::{gboolean, gconstpointer, gpointer, GType};

// Enums
pub type GSSDPError = c_int;
pub const GSSDP_ERROR_NO_IP_ADDRESS: GSSDPError = 0;
pub const GSSDP_ERROR_FAILED: GSSDPError = 1;

// Constants
pub const GSSDP_ALL_RESOURCES: *const c_char = b"ssdp:all\0" as *const u8 as *const c_char;

// Records
#[repr(C)]
#[derive(Copy, Clone)]
pub struct GSSDPClientClass {
    pub parent_class: gobject::GObjectClass,
    pub _gssdp_reserved1: Option<unsafe extern "C" fn()>,
    pub _gssdp_reserved2: Option<unsafe extern "C" fn()>,
    pub _gssdp_reserved3: Option<unsafe extern "C" fn()>,
    pub _gssdp_reserved4: Option<unsafe extern "C" fn()>,
}

impl ::std::fmt::Debug for GSSDPClientClass {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GSSDPClientClass @ {:?}", self as *const _))
         .field("parent_class", &self.parent_class)
         .field("_gssdp_reserved1", &self._gssdp_reserved1)
         .field("_gssdp_reserved2", &self._gssdp_reserved2)
         .field("_gssdp_reserved3", &self._gssdp_reserved3)
         .field("_gssdp_reserved4", &self._gssdp_reserved4)
         .finish()
    }
}

#[repr(C)]
pub struct GSSDPClientPrivate(c_void);

impl ::std::fmt::Debug for GSSDPClientPrivate {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GSSDPClientPrivate @ {:?}", self as *const _))
         .finish()
    }
}

#[repr(C)]
#[derive(Copy, Clone)]
pub struct GSSDPResourceBrowserClass {
    pub parent_class: gobject::GObjectClass,
    pub resource_available: Option<unsafe extern "C" fn(*mut GSSDPResourceBrowser, *const c_char, *const glib::GList)>,
    pub resource_unavailable: Option<unsafe extern "C" fn(*mut GSSDPResourceBrowser, *const c_char)>,
    pub _gssdp_reserved1: Option<unsafe extern "C" fn()>,
    pub _gssdp_reserved2: Option<unsafe extern "C" fn()>,
    pub _gssdp_reserved3: Option<unsafe extern "C" fn()>,
    pub _gssdp_reserved4: Option<unsafe extern "C" fn()>,
}

impl ::std::fmt::Debug for GSSDPResourceBrowserClass {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GSSDPResourceBrowserClass @ {:?}", self as *const _))
         .field("parent_class", &self.parent_class)
         .field("resource_available", &self.resource_available)
         .field("resource_unavailable", &self.resource_unavailable)
         .field("_gssdp_reserved1", &self._gssdp_reserved1)
         .field("_gssdp_reserved2", &self._gssdp_reserved2)
         .field("_gssdp_reserved3", &self._gssdp_reserved3)
         .field("_gssdp_reserved4", &self._gssdp_reserved4)
         .finish()
    }
}

#[repr(C)]
pub struct GSSDPResourceBrowserPrivate(c_void);

impl ::std::fmt::Debug for GSSDPResourceBrowserPrivate {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GSSDPResourceBrowserPrivate @ {:?}", self as *const _))
         .finish()
    }
}

#[repr(C)]
#[derive(Copy, Clone)]
pub struct GSSDPResourceGroupClass {
    pub parent_class: gobject::GObjectClass,
    pub _gssdp_reserved1: Option<unsafe extern "C" fn()>,
    pub _gssdp_reserved2: Option<unsafe extern "C" fn()>,
    pub _gssdp_reserved3: Option<unsafe extern "C" fn()>,
    pub _gssdp_reserved4: Option<unsafe extern "C" fn()>,
}

impl ::std::fmt::Debug for GSSDPResourceGroupClass {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GSSDPResourceGroupClass @ {:?}", self as *const _))
         .field("parent_class", &self.parent_class)
         .field("_gssdp_reserved1", &self._gssdp_reserved1)
         .field("_gssdp_reserved2", &self._gssdp_reserved2)
         .field("_gssdp_reserved3", &self._gssdp_reserved3)
         .field("_gssdp_reserved4", &self._gssdp_reserved4)
         .finish()
    }
}

#[repr(C)]
pub struct GSSDPResourceGroupPrivate(c_void);

impl ::std::fmt::Debug for GSSDPResourceGroupPrivate {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GSSDPResourceGroupPrivate @ {:?}", self as *const _))
         .finish()
    }
}

// Classes
#[repr(C)]
#[derive(Copy, Clone)]
pub struct GSSDPClient {
    pub parent: gobject::GObject,
    pub priv_: *mut GSSDPClientPrivate,
}

impl ::std::fmt::Debug for GSSDPClient {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GSSDPClient @ {:?}", self as *const _))
         .field("parent", &self.parent)
         .field("priv_", &self.priv_)
         .finish()
    }
}

#[repr(C)]
#[derive(Copy, Clone)]
pub struct GSSDPResourceBrowser {
    pub parent: gobject::GObject,
    pub priv_: *mut GSSDPResourceBrowserPrivate,
}

impl ::std::fmt::Debug for GSSDPResourceBrowser {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GSSDPResourceBrowser @ {:?}", self as *const _))
         .field("parent", &self.parent)
         .field("priv_", &self.priv_)
         .finish()
    }
}

#[repr(C)]
#[derive(Copy, Clone)]
pub struct GSSDPResourceGroup {
    pub parent: gobject::GObject,
    pub priv_: *mut GSSDPResourceGroupPrivate,
}

impl ::std::fmt::Debug for GSSDPResourceGroup {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GSSDPResourceGroup @ {:?}", self as *const _))
         .field("parent", &self.parent)
         .field("priv_", &self.priv_)
         .finish()
    }
}

extern "C" {

    //=========================================================================
    // GSSDPClient
    //=========================================================================
    pub fn gssdp_client_get_type() -> GType;
    pub fn gssdp_client_new(main_context: *mut glib::GMainContext, iface: *const c_char, error: *mut *mut glib::GError) -> *mut GSSDPClient;
    pub fn gssdp_client_new_with_port(iface: *const c_char, msearch_port: u16, error: *mut *mut glib::GError) -> *mut GSSDPClient;
    pub fn gssdp_client_add_cache_entry(client: *mut GSSDPClient, ip_address: *const c_char, user_agent: *const c_char);
    pub fn gssdp_client_append_header(client: *mut GSSDPClient, name: *const c_char, value: *const c_char);
    pub fn gssdp_client_clear_headers(client: *mut GSSDPClient);
    pub fn gssdp_client_get_active(client: *mut GSSDPClient) -> gboolean;
    pub fn gssdp_client_get_host_ip(client: *mut GSSDPClient) -> *const c_char;
    pub fn gssdp_client_get_interface(client: *mut GSSDPClient) -> *const c_char;
    pub fn gssdp_client_get_main_context(client: *mut GSSDPClient) -> *mut glib::GMainContext;
    pub fn gssdp_client_get_network(client: *mut GSSDPClient) -> *const c_char;
    pub fn gssdp_client_get_server_id(client: *mut GSSDPClient) -> *const c_char;
    pub fn gssdp_client_guess_user_agent(client: *mut GSSDPClient, ip_address: *const c_char) -> *const c_char;
    pub fn gssdp_client_remove_header(client: *mut GSSDPClient, name: *const c_char);
    pub fn gssdp_client_set_network(client: *mut GSSDPClient, network: *const c_char);
    pub fn gssdp_client_set_server_id(client: *mut GSSDPClient, server_id: *const c_char);

    //=========================================================================
    // GSSDPResourceBrowser
    //=========================================================================
    pub fn gssdp_resource_browser_get_type() -> GType;
    pub fn gssdp_resource_browser_new(client: *mut GSSDPClient, target: *const c_char) -> *mut GSSDPResourceBrowser;
    pub fn gssdp_resource_browser_get_active(resource_browser: *mut GSSDPResourceBrowser) -> gboolean;
    pub fn gssdp_resource_browser_get_client(resource_browser: *mut GSSDPResourceBrowser) -> *mut GSSDPClient;
    pub fn gssdp_resource_browser_get_mx(resource_browser: *mut GSSDPResourceBrowser) -> c_ushort;
    pub fn gssdp_resource_browser_get_target(resource_browser: *mut GSSDPResourceBrowser) -> *const c_char;
    pub fn gssdp_resource_browser_rescan(resource_browser: *mut GSSDPResourceBrowser) -> gboolean;
    pub fn gssdp_resource_browser_set_active(resource_browser: *mut GSSDPResourceBrowser, active: gboolean);
    pub fn gssdp_resource_browser_set_mx(resource_browser: *mut GSSDPResourceBrowser, mx: c_ushort);
    pub fn gssdp_resource_browser_set_target(resource_browser: *mut GSSDPResourceBrowser, target: *const c_char);

    //=========================================================================
    // GSSDPResourceGroup
    //=========================================================================
    pub fn gssdp_resource_group_get_type() -> GType;
    pub fn gssdp_resource_group_new(client: *mut GSSDPClient) -> *mut GSSDPResourceGroup;
    pub fn gssdp_resource_group_add_resource(resource_group: *mut GSSDPResourceGroup, target: *const c_char, usn: *const c_char, locations: *mut glib::GList) -> c_uint;
    pub fn gssdp_resource_group_add_resource_simple(resource_group: *mut GSSDPResourceGroup, target: *const c_char, usn: *const c_char, location: *const c_char) -> c_uint;
    pub fn gssdp_resource_group_get_available(resource_group: *mut GSSDPResourceGroup) -> gboolean;
    pub fn gssdp_resource_group_get_client(resource_group: *mut GSSDPResourceGroup) -> *mut GSSDPClient;
    pub fn gssdp_resource_group_get_max_age(resource_group: *mut GSSDPResourceGroup) -> c_uint;
    pub fn gssdp_resource_group_get_message_delay(resource_group: *mut GSSDPResourceGroup) -> c_uint;
    pub fn gssdp_resource_group_remove_resource(resource_group: *mut GSSDPResourceGroup, resource_id: c_uint);
    pub fn gssdp_resource_group_set_available(resource_group: *mut GSSDPResourceGroup, available: gboolean);
    pub fn gssdp_resource_group_set_max_age(resource_group: *mut GSSDPResourceGroup, max_age: c_uint);
    pub fn gssdp_resource_group_set_message_delay(resource_group: *mut GSSDPResourceGroup, message_delay: c_uint);

    //=========================================================================
    // Other functions
    //=========================================================================
    pub fn gssdp_error_quark() -> glib::GQuark;

}