diff options
author | Stéphane Lepin <stephane.lepin@gmail.com> | 2017-08-23 01:54:56 +0200 |
---|---|---|
committer | Stéphane Lepin <stephane.lepin@gmail.com> | 2017-08-23 01:54:56 +0200 |
commit | 68b18b5dbcb28a6f3066ca8cfded5548eb8e19d7 (patch) | |
tree | f543faf93794cf484fa47c3a33dfb400a18990d5 /src/broadcast | |
parent | b99d4a5350ef7019a2bab89adf2715e6c384e055 (diff) |
Fix issues with connection status and enabled status
- Connections don't get disabled automatically on failure anymore
- Failed connections are reset to Disconnected status when stopping broadcasting
Diffstat (limited to 'src/broadcast')
-rw-r--r-- | src/broadcast/broadcastmanager.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/broadcast/broadcastmanager.cpp b/src/broadcast/broadcastmanager.cpp index f7091c59f8..1ff9bca4f2 100644 --- a/src/broadcast/broadcastmanager.cpp +++ b/src/broadcast/broadcastmanager.cpp @@ -87,6 +87,12 @@ void BroadcastManager::slotControlEnabled(double v) { slotProfilesChanged(); } else { m_pStatusCO->forceSet(STATUSCO_UNCONNECTED); + QList<BroadcastProfilePtr> profiles = m_pBroadcastSettings->profiles(); + for(BroadcastProfilePtr profile : profiles) { + if(profile->connectionStatus() == BroadcastProfile::STATUS_FAILURE) { + profile->setConnectionStatus(BroadcastProfile::STATUS_UNCONNECTED); + } + } } emit(broadcastEnabled(v > 0.0)); @@ -101,13 +107,16 @@ void BroadcastManager::slotProfileRemoved(BroadcastProfilePtr profile) { } void BroadcastManager::slotProfilesChanged() { - if(m_pBroadcastEnabled->toBool()) { - QVector<NetworkOutputStreamWorkerPtr> workers = m_pNetworkStream->outputWorkers(); - for(NetworkOutputStreamWorkerPtr pWorker : workers) { - ShoutConnectionPtr connection = qSharedPointerCast<ShoutConnection>(pWorker); - if(connection) { - connection->applySettings(); + QVector<NetworkOutputStreamWorkerPtr> workers = m_pNetworkStream->outputWorkers(); + for(NetworkOutputStreamWorkerPtr pWorker : workers) { + ShoutConnectionPtr connection = qSharedPointerCast<ShoutConnection>(pWorker); + if(connection) { + BroadcastProfilePtr profile = connection->profile(); + if(profile->connectionStatus() == BroadcastProfile::STATUS_FAILURE + && !profile->getEnabled()) { + profile->setConnectionStatus(BroadcastProfile::STATUS_UNCONNECTED); } + connection->applySettings(); } } } |