From b58aea75ea83178a616562f2ed48d86be293b666 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Wed, 22 Nov 2023 22:48:16 +0100 Subject: [PATCH] Remove unused PTTBlocked notification sound --- .../components/audionotificationcomponent.cpp | 6 ------ .../components/audionotificationcomponent.ui | 12 ++---------- src/blackmisc/audio/audiosettings.h | 1 - src/blackmisc/audio/notificationsounds.cpp | 3 --- src/blackmisc/audio/notificationsounds.h | 4 ++-- src/blacksound/notificationplayer.cpp | 1 - src/blacksound/share/sounds/pttblocked.wav | Bin 16928 -> 0 bytes 7 files changed, 4 insertions(+), 23 deletions(-) delete mode 100644 src/blacksound/share/sounds/pttblocked.wav diff --git a/src/blackgui/components/audionotificationcomponent.cpp b/src/blackgui/components/audionotificationcomponent.cpp index db1d61d42..d2c405f5d 100644 --- a/src/blackgui/components/audionotificationcomponent.cpp +++ b/src/blackgui/components/audionotificationcomponent.cpp @@ -51,8 +51,6 @@ namespace BlackGui::Components Q_ASSERT(c); c = connect(ui->cb_SetupAudioPTTClickUp, &QCheckBox::toggled, this, &CAudioNotificationComponent::onNotificationsToggled, Qt::QueuedConnection); Q_ASSERT(c); - c = connect(ui->cb_SetupAudioPTTBlocked, &QCheckBox::toggled, this, &CAudioNotificationComponent::onNotificationsToggled, Qt::QueuedConnection); - Q_ASSERT(c); c = connect(ui->cb_SetupAudioNotificationTextMessageFrequency, &QCheckBox::toggled, this, &CAudioNotificationComponent::onNotificationsToggled, Qt::QueuedConnection); Q_ASSERT(c); c = connect(ui->cb_SetupAudioNotificationTextMessagePrivate, &QCheckBox::toggled, this, &CAudioNotificationComponent::onNotificationsToggled, Qt::QueuedConnection); @@ -87,7 +85,6 @@ namespace BlackGui::Components bool CAudioNotificationComponent::playNotificationSounds() const { return ui->cb_SetupAudioPTTClickDown->isChecked() || ui->cb_SetupAudioPTTClickUp->isChecked() || - ui->cb_SetupAudioPTTBlocked->isChecked() || ui->cb_SetupAudioNotificationTextMessageFrequency->isChecked() || ui->cb_SetupAudioNotificationTextMessageUnicom->isChecked() || ui->cb_SetupAudioNotificationTextMessagePrivate->isChecked() || ui->cb_SetupAudioNotificationTextMessageSupervisor->isChecked() || ui->cb_SetupAudioNotificationTextCallsignMentioned->isChecked() || @@ -100,7 +97,6 @@ namespace BlackGui::Components ui->cb_SetupAudioPTTClickDown->setChecked(as.isNotificationFlagSet(CNotificationSounds::PTTClickKeyDown)); ui->cb_SetupAudioPTTClickUp->setChecked(as.isNotificationFlagSet(CNotificationSounds::PTTClickKeyUp)); - ui->cb_SetupAudioPTTBlocked->setChecked(as.isNotificationFlagSet(CNotificationSounds::PTTBlocked)); ui->cb_SetupAudioNotificationTextMessageFrequency->setChecked(as.isNotificationFlagSet(CNotificationSounds::NotificationTextMessageFrequency)); ui->cb_SetupAudioNotificationTextMessagePrivate->setChecked(as.isNotificationFlagSet(CNotificationSounds::NotificationTextMessagePrivate)); @@ -133,7 +129,6 @@ namespace BlackGui::Components if (cb == ui->cb_SetupAudioPTTClickDown) { return CNotificationSounds::PTTClickKeyDown; } if (cb == ui->cb_SetupAudioPTTClickUp) { return CNotificationSounds::PTTClickKeyUp; } - if (cb == ui->cb_SetupAudioPTTBlocked) { return CNotificationSounds::PTTBlocked; } if (cb == ui->cb_SetupAudioNotificationTextCallsignMentioned) { return CNotificationSounds::NotificationTextCallsignMentioned; } if (cb == ui->cb_SetupAudioNotificationTextMessageFrequency) { return CNotificationSounds::NotificationTextMessageFrequency; } @@ -157,7 +152,6 @@ namespace BlackGui::Components as.setNotificationFlag(CNotificationSounds::PTTClickKeyDown, ui->cb_SetupAudioPTTClickDown->isChecked()); as.setNotificationFlag(CNotificationSounds::PTTClickKeyUp, ui->cb_SetupAudioPTTClickUp->isChecked()); - as.setNotificationFlag(CNotificationSounds::PTTBlocked, ui->cb_SetupAudioPTTBlocked->isChecked()); as.setNotificationFlag(CNotificationSounds::NotificationTextMessageFrequency, ui->cb_SetupAudioNotificationTextMessageFrequency->isChecked()); as.setNotificationFlag(CNotificationSounds::NotificationTextMessagePrivate, ui->cb_SetupAudioNotificationTextMessagePrivate->isChecked()); diff --git a/src/blackgui/components/audionotificationcomponent.ui b/src/blackgui/components/audionotificationcomponent.ui index 51c23bfcf..c76b9aec6 100644 --- a/src/blackgui/components/audionotificationcomponent.ui +++ b/src/blackgui/components/audionotificationcomponent.ui @@ -51,13 +51,6 @@ - - - PTT blocking - - - - AFV click @@ -192,14 +185,14 @@ - + Login - + Logoff @@ -225,7 +218,6 @@ cb_SetupAudioNotificationTextMessageSupervisor cb_SetupAudioPTTClickDown cb_SetupAudioPTTClickUp - cb_SetupAudioPTTBlocked cb_SetupAfvClicked cb_SetupAfvBlocked cb_SetupAudioNotificationLogin diff --git a/src/blackmisc/audio/audiosettings.h b/src/blackmisc/audio/audiosettings.h index ca6c86106..815baae3b 100644 --- a/src/blackmisc/audio/audiosettings.h +++ b/src/blackmisc/audio/audiosettings.h @@ -60,7 +60,6 @@ namespace BlackMisc::Audio bool textCallsignMentioned() const { return this->isNotificationFlagSet(CNotificationSounds::NotificationTextCallsignMentioned); } bool pttClickDown() const { return this->isNotificationFlagSet(CNotificationSounds::PTTClickKeyDown); } bool pttClickUp() const { return this->isNotificationFlagSet(CNotificationSounds::PTTClickKeyUp); } - bool pttBlocked() const { return this->isNotificationFlagSet(CNotificationSounds::PTTBlocked); } bool afvClicked() const { return this->isNotificationFlagSet(CNotificationSounds::AFVClicked); } bool afvBlocked() const { return this->isNotificationFlagSet(CNotificationSounds::AFVBlocked); } diff --git a/src/blackmisc/audio/notificationsounds.cpp b/src/blackmisc/audio/notificationsounds.cpp index e081f86a4..522055263 100644 --- a/src/blackmisc/audio/notificationsounds.cpp +++ b/src/blackmisc/audio/notificationsounds.cpp @@ -21,7 +21,6 @@ namespace BlackMisc::Audio static const QString mentioned("cs mentioned"); static const QString pttUp("PTT click up"); static const QString pttDown("PTT click down"); - static const QString pttBlocked("PTT blocked"); static const QString afvclick("AFC click"); static const QString afvblock("AFV blocked"); @@ -37,7 +36,6 @@ namespace BlackMisc::Audio case NotificationTextCallsignMentioned: return mentioned; case PTTClickKeyDown: return pttDown; case PTTClickKeyUp: return pttUp; - case PTTBlocked: return pttBlocked; case AFVClicked: return afvclick; case AFVBlocked: return afvblock; @@ -60,7 +58,6 @@ namespace BlackMisc::Audio if (notification.testFlag(PTTClickKeyUp)) n << flagToString(PTTClickKeyUp); if (notification.testFlag(PTTClickKeyDown)) n << flagToString(PTTClickKeyDown); - if (notification.testFlag(PTTBlocked)) n << flagToString(PTTBlocked); if (notification.testFlag(AFVClicked)) n << flagToString(AFVClicked); if (notification.testFlag(AFVBlocked)) n << flagToString(AFVBlocked); diff --git a/src/blackmisc/audio/notificationsounds.h b/src/blackmisc/audio/notificationsounds.h index 4723b7bd0..e692e4684 100644 --- a/src/blackmisc/audio/notificationsounds.h +++ b/src/blackmisc/audio/notificationsounds.h @@ -35,7 +35,7 @@ namespace BlackMisc::Audio // 1 << 11 previously used for NotificationAtcTunedOut PTTClickKeyDown = 1 << 7, PTTClickKeyUp = 1 << 8, - PTTBlocked = 1 << 9, + // 1 << 9 previously used for PTTBlocked AFVClicked = 1 << 14, AFVBlocked = 1 << 15 }; @@ -49,7 +49,7 @@ namespace BlackMisc::Audio constexpr static Notification AllLoginNotifications = Notification(NotificationLogin | NotificationLogoff); //! All PTT notification flags - constexpr static Notification AllPTTNotifications = Notification(PTTBlocked | PTTClickKeyUp | PTTClickKeyDown); + constexpr static Notification AllPTTNotifications = Notification(PTTClickKeyUp | PTTClickKeyDown); //! All AFV flags constexpr static Notification AllAfv = Notification(AFVClicked | AFVBlocked); diff --git a/src/blacksound/notificationplayer.cpp b/src/blacksound/notificationplayer.cpp index 7e1e3e7bf..77d6e07de 100644 --- a/src/blacksound/notificationplayer.cpp +++ b/src/blacksound/notificationplayer.cpp @@ -65,7 +65,6 @@ namespace BlackSound this->updateEffect(CNotificationSounds::NotificationTextMessageSupervisor, directory, "supervisormessage.wav"); this->updateEffect(CNotificationSounds::NotificationTextMessageUnicom, directory, "unicommessage.wav"); this->updateEffect(CNotificationSounds::NotificationTextCallsignMentioned, directory, "callsignmentioned.wav"); - this->updateEffect(CNotificationSounds::PTTBlocked, directory, "pttblocked.wav"); this->updateEffect(CNotificationSounds::PTTClickKeyDown, directory, "pttclick.wav"); this->updateEffect(CNotificationSounds::PTTClickKeyUp, directory, "pttclick.wav"); diff --git a/src/blacksound/share/sounds/pttblocked.wav b/src/blacksound/share/sounds/pttblocked.wav deleted file mode 100644 index c292022273534bcc0c130e185fefb837a46d7ac2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16928 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%0AFFI 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 E2bqS+x&QzG