Give errors instead of crashing if dnssd service init fails.
[deb_shairplay.git] / AirTV-Qt / mainapplication.cpp
index 62b3f62857f2c39b46f91189f9fef765525428ce..f7b3e4baaa76a20c924520126ce0c8b060d4e558 100644 (file)
@@ -1,6 +1,7 @@
 #include "mainapplication.h"
 
 #include <QDebug>
+#include <QCoreApplication>
 
 MainApplication::MainApplication(QObject *parent) :
     QObject(parent)
@@ -9,10 +10,6 @@ MainApplication::MainApplication(QObject *parent) :
     dnssdService = new DnssdService(0);
     trayIconMenu = new QMenu(0);
 
-    // Initialize the service
-    raopService->init(10, &m_callbacks);
-    dnssdService->init();
-
     quitAction = new QAction(tr("&Quit"), trayIconMenu);
     connect(quitAction, SIGNAL(triggered()), this, SIGNAL(quitRequested()));
     trayIconMenu->addAction(quitAction);
@@ -30,14 +27,28 @@ MainApplication::~MainApplication()
     delete raopService;
 }
 
-void MainApplication::start()
+bool MainApplication::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()