diff --git a/frontend/components/OBSAdvAudioCtrl.cpp b/frontend/components/OBSAdvAudioCtrl.cpp index 2f3766f4e5fd7b..61bc455d5af4e1 100644 --- a/frontend/components/OBSAdvAudioCtrl.cpp +++ b/frontend/components/OBSAdvAudioCtrl.cpp @@ -155,10 +155,9 @@ OBSAdvAudioCtrl::OBSAdvAudioCtrl(QGridLayout *, obs_source_t *source_) : source( int idx; if (obs_audio_monitoring_available()) { monitoringType->addItem(QTStr("Basic.AdvAudio.Monitoring.None"), (int)OBS_MONITORING_TYPE_NONE); - monitoringType->addItem(QTStr("Basic.AdvAudio.Monitoring.MonitorOnly"), - (int)OBS_MONITORING_TYPE_MONITOR_ONLY); monitoringType->addItem(QTStr("Basic.AdvAudio.Monitoring.Both"), (int)OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT); + monitoringType->setPlaceholderText(QTStr("Basic.AdvAudio.Monitoring.MonitorOnly")); int mt = (int)obs_source_get_monitoring_type(source); idx = monitoringType->findData(mt); monitoringType->setCurrentIndex(idx); diff --git a/frontend/components/VolumeControl.cpp b/frontend/components/VolumeControl.cpp index 57a881df7c9599..9f5c4392c58077 100644 --- a/frontend/components/VolumeControl.cpp +++ b/frontend/components/VolumeControl.cpp @@ -164,7 +164,7 @@ VolumeControl::~VolumeControl() } } -const QIcon &VolumeControl::getUnassignedIcon() +const QIcon &VolumeControl::getWarningIcon() { static const QIcon &icon = *new QIcon(":/res/images/unassigned.svg"); return icon; @@ -773,6 +773,7 @@ void VolumeControl::processMixerState() bool showAsMuted = obsMuted || obsMonitoringType == OBS_MONITORING_TYPE_MONITOR_ONLY; bool showAsMonitored = obsMonitoringType != OBS_MONITORING_TYPE_NONE; bool showAsUnassigned = !obsMuted && unassigned; + bool showWarningIcon = showAsUnassigned || obsMonitoringType == OBS_MONITORING_TYPE_MONITOR_ONLY; volumeMeter->setMuted((showAsMuted || showAsUnassigned) && !showAsMonitored); setUseDisabledColors(showAsMuted || !isActive); @@ -787,8 +788,8 @@ void VolumeControl::processMixerState() : QTStr("Basic.AudioMixer.Monitoring.Enable"); monitorButton->setToolTip(monitorTooltip); - if (showAsUnassigned) { - muteButton->setIcon(getUnassignedIcon()); + if (showWarningIcon) { + muteButton->setIcon(getWarningIcon()); } else if (showAsMuted) { muteButton->setIcon(getMutedIcon()); } else { @@ -806,7 +807,7 @@ void VolumeControl::processMixerState() utils->toggleClass(muteButton, "checked", showAsMuted); utils->toggleClass(monitorButton, "checked", showAsMonitored); - utils->toggleClass(muteButton, "mute-unassigned", showAsUnassigned); + utils->toggleClass(muteButton, "mute-warning", showWarningIcon); style()->polish(muteButton); style()->polish(monitorButton); @@ -818,27 +819,17 @@ void VolumeControl::handleMuteButton(bool mute) { setMuted(mute); - if (obsMonitoringType != OBS_MONITORING_TYPE_NONE) { - if (mute) { - setMonitoring(OBS_MONITORING_TYPE_MONITOR_ONLY); - } else { - setMonitoring(OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT); - } + if (!mute && obsMonitoringType == OBS_MONITORING_TYPE_MONITOR_ONLY) { + setMonitoring(OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT); } } void VolumeControl::handleMonitorButton(bool enableMonitoring) { - if (!enableMonitoring) { - setMonitoring(OBS_MONITORING_TYPE_NONE); - return; - } + obs_monitoring_type newType = (enableMonitoring) ? OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT + : OBS_MONITORING_TYPE_NONE; - if (obsMuted) { - setMonitoring(OBS_MONITORING_TYPE_MONITOR_ONLY); - } else { - setMonitoring(OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT); - } + setMonitoring(newType); } void VolumeControl::sliderChanged(int vol) diff --git a/frontend/components/VolumeControl.hpp b/frontend/components/VolumeControl.hpp index 3b81899e181fff..7b5ac5435c9e48 100644 --- a/frontend/components/VolumeControl.hpp +++ b/frontend/components/VolumeControl.hpp @@ -92,7 +92,7 @@ class VolumeControl : public QFrame { QMenu *contextMenu; - static const QIcon &getUnassignedIcon(); + static const QIcon &getWarningIcon(); static const QIcon &getMutedIcon(); static const QIcon &getUnmutedIcon(); static const QIcon &getMonitorOnIcon(); diff --git a/frontend/data/locale/en-US.ini b/frontend/data/locale/en-US.ini index 51ea30b4aa1186..c8a2d08ac3d5e0 100644 --- a/frontend/data/locale/en-US.ini +++ b/frontend/data/locale/en-US.ini @@ -1387,7 +1387,7 @@ Basic.AdvAudio.SyncOffsetSource="Sync Offset for '%1'" Basic.AdvAudio.Monitoring="Audio Monitoring" Basic.AdvAudio.Monitoring.None="Monitor Off" Basic.AdvAudio.Monitoring.MonitorOnly="Monitor Only (mute output)" -Basic.AdvAudio.Monitoring.Both="Monitor and Output" +Basic.AdvAudio.Monitoring.Both="Monitoring Enabled" Basic.AdvAudio.MonitoringSource="Audio Monitoring for '%1'" Basic.AdvAudio.AudioTracks="Tracks" diff --git a/frontend/data/themes/Yami.obt b/frontend/data/themes/Yami.obt index bbdf7642912661..fb2d78dd4ef4bb 100644 --- a/frontend/data/themes/Yami.obt +++ b/frontend/data/themes/Yami.obt @@ -1674,14 +1674,14 @@ QSlider::handle:disabled { border-color: var(--red1); } -.btn-mute.mute-unassigned { +.btn-mute.mute-warning { color: var(--yellow1); background: var(--yellow6); qproperty-icon: url(theme:Dark/unassigned.svg); } -.btn-mute.mute-unassigned.hover, -.btn-mute.mute-unassigned:focus { +.btn-mute.mute-warning.hover, +.btn-mute.mute-warning:focus { border-color: var(--yellow1); }