Start writing the Qt4 bindings
[deb_shairplay.git] / AirTV-Qt / mainapplication.cpp
1 #include "mainapplication.h"
2
3 #include <QDebug>
4
5 MainApplication::MainApplication(QObject *parent) :
6 QObject(parent)
7 {
8 raopService = new RaopService(0);
9 dnssdService = new DnssdService(0);
10 trayIconMenu = new QMenu(0);
11
12 // Initialize the service
13 raopService->init(10, &m_callbacks);
14 dnssdService->init();
15
16 quitAction = new QAction(tr("&Quit"), trayIconMenu);
17 connect(quitAction, SIGNAL(triggered()), this, SIGNAL(quitRequested()));
18 trayIconMenu->addAction(quitAction);
19
20 // Construct the actual system tray icon
21 trayIcon = new QSystemTrayIcon(this);
22 trayIcon->setContextMenu(trayIconMenu);
23 trayIcon->setIcon(QIcon(":icons/airtv.svg"));
24 }
25
26 MainApplication::~MainApplication()
27 {
28 trayIcon->setContextMenu(0);
29 delete trayIconMenu;
30 delete raopService;
31 }
32
33 void MainApplication::start()
34 {
35 char chwaddr[] = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB };
36 QByteArray hwaddr(chwaddr, sizeof(chwaddr));
37
38 raopService->start(5000, hwaddr);
39 dnssdService->registerRaop("Shairplay", 5000, hwaddr);
40 trayIcon->show();
41 }
42
43 void MainApplication::stop()
44 {
45 dnssdService->unregisterRaop();
46 raopService->stop();
47 trayIcon->hide();
48 }
49
50 void MainApplication::aboutToQuit()
51 {
52 this->stop();
53 }