* Fix a typo in the dpkg changelog.
[deb_shairplay.git] / AirTV-Qt / mainapplication.cpp
index 477f7824a863d6cf993dd36d11fbbc544cec6af9..f7b3e4baaa76a20c924520126ce0c8b060d4e558 100644 (file)
@@ -1,16 +1,15 @@
 #include "mainapplication.h"
 
 #include <QDebug>
+#include <QCoreApplication>
 
 MainApplication::MainApplication(QObject *parent) :
     QObject(parent)
 {
     raopService = new RaopService(0);
+    dnssdService = new DnssdService(0);
     trayIconMenu = new QMenu(0);
 
-    // Initialize the service
-    raopService->init();
-
     quitAction = new QAction(tr("&Quit"), trayIconMenu);
     connect(quitAction, SIGNAL(triggered()), this, SIGNAL(quitRequested()));
     trayIconMenu->addAction(quitAction);
@@ -28,14 +27,33 @@ MainApplication::~MainApplication()
     delete raopService;
 }
 
-void MainApplication::start()
+bool MainApplication::start()
 {
-    raopService->start();
+    // Initialize the service
+    bool initSuccess = false;
+    initSuccess = raopService->init(10, &m_callbacks);
+    if(!initSuccess) {
+        qDebug() << "Error initializing raop service";
+        return false;
+    }
+    initSuccess &= dnssdService->init();
+    if(!initSuccess) {
+        qDebug() << "Error initializing dnssd service";
+        return false;
+    }
+
+    char chwaddr[] = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB };
+    QByteArray hwaddr(chwaddr, sizeof(chwaddr));
+
+    raopService->start(5000, hwaddr);
+    dnssdService->registerRaop("Shairplay", 5000, hwaddr);
     trayIcon->show();
+    return true;
 }
 
 void MainApplication::stop()
 {
+    dnssdService->unregisterRaop();
     raopService->stop();
     trayIcon->hide();
 }