From 8c83020b921572c39b89e56d5220a6143bf3ae7b Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sun, 17 Mar 2019 00:58:56 +0100 Subject: [PATCH] Ref T567, PTT click also on key up * added sound * UI component --- src/blackcore/context/contextaudioimpl.cpp | 3 ++- .../components/audiosetupcomponent.cpp | 21 ++++++++++++++----- .../components/audiosetupcomponent.ui | 13 +++++++++--- src/blackmisc/audio/audiosettings.h | 3 ++- src/blackmisc/audio/notificationsounds.cpp | 2 +- src/blackmisc/audio/notificationsounds.h | 7 ++++--- src/blacksound/soundgenerator.cpp | 1 + src/swiftguistandard/swiftguistd.cpp | 5 +++-- 8 files changed, 39 insertions(+), 16 deletions(-) diff --git a/src/blackcore/context/contextaudioimpl.cpp b/src/blackcore/context/contextaudioimpl.cpp index fa9a3e27d..d6d0a9dff 100644 --- a/src/blackcore/context/contextaudioimpl.cpp +++ b/src/blackcore/context/contextaudioimpl.cpp @@ -443,7 +443,7 @@ namespace BlackCore const CSettings settings = m_audioSettings.getThreadLocal(); const bool play = !considerSettings || settings.isNotificationFlagSet(notification); if (!play) { return; } - if (notification == CNotificationSounds::PTTClick && (considerSettings && settings.noAudioTransmission())) + if (notification == CNotificationSounds::PTTClickKeyDown && (considerSettings && settings.noAudioTransmission())) { if (!this->canTalk()) { @@ -451,6 +451,7 @@ namespace BlackCore notification = CNotificationSounds::NotificationNoAudioTransmission; } } + CSoundGenerator::playNotificationSound(90, notification); } diff --git a/src/blackgui/components/audiosetupcomponent.cpp b/src/blackgui/components/audiosetupcomponent.cpp index 707a58990..4ea2df206 100644 --- a/src/blackgui/components/audiosetupcomponent.cpp +++ b/src/blackgui/components/audiosetupcomponent.cpp @@ -84,7 +84,9 @@ namespace BlackGui Q_ASSERT(c); // checkboxes for notifications - c = connect(ui->cb_SetupAudioPTTClick, &QCheckBox::toggled, this, &CAudioSetupComponent::onNotificationsToggled); + c = connect(ui->cb_SetupAudioPTTClickDown, &QCheckBox::toggled, this, &CAudioSetupComponent::onNotificationsToggled); + Q_ASSERT(c); + c = connect(ui->cb_SetupAudioPTTClickUp, &QCheckBox::toggled, this, &CAudioSetupComponent::onNotificationsToggled); Q_ASSERT(c); c = connect(ui->cb_SetupAudioNotificationVoiceRoomLeft, &QCheckBox::toggled, this, &CAudioSetupComponent::onNotificationsToggled); Q_ASSERT(c); @@ -108,7 +110,7 @@ namespace BlackGui bool CAudioSetupComponent::playNotificationSounds() const { if (!this->hasAudio()) { return false; } - return ui->cb_SetupAudioPTTClick->isChecked() || + return ui->cb_SetupAudioPTTClickDown->isChecked() || ui->cb_SetupAudioPTTClickUp->isChecked() || ui->cb_SetupAudioNotificationTextMessagePrivate->isChecked() || ui->cb_SetupAudioNotificationTextMessageSupervisor->isChecked() || ui->cb_SetupAudioNotificationVoiceRoomLeft->isChecked() || ui->cb_SetupAudioNotificationVoiceRoomJoined->isChecked() || ui->cb_SetupAudioNotificationTextCallsignMentioned->isChecked() || ui->cb_SetupAudioNoTransmission->isChecked(); @@ -117,7 +119,10 @@ namespace BlackGui void CAudioSetupComponent::reloadSettings() { const CSettings as(m_audioSettings.getThreadLocal()); - ui->cb_SetupAudioPTTClick->setChecked(as.isNotificationFlagSet(CNotificationSounds::PTTClick)); + + ui->cb_SetupAudioPTTClickDown->setChecked(as.isNotificationFlagSet(CNotificationSounds::PTTClickKeyDown)); + ui->cb_SetupAudioPTTClickUp->setChecked(as.isNotificationFlagSet(CNotificationSounds::PTTClickKeyUp)); + ui->cb_SetupAudioNotificationVoiceRoomLeft->setChecked(as.isNotificationFlagSet(CNotificationSounds::NotificationVoiceRoomLeft)); ui->cb_SetupAudioNotificationVoiceRoomJoined->setChecked(as.isNotificationFlagSet(CNotificationSounds::NotificationVoiceRoomJoined)); ui->cb_SetupAudioNotificationTextMessagePrivate->setChecked(as.isNotificationFlagSet(CNotificationSounds::NotificationTextMessagePrivate)); @@ -142,7 +147,9 @@ namespace BlackGui { if (!cb) { return CNotificationSounds::NoNotifications; } - if (cb == ui->cb_SetupAudioPTTClick) { return CNotificationSounds::PTTClick; } + if (cb == ui->cb_SetupAudioPTTClickDown) { return CNotificationSounds::PTTClickKeyDown; } + if (cb == ui->cb_SetupAudioPTTClickUp) { return CNotificationSounds::PTTClickKeyUp; } + if (cb == ui->cb_SetupAudioNotificationVoiceRoomJoined) { return CNotificationSounds::NotificationVoiceRoomJoined; } if (cb == ui->cb_SetupAudioNotificationVoiceRoomLeft) { return CNotificationSounds::NotificationVoiceRoomLeft; } if (cb == ui->cb_SetupAudioNotificationTextCallsignMentioned) { return CNotificationSounds::NotificationTextCallsignMentioned; } @@ -221,13 +228,17 @@ namespace BlackGui { if (!sGui || sGui->isShuttingDown() || !sGui->getIContextAudio()) { return; } CSettings as(m_audioSettings.getThreadLocal()); - as.setNotificationFlag(CNotificationSounds::PTTClick, ui->cb_SetupAudioPTTClick->isChecked()); + + as.setNotificationFlag(CNotificationSounds::PTTClickKeyDown, ui->cb_SetupAudioPTTClickDown->isChecked()); + as.setNotificationFlag(CNotificationSounds::PTTClickKeyUp, ui->cb_SetupAudioPTTClickUp->isChecked()); + as.setNotificationFlag(CNotificationSounds::NotificationVoiceRoomLeft, ui->cb_SetupAudioNotificationVoiceRoomLeft->isChecked()); as.setNotificationFlag(CNotificationSounds::NotificationVoiceRoomJoined, ui->cb_SetupAudioNotificationVoiceRoomJoined->isChecked()); as.setNotificationFlag(CNotificationSounds::NotificationTextMessagePrivate, ui->cb_SetupAudioNotificationTextMessagePrivate->isChecked()); as.setNotificationFlag(CNotificationSounds::NotificationTextMessageSupervisor, ui->cb_SetupAudioNotificationTextMessageSupervisor->isChecked()); as.setNotificationFlag(CNotificationSounds::NotificationTextCallsignMentioned, ui->cb_SetupAudioNotificationTextCallsignMentioned->isChecked()); as.setNotificationFlag(CNotificationSounds::NotificationNoAudioTransmission, ui->cb_SetupAudioNoTransmission->isChecked()); + const CStatusMessage msg = m_audioSettings.set(as); CLogMessage(this).preformatted(msg); diff --git a/src/blackgui/components/audiosetupcomponent.ui b/src/blackgui/components/audiosetupcomponent.ui index 90854b87b..be8511b28 100644 --- a/src/blackgui/components/audiosetupcomponent.ui +++ b/src/blackgui/components/audiosetupcomponent.ui @@ -149,9 +149,9 @@ - + - PTT click + PTT click (key down) @@ -176,6 +176,13 @@ + + + + PTT click (key up) + + + @@ -204,7 +211,7 @@ cb_SetupAudioNotificationVoiceRoomJoined cb_SetupAudioNotificationVoiceRoomLeft cb_SetupAudioNoTransmission - cb_SetupAudioPTTClick + cb_SetupAudioPTTClickDown diff --git a/src/blackmisc/audio/audiosettings.h b/src/blackmisc/audio/audiosettings.h index dfddd4d7f..5e54dc68a 100644 --- a/src/blackmisc/audio/audiosettings.h +++ b/src/blackmisc/audio/audiosettings.h @@ -50,7 +50,8 @@ namespace BlackMisc bool textMessageSupervisor() const { return this->isNotificationFlagSet(CNotificationSounds::NotificationTextMessageSupervisor); } bool textCallsignMentioned() const { return this->isNotificationFlagSet(CNotificationSounds::NotificationTextCallsignMentioned); } bool noAudioTransmission() const { return this->isNotificationFlagSet(CNotificationSounds::NotificationNoAudioTransmission); } - bool pttClick() const { return this->isNotificationFlagSet(CNotificationSounds::PTTClick); } + bool pttClickDown() const { return this->isNotificationFlagSet(CNotificationSounds::PTTClickKeyDown); } + bool pttClickUp() const { return this->isNotificationFlagSet(CNotificationSounds::PTTClickKeyUp); } //! @} //! Settings value diff --git a/src/blackmisc/audio/notificationsounds.cpp b/src/blackmisc/audio/notificationsounds.cpp index ec51b98f4..d03ff4e4f 100644 --- a/src/blackmisc/audio/notificationsounds.cpp +++ b/src/blackmisc/audio/notificationsounds.cpp @@ -40,7 +40,7 @@ namespace BlackMisc case NotificationVoiceRoomJoined: return joined; case NotificationVoiceRoomLeft: return left; case NotificationNoAudioTransmission: return noaudiotx; - case PTTClick: return ptt; + case PTTClickKeyDown: return ptt; case LoadSounds: return load; default: break; } diff --git a/src/blackmisc/audio/notificationsounds.h b/src/blackmisc/audio/notificationsounds.h index 2b5f56417..81188cb00 100644 --- a/src/blackmisc/audio/notificationsounds.h +++ b/src/blackmisc/audio/notificationsounds.h @@ -46,14 +46,15 @@ namespace BlackMisc NotificationVoiceRoomJoined = 1 << 6, NotificationVoiceRoomLeft = 1 << 7, NotificationNoAudioTransmission = 1 << 8, - PTTClick = 1 << 9, - LoadSounds = 1 << 10, //!< end marker and force loading of sounds, keep as last element + PTTClickKeyDown = 1 << 9, + PTTClickKeyUp = 1 << 10, + LoadSounds = 1 << 11, //!< end marker and force loading of sounds, keep as last element AllTextNotifications = NotificationTextMessagePrivate | NotificationTextCallsignMentioned | NotificationTextMessageSupervisor, AllLoginNotifications = NotificationLogin | NotificationLogoff, AllVoiceRoomNotifications = NotificationVoiceRoomJoined | NotificationVoiceRoomLeft | NotificationNoAudioTransmission, AllNotifications = NotificationError | AllTextNotifications | AllLoginNotifications | AllVoiceRoomNotifications, DefaultNotifications = NotificationError | AllTextNotifications | AllLoginNotifications | AllVoiceRoomNotifications, - All = AllNotifications | PTTClick + All = AllNotifications | PTTClickKeyDown | PTTClickKeyUp }; Q_DECLARE_FLAGS(Notification, NotificationFlag) diff --git a/src/blacksound/soundgenerator.cpp b/src/blacksound/soundgenerator.cpp index b015c7a78..88da9423b 100644 --- a/src/blacksound/soundgenerator.cpp +++ b/src/blacksound/soundgenerator.cpp @@ -505,6 +505,7 @@ namespace BlackSound success = playlist->addMedia(QUrl::fromLocalFile(CDirectoryUtils::soundFilesDirectory() + "/voiceroomleft.wav")) && success; success = playlist->addMedia(QUrl::fromLocalFile(CDirectoryUtils::soundFilesDirectory() + "/noaudiotransmission.wav")) && success; success = playlist->addMedia(QUrl::fromLocalFile(CDirectoryUtils::soundFilesDirectory() + "/pttclick.wav")) && success; + success = playlist->addMedia(QUrl::fromLocalFile(CDirectoryUtils::soundFilesDirectory() + "/pttclick.wav")) && success; Q_ASSERT(success); playlist->setPlaybackMode(QMediaPlaylist::CurrentItemOnce); diff --git a/src/swiftguistandard/swiftguistd.cpp b/src/swiftguistandard/swiftguistd.cpp index 2efc7994b..47f2693ac 100644 --- a/src/swiftguistandard/swiftguistd.cpp +++ b/src/swiftguistandard/swiftguistd.cpp @@ -489,9 +489,10 @@ void SwiftGuiStd::displayLog() void SwiftGuiStd::onPttChanged(bool enabled) { - if (!enabled) { return; } if (!sGui || !sGui->getIContextAudio()) { return; } - sGui->getIContextAudio()->playNotification(CNotificationSounds::PTTClick, true); + sGui->getIContextAudio()->playNotification( + enabled ? CNotificationSounds::PTTClickKeyDown : CNotificationSounds::PTTClickKeyUp, + true); } void SwiftGuiStd::displayDBusReconnectDialog()