2
* Header for abstraction of Multicast DNS for DAAP sharing
4
* Copyright (C) 2005 Charles Schmidt <cschmidt2@emich.edu>
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
#ifndef __RB_DAAP_MDNS_H
23
#define __RB_DAAP_MDNS_H
27
#define RB_DAAP_MDNS_ERROR rb_daap_mdns_error_quark ()
28
GQuark rb_daap_mdns_error_quark (void);
32
RB_DAAP_MDNS_ERROR_NOT_RUNNING,
33
RB_DAAP_MDNS_ERROR_FAILED,
36
/* discovering hosts */
37
typedef gpointer RBDAAPmDNSBrowser;
40
RB_DAAP_MDNS_BROWSER_ADD_SERVICE = 1,
41
RB_DAAP_MDNS_BROWSER_REMOVE_SERVICE
42
} RBDAAPmDNSBrowserStatus;
44
typedef void (* RBDAAPmDNSBrowserCallback) (RBDAAPmDNSBrowser browser,
45
RBDAAPmDNSBrowserStatus status,
46
const gchar *service_name,
49
rb_daap_mdns_browse (RBDAAPmDNSBrowser *browser,
50
RBDAAPmDNSBrowserCallback callback,
54
rb_daap_mdns_browse_cancel (RBDAAPmDNSBrowser browser);
57
typedef gpointer RBDAAPmDNSResolver;
60
RB_DAAP_MDNS_RESOLVER_FOUND = 1,
61
RB_DAAP_MDNS_RESOLVER_TIMEOUT
62
} RBDAAPmDNSResolverStatus;
64
typedef void (* RBDAAPmDNSResolverCallback) (RBDAAPmDNSResolver resolver,
65
RBDAAPmDNSResolverStatus status,
66
const gchar *service_name,
70
gboolean password_protected,
74
rb_daap_mdns_resolve (RBDAAPmDNSResolver *resolver,
76
RBDAAPmDNSResolverCallback callback,
81
rb_daap_mdns_resolve_cancel (RBDAAPmDNSResolver resolver);
84
typedef gpointer RBDAAPmDNSPublisher;
87
RB_DAAP_MDNS_PUBLISHER_STARTED = 1,
88
RB_DAAP_MDNS_PUBLISHER_COLLISION
89
} RBDAAPmDNSPublisherStatus;
91
typedef gchar * (* RBDAAPmDNSPublisherCallback) (RBDAAPmDNSPublisher publisher,
92
RBDAAPmDNSPublisherStatus status,
96
rb_daap_mdns_publish (RBDAAPmDNSPublisher *publisher,
99
RBDAAPmDNSPublisherCallback callback,
103
rb_daap_mdns_publish_cancel (RBDAAPmDNSPublisher publisher);
106
#endif /* __RB_DAAP_MDNS_H */