From a495cf1b3b401c5e3d4af102e96fd542b8598df0 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sat, 2 Dec 2023 23:02:43 -0600 Subject: [PATCH] Add alert sound file to settings --- .../source/scwx/qt/manager/media_manager.cpp | 3 ++- .../scwx/qt/settings/audio_settings.cpp | 19 ++++++++++++++++--- .../scwx/qt/settings/audio_settings.hpp | 1 + scwx-qt/source/scwx/qt/types/media_types.cpp | 2 +- test/data | 2 +- 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/scwx-qt/source/scwx/qt/manager/media_manager.cpp b/scwx-qt/source/scwx/qt/manager/media_manager.cpp index 53caba8c..60457fbc 100644 --- a/scwx-qt/source/scwx/qt/manager/media_manager.cpp +++ b/scwx-qt/source/scwx/qt/manager/media_manager.cpp @@ -84,7 +84,8 @@ void MediaManager::Play(types::AudioFile media) logger_->debug("Playing audio: {}", path); - p->mediaPlayer_->setSource(QUrl(QString::fromStdString(path))); + p->mediaPlayer_->setSource( + QUrl(QString("qrc:%1").arg(QString::fromStdString(path)))); QMetaObject::invokeMethod(p->mediaPlayer_, &QMediaPlayer::play); } diff --git a/scwx-qt/source/scwx/qt/settings/audio_settings.cpp b/scwx-qt/source/scwx/qt/settings/audio_settings.cpp index 2d2844cd..f5719525 100644 --- a/scwx-qt/source/scwx/qt/settings/audio_settings.cpp +++ b/scwx-qt/source/scwx/qt/settings/audio_settings.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -24,11 +25,14 @@ class AudioSettings::Impl public: explicit Impl() { + std::string defaultAlertSoundFileValue = + types::GetMediaPath(types::AudioFile::EasAttentionSignal); std::string defaultAlertLocationMethodValue = types::GetLocationMethodName(types::LocationMethod::Fixed); boost::to_lower(defaultAlertLocationMethodValue); + alertSoundFile_.SetDefault(defaultAlertSoundFileValue); alertLocationMethod_.SetDefault(defaultAlertLocationMethodValue); alertLatitude_.SetDefault(0.0); alertLongitude_.SetDefault(0.0); @@ -65,6 +69,7 @@ public: ~Impl() {} + SettingsVariable alertSoundFile_ {"alert_sound_file"}; SettingsVariable alertLocationMethod_ {"alert_location_method"}; SettingsVariable alertLatitude_ {"alert_latitude"}; SettingsVariable alertLongitude_ {"alert_longitude"}; @@ -77,8 +82,10 @@ public: AudioSettings::AudioSettings() : SettingsCategory("audio"), p(std::make_unique()) { - RegisterVariables( - {&p->alertLocationMethod_, &p->alertLatitude_, &p->alertLongitude_}); + RegisterVariables({&p->alertSoundFile_, + &p->alertLocationMethod_, + &p->alertLatitude_, + &p->alertLongitude_}); RegisterVariables(p->variables_); SetDefaults(); @@ -89,6 +96,11 @@ AudioSettings::~AudioSettings() = default; AudioSettings::AudioSettings(AudioSettings&&) noexcept = default; AudioSettings& AudioSettings::operator=(AudioSettings&&) noexcept = default; +SettingsVariable& AudioSettings::alert_sound_file() const +{ + return p->alertSoundFile_; +} + SettingsVariable& AudioSettings::alert_location_method() const { return p->alertLocationMethod_; @@ -123,7 +135,8 @@ AudioSettings& AudioSettings::Instance() bool operator==(const AudioSettings& lhs, const AudioSettings& rhs) { - return (lhs.p->alertLocationMethod_ == rhs.p->alertLocationMethod_ && + return (lhs.p->alertSoundFile_ == rhs.p->alertSoundFile_ && + lhs.p->alertLocationMethod_ == rhs.p->alertLocationMethod_ && lhs.p->alertLatitude_ == rhs.p->alertLatitude_ && lhs.p->alertLongitude_ == rhs.p->alertLongitude_ && lhs.p->alertEnabled_ == rhs.p->alertEnabled_); diff --git a/scwx-qt/source/scwx/qt/settings/audio_settings.hpp b/scwx-qt/source/scwx/qt/settings/audio_settings.hpp index e9b111f1..e332cc8d 100644 --- a/scwx-qt/source/scwx/qt/settings/audio_settings.hpp +++ b/scwx-qt/source/scwx/qt/settings/audio_settings.hpp @@ -26,6 +26,7 @@ public: AudioSettings(AudioSettings&&) noexcept; AudioSettings& operator=(AudioSettings&&) noexcept; + SettingsVariable& alert_sound_file() const; SettingsVariable& alert_location_method() const; SettingsVariable& alert_latitude() const; SettingsVariable& alert_longitude() const; diff --git a/scwx-qt/source/scwx/qt/types/media_types.cpp b/scwx-qt/source/scwx/qt/types/media_types.cpp index a8279e73..9e3c13ca 100644 --- a/scwx-qt/source/scwx/qt/types/media_types.cpp +++ b/scwx-qt/source/scwx/qt/types/media_types.cpp @@ -11,7 +11,7 @@ namespace types static const std::unordered_map audioFileInfo_ { {AudioFile::EasAttentionSignal, - "qrc:/res/audio/wikimedia/" + ":/res/audio/wikimedia/" "Emergency_Alert_System_Attention_Signal_20s.ogg"}}; const std::string& GetMediaPath(AudioFile audioFile) diff --git a/test/data b/test/data index 85525670..8a633285 160000 --- a/test/data +++ b/test/data @@ -1 +1 @@ -Subproject commit 85525670368987258d41f2a7b0e92266dcec9048 +Subproject commit 8a633285ecbe8ff7d48631485620a7c7a5257229