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()