diff options
Diffstat (limited to 'src/bus.cpp')
-rw-r--r-- | src/bus.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/bus.cpp b/src/bus.cpp new file mode 100644 index 0000000..1dadedb --- /dev/null +++ b/src/bus.cpp @@ -0,0 +1,40 @@ +#include "bus.h" + +#include <QtDBus/QtDBus> + +static const QString SERVICE_NAME("de.bwlehrpool.beamergui"); + +Bus* Bus::_instance = nullptr; + +Bus::Bus(QObject *parent) : QObject(parent), _hasListener(false) +{ + +} + +bool Bus::registerListener() +{ + if (!QDBusConnection::systemBus().isConnected()) { + qDebug() << "Cannot connect to system bus"; + return false; + } + QDBusServiceWatcher *w = new QDBusServiceWatcher("de.bwlehrpool.beamergui", QDBusConnection::systemBus()); + w->setParent(this); + connect(w, &QDBusServiceWatcher::serviceRegistered, [=](const QString &service) { + qDebug() << "Registered Service" << service; + emit serviceConnected(); + }); + return true; +} + +bool Bus::registerService() +{ + if (!QDBusConnection::systemBus().isConnected()) { + qDebug() << "Cannot connect to system bus"; + return false; + } + if (!QDBusConnection::systemBus().registerService(SERVICE_NAME)) { + qDebug() << QDBusConnection::systemBus().lastError().message(); + return false; + } + return true; +} |