diff --git a/src/blackgui/components/infobarstatuscomponent.cpp b/src/blackgui/components/infobarstatuscomponent.cpp index 59d61c40d..da27886d7 100644 --- a/src/blackgui/components/infobarstatuscomponent.cpp +++ b/src/blackgui/components/infobarstatuscomponent.cpp @@ -78,9 +78,9 @@ namespace BlackGui ui->led_DBus->setOn(sGui->getIContextApplication()->isUsingImplementingObject()); } + ui->led_Audio->setOn(CInfoBarStatusComponent::isAudioAvailableAndNotMuted()); if (sGui->getCContextAudioBase()) { - ui->led_Audio->setOn(!sGui->getCContextAudioBase()->isMuted()); connect(sGui->getCContextAudioBase(), &CContextAudioBase::changedMute, this, &CInfoBarStatusComponent::onMuteChanged); // PTT as received on audio @@ -228,6 +228,7 @@ namespace BlackGui const QList actions = menuAudio.actions(); if (selectedItem == actions.at(0)) { + // toggle MUTED sGui->getCContextAudioBase()->setMute(!sGui->getCContextAudioBase()->isMuted()); } else if (actions.size() > 1 && selectedItem == actions.at(1)) @@ -323,14 +324,7 @@ namespace BlackGui } // audio context can be empty depending on which side it is called - if (sGui->getCContextAudioBase()) - { - ui->led_Audio->setOn(!sGui->getCContextAudioBase()->isMuted()); - } - else - { - ui->led_Audio->setOn(false); - } + ui->led_Audio->setOn(CInfoBarStatusComponent::isAudioAvailableAndNotMuted()); } void CInfoBarStatusComponent::updateSpacing() @@ -340,5 +334,12 @@ namespace BlackGui const int s = (w >= 400) ? 6 : 2; this->setSpacing(s); } + + bool CInfoBarStatusComponent::isAudioAvailableAndNotMuted() + { + if (!sGui || !sGui->getCContextAudioBase() || sGui->isShuttingDown()) { return false; } + if (!sGui->getCContextAudioBase()->isAudioStarted()) { return false; } + return !sGui->getCContextAudioBase()->isMuted(); + } } // namespace } // namespace diff --git a/src/blackgui/components/infobarstatuscomponent.h b/src/blackgui/components/infobarstatuscomponent.h index 81deac097..bce3b95ad 100644 --- a/src/blackgui/components/infobarstatuscomponent.h +++ b/src/blackgui/components/infobarstatuscomponent.h @@ -67,6 +67,9 @@ namespace BlackGui BlackMisc::CDigestSignal m_dsResize { this, &CInfoBarStatusComponent::adjustTextSize, 1000, 50 }; + //! Audio available and NOT muted + static bool isAudioAvailableAndNotMuted(); + //! Init the LEDs void initLeds();