diff options
author | Stéphane Lepin <stephane.lepin@gmail.com> | 2017-08-24 00:21:30 +0200 |
---|---|---|
committer | Stéphane Lepin <stephane.lepin@gmail.com> | 2017-08-24 00:21:30 +0200 |
commit | 832f1448809c1c9d384d37ce7d886597405e5a2a (patch) | |
tree | 5e379647eed36c4701c7f3ff33bbe079d878567e /src/broadcast | |
parent | 1a18f75f5f2c9bead9aa4d7a82ac71c1fcb2d9e6 (diff) |
Add warning state in status control object + update shade
Diffstat (limited to 'src/broadcast')
-rw-r--r-- | src/broadcast/broadcastmanager.cpp | 10 | ||||
-rw-r--r-- | src/broadcast/broadcastmanager.h | 3 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/broadcast/broadcastmanager.cpp b/src/broadcast/broadcastmanager.cpp index 1ff9bca4f2..7bf2088bc3 100644 --- a/src/broadcast/broadcastmanager.cpp +++ b/src/broadcast/broadcastmanager.cpp @@ -178,9 +178,12 @@ ShoutConnectionPtr BroadcastManager::findConnectionForProfile(BroadcastProfilePt void BroadcastManager::slotConnectionStatusChanged(int newState) { Q_UNUSED(newState); + int totalConn = 0, connectingCount = 0, + connectedCount = 0, failedCount = 0; + // Collect status info - int connectingCount = 0, connectedCount = 0, failedCount = 0; QList<BroadcastProfilePtr> profiles = m_pBroadcastSettings->profiles(); + totalConn = profiles.size(); for (BroadcastProfilePtr profile : profiles) { int status = profile->connectionStatus(); if (status == BroadcastProfile::STATUS_FAILURE) { @@ -196,9 +199,12 @@ void BroadcastManager::slotConnectionStatusChanged(int newState) { } // Changed global status indicator depending on global connections status - if (failedCount > 0) { + if (failedCount >= totalConn) { m_pStatusCO->forceSet(STATUSCO_FAILURE); } + else if (failedCount > 0 && failedCount < totalConn) { + m_pStatusCO->forceSet(STATUSCO_WARNING); + } else if (connectingCount > 0) { m_pStatusCO->forceSet(STATUSCO_CONNECTING); } diff --git a/src/broadcast/broadcastmanager.h b/src/broadcast/broadcastmanager.h index 43ad4e1ed2..87af436771 100644 --- a/src/broadcast/broadcastmanager.h +++ b/src/broadcast/broadcastmanager.h @@ -18,7 +18,8 @@ class BroadcastManager : public QObject { STATUSCO_UNCONNECTED = 0, // IDLE state, no error STATUSCO_CONNECTING = 1, // 30 s max STATUSCO_CONNECTED = 2, // On Air - STATUSCO_FAILURE = 3 // Happens when disconnected by an error + STATUSCO_FAILURE = 3, // Happens when all connection fails + STATUSCO_WARNING = 4 }; BroadcastManager(SettingsManager* pSettingsManager, |