summaryrefslogtreecommitdiffstats
path: root/src/bus.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bus.cpp')
-rw-r--r--src/bus.cpp40
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;
+}