From 9a71d37b3ac25fe784867366bb88a873ff9a8153 Mon Sep 17 00:00:00 2001 From: Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> Date: Mon, 23 Mar 2015 18:24:14 -0400 Subject: [PATCH] video: Handle invalid SHM Also use the Qt5 signals and slots syntax for critical signals Refs #69096 --- src/accountmodel.cpp | 6 +++--- src/private/accountmodel_p.h | 2 +- src/private/shmrenderer.cpp | 7 ++++++- src/private/videorenderermanager.cpp | 4 ++-- xml/callmanager-introspec.xml | 7 +++++++ xml/configurationmanager-introspec.xml | 2 +- 6 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/accountmodel.cpp b/src/accountmodel.cpp index 3711fd66..8aedef08 100644 --- a/src/accountmodel.cpp +++ b/src/accountmodel.cpp @@ -64,8 +64,8 @@ void AccountModelPrivate::init() CallManagerInterface& callManager = DBus::CallManager::instance(); ConfigurationManagerInterface& configurationManager = DBus::ConfigurationManager::instance(); - connect(&configurationManager, SIGNAL(registrationStateChanged(QString,QString, unsigned, QString)),this , - SLOT(slotAccountChanged(QString,QString, unsigned, QString))); + connect(&configurationManager, &ConfigurationManagerInterface::registrationStateChanged,this , + &AccountModelPrivate::slotDaemonAccountChanged); connect(&configurationManager, SIGNAL(accountsChanged()) ,q_ptr, SLOT(updateAccounts()) ); connect(&callManager , SIGNAL(voiceMailNotify(QString,int)) ,this , @@ -208,7 +208,7 @@ Account::RegistrationState AccountModelPrivate::fromDaemonName(const QString& st } ///Account status changed -void AccountModelPrivate::slotAccountChanged(const QString& account, const QString& registration_state, unsigned code, const QString& status) +void AccountModelPrivate::slotDaemonAccountChanged(const QString& account, const QString& registration_state, unsigned code, const QString& status) { Account* a = q_ptr->getById(account.toLatin1()); diff --git a/src/private/accountmodel_p.h b/src/private/accountmodel_p.h index a9cf5fe5..ff5ed1a3 100644 --- a/src/private/accountmodel_p.h +++ b/src/private/accountmodel_p.h @@ -57,7 +57,7 @@ public: static QHash<QByteArray,AccountPlaceHolder*> m_hsPlaceHolder; public Q_SLOTS: - void slotAccountChanged(const QString& account, const QString& registration_state, unsigned code, const QString& status); + void slotDaemonAccountChanged(const QString& account, const QString& registration_state, unsigned code, const QString& status); void slotAccountChanged(Account* a); void slotVoiceMailNotify( const QString& accountID , int count ); void slotAccountPresenceEnabledChanged(bool state); diff --git a/src/private/shmrenderer.cpp b/src/private/shmrenderer.cpp index d35243f7..13e7d63a 100644 --- a/src/private/shmrenderer.cpp +++ b/src/private/shmrenderer.cpp @@ -313,7 +313,12 @@ void Video::ShmRendererPrivate::timedEvents() void Video::ShmRenderer::startRendering() { QMutexLocker locker {mutex()}; - startShm(); + + if (!startShm()) { + qDebug() << "Cannot start rendering on " << d_ptr->m_ShmPath; + return; + } + if (!d_ptr->m_pTimer) { d_ptr->m_pTimer = new QTimer(nullptr); diff --git a/src/private/videorenderermanager.cpp b/src/private/videorenderermanager.cpp index 99c669fd..75621976 100644 --- a/src/private/videorenderermanager.cpp +++ b/src/private/videorenderermanager.cpp @@ -80,8 +80,8 @@ VideoRendererManager::VideoRendererManager():QThread(), d_ptr(new VideoRendererM { VideoManagerInterface& interface = DBus::VideoManager::instance(); connect( &interface , SIGNAL(deviceEvent()) , d_ptr.data(), SLOT(deviceEvent()) ); - connect( &interface , SIGNAL(startedDecoding(QString,QString,int,int,bool)), d_ptr.data(), SLOT(startedDecoding(QString,QString,int,int))); - connect( &interface , SIGNAL(stoppedDecoding(QString,QString,bool)) , d_ptr.data(), SLOT(stoppedDecoding(QString,QString)) ); + connect( &interface , &VideoManagerInterface::startedDecoding, d_ptr.data(), &VideoRendererManagerPrivate::startedDecoding); + connect( &interface , &VideoManagerInterface::stoppedDecoding, d_ptr.data(), &VideoRendererManagerPrivate::stoppedDecoding); } diff --git a/xml/callmanager-introspec.xml b/xml/callmanager-introspec.xml index 0e674230..912b2c3d 100644 --- a/xml/callmanager-introspec.xml +++ b/xml/callmanager-introspec.xml @@ -792,5 +792,12 @@ </tp:docstring> </arg> </signal> + + <signal name="peerHold" tp:name-for-bindings="peerHold"> + <tp:added version="2.0.0"/> + <arg type="s" name="callID" /> + <arg type="b" name="peerHolding" /> + </signal> + </interface> </node> diff --git a/xml/configurationmanager-introspec.xml b/xml/configurationmanager-introspec.xml index a78f2a20..80384a45 100644 --- a/xml/configurationmanager-introspec.xml +++ b/xml/configurationmanager-introspec.xml @@ -532,7 +532,7 @@ <signal name="registrationStateChanged" tp:name-for-bindings="registrationStateChanged"> <arg type="s" name="accountID"/> - <arg type="i" name="registrationState"/> + <arg type="s" name="registrationState"/> <arg type="i" name="registrationDetail"> <tp:docstring> The optional account-type specific message code. 0 when not available. -- GitLab