summaryrefslogtreecommitdiffstats
path: root/src/broadcast
diff options
context:
space:
mode:
authorStéphane Lepin <stephane.lepin@gmail.com>2017-08-24 00:21:30 +0200
committerStéphane Lepin <stephane.lepin@gmail.com>2017-08-24 00:21:30 +0200
commit832f1448809c1c9d384d37ce7d886597405e5a2a (patch)
tree5e379647eed36c4701c7f3ff33bbe079d878567e /src/broadcast
parent1a18f75f5f2c9bead9aa4d7a82ac71c1fcb2d9e6 (diff)
Add warning state in status control object + update shade
Diffstat (limited to 'src/broadcast')
-rw-r--r--src/broadcast/broadcastmanager.cpp10
-rw-r--r--src/broadcast/broadcastmanager.h3
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,