diff options
author | Kazumasa Mitsunari <knimitz@witz-inc.co.jp> | 2017-10-23 21:37:30 +0900 |
---|---|---|
committer | Kazumasa Mitsunari <knimitz@witz-inc.co.jp> | 2017-10-23 21:47:41 +0900 |
commit | 4153b3eef4907427a27e318a21f976132ca9da3b (patch) | |
tree | 596e0498b2d3374549ba19bec11d536d23adc204 /app/main.cpp | |
parent | 283a0f1ddd10cfd96d488f0701537b83b4ebe889 (diff) |
Adopt sound manager feature to get sound right
Adopt sound manager feature to get sound right
In the future, it is better to be compatible to switch AAAA and Sound Manager
qlibsoundmanager will be removed when qlibsoundmanager repository is created
It is OK to replace library to QML websocket class
Change-Id: I29501e68923e95a2ca889b87f5d59ea5195c71bd
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
Diffstat (limited to 'app/main.cpp')
-rw-r--r-- | app/main.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/app/main.cpp b/app/main.cpp index 23966ca..7c967c2 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -27,8 +27,10 @@ #include <QQuickWindow> #include "PresetDataObject.h" #include "qlibwindowmanager.h" +#include "qlibsoundmanager.h" static QLibWindowmanager* qwm; +static QLibSoundmanager* smw; static std::string myname = std::string("Radio"); int main(int argc, char *argv[]) @@ -91,6 +93,8 @@ int main(int argc, char *argv[]) context->setContextProperty(QStringLiteral("bindingAddress"), bindingAddress); qwm = new QLibWindowmanager(); + smw = new QLibSoundmanager(); + // WindowManager if(qwm->init(port,secret) != 0){ exit(EXIT_FAILURE); @@ -102,16 +106,28 @@ int main(int argc, char *argv[]) fprintf(stderr, "Surface got syncDraw!\n"); qwm->endDraw(myname.c_str()); }); - qwm->set_event_handler(QLibWindowmanager::Event_FlushDraw, [](json_object *object) { - fprintf(stderr, "Surface got flushDraw!\n");; + qwm->set_event_handler(QLibWindowmanager::Event_FlushDraw, [&engine, smw](json_object *object) { + fprintf(stderr, "Surface got flushDraw!\n"); + QObject *root = engine.rootObjects().first(); + int sourceID = root->property("sourceID").toInt(); + smw->connect(sourceID, "default"); }); + // SoundManager, event handler is set inside smw + smw->init(port, secret); + + engine.rootContext()->setContextProperty("smw",smw); + // Loading QML File engine.load(QUrl(QStringLiteral("qrc:/Radio.qml"))); QObject *root = engine.rootObjects().first(); QQuickWindow *window = qobject_cast<QQuickWindow *>(root); QObject::connect(window, SIGNAL(frameSwapped()), qwm, SLOT(slotActivateSurface())); // This should be disconnected, but when... + QObject::connect(smw, SIGNAL(reply(QVariant)), + root, SLOT(slotReply(QVariant))); + QObject::connect(smw, SIGNAL(event(QVariant, QVariant)), + root, SLOT(slotEvent(QVariant, QVariant))); } return app.exec(); |