Imported Upstream version 0.9.0
[deb_shairplay.git] / src / bindings / qt4 / dnssdservice.cpp
1 /**
2 * Copyright (C) 2012 Juho Vähä-Herttua
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining
5 * a copy of this software and associated documentation files (the
6 * "Software"), to deal in the Software without restriction, including
7 * without limitation the rights to use, copy, modify, merge, publish,
8 * distribute, sublicense, and/or sell copies of the Software, and to
9 * permit persons to whom the Software is furnished to do so, subject to
10 * the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be included
13 * in all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 */
23
24 #include "dnssdservice.h"
25
26 DnssdService::DnssdService(QObject *parent) :
27 QObject(parent)
28 {
29 }
30
31 bool DnssdService::init()
32 {
33 int error;
34 m_dnssd = dnssd_init(&error);
35 if (!m_dnssd) {
36 return false;
37 }
38 return true;
39 }
40
41 DnssdService::~DnssdService()
42 {
43 dnssd_destroy(m_dnssd);
44 }
45
46 void DnssdService::registerRaop(const QString & name, quint16 port, const QByteArray & hwaddr)
47 {
48 dnssd_register_raop(m_dnssd, name.toUtf8().data(), port, hwaddr.data(), hwaddr.size(), 0);
49 }
50
51 void DnssdService::unregisterRaop()
52 {
53 dnssd_unregister_raop(m_dnssd);
54 }
55
56 void DnssdService::registerAirplay(const QString &name, quint16 port, const QByteArray &hwaddr)
57 {
58 dnssd_register_airplay(m_dnssd, name.toUtf8().data(), port, hwaddr.data(), hwaddr.size());
59 }
60
61 void DnssdService::unregisterAirplay()
62 {
63 dnssd_unregister_airplay(m_dnssd);
64 }