Added push-to-mute for microphone.

This commit is contained in:
2017-08-09 00:41:26 +02:00
parent 08c5b19ffc
commit 0bc693c76b
4 changed files with 65 additions and 10 deletions
+39 -3
View File
@@ -65,6 +65,7 @@ namespace advsettings {
auto settings = OverlayController::appSettings();
settings->beginGroup(getSettingsName());
setMicProximitySensorCanMute(settings->value("micProximitySensorCanMute", false).toBool(), false);
setMicReversePtt(settings->value("micReversePtt", false).toBool(), false);
settings->endGroup();
}
@@ -72,6 +73,7 @@ namespace advsettings {
auto settings = OverlayController::appSettings();
settings->beginGroup(getSettingsName());
settings->setValue("micProximitySensorCanMute", micProximitySensorCanMute());
settings->setValue("micReversePtt", micReversePtt());
settings->endGroup();
settings->sync();
}
@@ -100,6 +102,10 @@ namespace advsettings {
return m_micProximitySensorCanMute;
}
bool AudioTabController::micReversePtt() const {
return m_micReversePtt;
}
void AudioTabController::eventLoopTick() {
if (!eventLoopMutex.try_lock()) {
return;
@@ -155,15 +161,27 @@ namespace advsettings {
}
void AudioTabController::onPttStart() {
setMicMuted(false);
if (m_micReversePtt) {
setMicMuted(true);
} else {
setMicMuted(false);
}
}
void AudioTabController::onPttEnabled() {
setMicMuted(true);
if (m_micReversePtt) {
setMicMuted(false);
} else {
setMicMuted(true);
}
}
void AudioTabController::onPttStop() {
setMicMuted(true);
if (m_micReversePtt) {
setMicMuted(false);
} else {
setMicMuted(true);
}
}
void AudioTabController::onPttDisabled() {
@@ -233,6 +251,24 @@ namespace advsettings {
}
}
void AudioTabController::setMicReversePtt(bool value, bool notify) {
std::lock_guard<std::recursive_mutex> lock(eventLoopMutex);
if (value != m_micReversePtt) {
m_micReversePtt = value;
saveAudioSettings();
if (m_pttEnabled) {
if (m_pttActive) {
setMicMuted(value);
} else {
setMicMuted(!value);
}
}
if (notify) {
emit micReversePttChanged(value);
}
}
}
void AudioTabController::onNewRecordingDevice() {
findMicDeviceIndex(audioManager->getMicDevId());
}