From 6564c93ae68bd0e65e58db133118210ee34f9abd Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Sun, 5 Sep 2021 12:00:59 +0200 Subject: [PATCH] Issue #100 Add hotkeys to change COM volume --- src/blackcore/context/contextaudio.cpp | 32 ++++++++++++++++++++++++ src/blackcore/context/contextaudio.h | 8 ++++++ src/blackmisc/input/actionhotkeydefs.cpp | 25 ++++++++++++++++++ src/blackmisc/input/actionhotkeydefs.h | 12 +++++++++ 4 files changed, 77 insertions(+) diff --git a/src/blackcore/context/contextaudio.cpp b/src/blackcore/context/contextaudio.cpp index 477b3309d..e786dfa26 100644 --- a/src/blackcore/context/contextaudio.cpp +++ b/src/blackcore/context/contextaudio.cpp @@ -639,6 +639,38 @@ namespace BlackCore this->setMasterOutputVolume(v); } + void CContextAudioBase::audioIncreaseVolumeCom1(bool enabled) + { + if (!enabled) { return; } + if (isComUnitIntegrated()) { return; } + const int v = qRound(this->getComOutputVolume(CComSystem::Com1) * 1.05); + this->setComOutputVolume(CComSystem::Com1, v); + } + + void CContextAudioBase::audioDecreaseVolumeCom1(bool enabled) + { + if (!enabled) { return; } + if (isComUnitIntegrated()) { return; } + const int v = qRound(this->getComOutputVolume(CComSystem::Com1) / 1.05); + this->setComOutputVolume(CComSystem::Com1, v); + } + + void CContextAudioBase::audioIncreaseVolumeCom2(bool enabled) + { + if (!enabled) { return; } + if (isComUnitIntegrated()) { return; } + const int v = qRound(this->getComOutputVolume(CComSystem::Com2) * 1.05); + this->setComOutputVolume(CComSystem::Com2, v); + } + + void CContextAudioBase::audioDecreaseVolumeCom2(bool enabled) + { + if (!enabled) { return; } + if (isComUnitIntegrated()) { return; } + const int v = qRound(this->getComOutputVolume(CComSystem::Com2) / 1.05); + this->setComOutputVolume(CComSystem::Com2, v); + } + void CContextAudioBase::xCtxNetworkConnectionStatusChanged(const CConnectionStatus &from, const CConnectionStatus &to) { if (!m_voiceClient) { return; } diff --git a/src/blackcore/context/contextaudio.h b/src/blackcore/context/contextaudio.h index dda7dacfa..1c1371ce1 100644 --- a/src/blackcore/context/contextaudio.h +++ b/src/blackcore/context/contextaudio.h @@ -339,6 +339,10 @@ namespace BlackCore //! @{ void audioIncreaseVolume(bool enabled); void audioDecreaseVolume(bool enabled); + void audioIncreaseVolumeCom1(bool enabled); + void audioDecreaseVolumeCom1(bool enabled); + void audioIncreaseVolumeCom2(bool enabled); + void audioDecreaseVolumeCom2(bool enabled); //! @} //! Network connection status @@ -355,6 +359,10 @@ namespace BlackCore CActionBind m_actionPttCom2 { BlackMisc::Input::pttCom2HotkeyAction(), BlackMisc::Input::pttHotkeyIcon(), this, &CContextAudioBase::setVoiceTransmissionCom2 }; CActionBind m_actionAudioVolumeIncrease { BlackMisc::Input::audioVolumeIncreaseHotkeyAction(), BlackMisc::Input::audioVolumeIncreaseHotkeyIcon(), this, &CContextAudioBase::audioIncreaseVolume }; CActionBind m_actionAudioVolumeDecrease { BlackMisc::Input::audioVolumeDecreaseHotkeyAction(), BlackMisc::Input::audioVolumeDecreaseHotkeyIcon(), this, &CContextAudioBase::audioDecreaseVolume }; + CActionBind m_actionAudioVolumeIncreaseCom1 { BlackMisc::Input::audioVolumeIncreaseCom1HotkeyAction(), BlackMisc::Input::audioVolumeIncreaseHotkeyIcon(), this, &CContextAudioBase::audioIncreaseVolumeCom1 }; + CActionBind m_actionAudioVolumeDecreaseCom1 { BlackMisc::Input::audioVolumeDecreaseCom1HotkeyAction(), BlackMisc::Input::audioVolumeDecreaseHotkeyIcon(), this, &CContextAudioBase::audioDecreaseVolumeCom1 }; + CActionBind m_actionAudioVolumeIncreaseCom2 { BlackMisc::Input::audioVolumeIncreaseCom2HotkeyAction(), BlackMisc::Input::audioVolumeIncreaseHotkeyIcon(), this, &CContextAudioBase::audioIncreaseVolumeCom2 }; + CActionBind m_actionAudioVolumeDecreaseCom2 { BlackMisc::Input::audioVolumeDecreaseCom2HotkeyAction(), BlackMisc::Input::audioVolumeDecreaseHotkeyIcon(), this, &CContextAudioBase::audioDecreaseVolumeCom2 }; int m_outMasterVolumeBeforeMute = 50; static constexpr int MinUnmuteVolume = 20; //!< minimum volume when unmuted diff --git a/src/blackmisc/input/actionhotkeydefs.cpp b/src/blackmisc/input/actionhotkeydefs.cpp index 57e5dbf01..cb84c748a 100644 --- a/src/blackmisc/input/actionhotkeydefs.cpp +++ b/src/blackmisc/input/actionhotkeydefs.cpp @@ -57,6 +57,31 @@ namespace BlackMisc return s; } + const QString &audioVolumeDecreaseCom1HotkeyAction() + { + static const QString s("/Audio/Volume (COM1) decrease"); + return s; + } + + const QString &audioVolumeIncreaseCom1HotkeyAction() + { + static const QString s("/Audio/Volume (COM1) increase"); + return s; + } + + const QString &audioVolumeDecreaseCom2HotkeyAction() + { + static const QString s("/Audio/Volume (COM2) decrease"); + return s; + } + + const QString &audioVolumeIncreaseCom2HotkeyAction() + { + static const QString s("/Audio/Volume (COM2) increase"); + return s; + } + + CIcons::IconIndex toggleXPDRStateHotkeyIcon() { return CIcons::StandardIconRadio16; diff --git a/src/blackmisc/input/actionhotkeydefs.h b/src/blackmisc/input/actionhotkeydefs.h index 7c3f3c0da..716a37890 100644 --- a/src/blackmisc/input/actionhotkeydefs.h +++ b/src/blackmisc/input/actionhotkeydefs.h @@ -38,6 +38,18 @@ namespace BlackMisc //! Audio volume - key BLACKMISC_EXPORT const QString &audioVolumeDecreaseHotkeyAction(); + //! Audio volume + key + BLACKMISC_EXPORT const QString &audioVolumeIncreaseCom1HotkeyAction(); + + //! Audio volume - key + BLACKMISC_EXPORT const QString &audioVolumeDecreaseCom1HotkeyAction(); + + //! Audio volume + key + BLACKMISC_EXPORT const QString &audioVolumeIncreaseCom2HotkeyAction(); + + //! Audio volume - key + BLACKMISC_EXPORT const QString &audioVolumeDecreaseCom2HotkeyAction(); + //! Audio icon volume + BLACKMISC_EXPORT BlackMisc::CIcons::IconIndex audioVolumeIncreaseHotkeyIcon();