From c04e4088445fc4f29c9d157e51338ebb75d58d70 Mon Sep 17 00:00:00 2001 From: Roland Winklmeier Date: Sun, 13 Apr 2014 18:49:41 +0200 Subject: [PATCH] Move CVoiceVatlib into its own thread in sample_voice_client refs #183 --- samples/voiceclient/main.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/samples/voiceclient/main.cpp b/samples/voiceclient/main.cpp index ba117d576..bb6915da1 100644 --- a/samples/voiceclient/main.cpp +++ b/samples/voiceclient/main.cpp @@ -4,24 +4,36 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "blackcore/voice_vatlib.h" +#include "blackmisc/blackmiscfreefunctions.h" #include "client.h" #include "reader.h" #include #include +#include using namespace BlackMisc::Audio; int main(int argc, char *argv[]) { QCoreApplication app (argc, argv); - Client client(&app); + BlackMisc::registerMetadata(); + BlackCore::IVoice *m_voice = new BlackCore::CVoiceVatlib(); + QThread m_voiceThread; + m_voice->moveToThread(&m_voiceThread); + m_voiceThread.start(); LineReader reader; QObject::connect(&reader, SIGNAL(command(const QString &)), &client, SLOT(command(const QString &))); - QObject::connect(&client, SIGNAL(quit()), &reader, SLOT(terminate())); - QObject::connect(&client, SIGNAL(quit()), &app, SLOT(quit())); + QObject::connect(&client, &Client::quit, [&] () + { + qDebug() << "Shutting down..."; + reader.terminate(); + m_voiceThread.quit(); + m_voiceThread.wait(5000); + qApp->quit(); + }); reader.start(); app.exec();