summaryrefslogtreecommitdiffstats
path: root/src/broadcast
diff options
context:
space:
mode:
authorStéphane Lepin <stephane.lepin@gmail.com>2017-08-23 01:54:56 +0200
committerStéphane Lepin <stephane.lepin@gmail.com>2017-08-23 01:54:56 +0200
commit68b18b5dbcb28a6f3066ca8cfded5548eb8e19d7 (patch)
treef543faf93794cf484fa47c3a33dfb400a18990d5 /src/broadcast
parentb99d4a5350ef7019a2bab89adf2715e6c384e055 (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.cpp21
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();
}
}
}