summaryrefslogtreecommitdiffstats
path: root/app/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'app/main.cpp')
-rw-r--r--app/main.cpp25
1 files changed, 23 insertions, 2 deletions
diff --git a/app/main.cpp b/app/main.cpp
index d89287c..76e755b 100644
--- a/app/main.cpp
+++ b/app/main.cpp
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2016 The Qt Company Ltd.
- * Copyright (C) 2016 Konsulko Group
+ * Copyright (C) 2016,2017 Konsulko Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,9 +15,13 @@
* limitations under the License.
*/
+#include "paclient.h"
+#include "pacontrolmodel.h"
+
#include <QtCore/QDebug>
#include <QtCore/QDir>
#include <QtCore/QStandardPaths>
+#include <QtCore/QThread>
#include <QtGui/QGuiApplication>
#include <QtQml/QQmlApplicationEngine>
#include <QtQml/QQmlContext>
@@ -26,7 +30,6 @@
#include <QtQuick/qquickitem.h>
#include <QtQuick/qquickview.h>
-#include "pacontrolmodel.h"
#ifdef HAVE_LIBHOMESCREEN
#include <libhomescreen.hpp>
@@ -47,10 +50,28 @@ int main(int argc, char *argv[])
QQuickStyle::setStyle("AGL");
+ // Fire up PA client QThread
+ QThread* pat = new QThread;
+ PaClient* client = new PaClient();
+ client->moveToThread(pat);
+ pat->start();
+
+ // Register the PA Control Model
qmlRegisterType<PaControlModel>("PaControlModel", 1, 0, "PaControlModel");
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/Mixer.qml")));
+ // Find the instantiated model QObject and connect the signals/slots
+ QList<QObject *> mobjs = engine.rootObjects();
+ PaControlModel *pacm = mobjs.first()->findChild<PaControlModel *>("pacm");
+ QObject::connect(client, SIGNAL(controlAdded(int, QString, int, int, const char *, int)),
+ pacm, SLOT(addOneControl(int, QString, int, int, const char *, int)));
+ QObject::connect(pacm, SIGNAL(volumeChanged(uint32_t, uint32_t, uint32_t, uint32_t)),
+ client, SLOT(setVolume(uint32_t, uint32_t, uint32_t, uint32_t)));
+
+ // Initalize PA client
+ client->init();
+
return app.exec();
}