From dcc1f28bb24a6948ff4fc73c2d0178d641fd18af Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Tue, 15 Jun 2021 05:52:14 +0800 Subject: [PATCH] onroad: remove sound_map from OnroadAlert (#21258) * remove sound_map from OnroadAlert * fix indentation Co-authored-by: Adeeb Shihadeh old-commit-hash: 6816b6d8f8c73531e1ac4e6a49bce8e0e3a10f17 --- selfdrive/ui/qt/onroad.cc | 29 ++++++++++++++++++++--------- selfdrive/ui/qt/onroad.h | 14 +------------- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/selfdrive/ui/qt/onroad.cc b/selfdrive/ui/qt/onroad.cc index 94e0e085e9..c321e7ebe0 100644 --- a/selfdrive/ui/qt/onroad.cc +++ b/selfdrive/ui/qt/onroad.cc @@ -67,9 +67,19 @@ void OnroadWindow::offroadTransition(bool offroad) { // ***** onroad widgets ***** OnroadAlerts::OnroadAlerts(QWidget *parent) : QWidget(parent) { - for (auto &kv : sound_map) { - auto path = QUrl::fromLocalFile(kv.second.first); - sounds[kv.first].setSource(path); + std::tuple sound_list[] = { + {AudibleAlert::CHIME_DISENGAGE, "../assets/sounds/disengaged.wav", false}, + {AudibleAlert::CHIME_ENGAGE, "../assets/sounds/engaged.wav", false}, + {AudibleAlert::CHIME_WARNING1, "../assets/sounds/warning_1.wav", false}, + {AudibleAlert::CHIME_WARNING2, "../assets/sounds/warning_2.wav", false}, + {AudibleAlert::CHIME_WARNING2_REPEAT, "../assets/sounds/warning_2.wav", true}, + {AudibleAlert::CHIME_WARNING_REPEAT, "../assets/sounds/warning_repeat.wav", true}, + {AudibleAlert::CHIME_ERROR, "../assets/sounds/error.wav", false}, + {AudibleAlert::CHIME_PROMPT, "../assets/sounds/error.wav", false}}; + + for (auto &[alert, fn, loops] : sound_list) { + sounds[alert].first.setSource(QUrl::fromLocalFile(fn)); + sounds[alert].second = loops ? QSoundEffect::Infinite : 0; } } @@ -132,17 +142,18 @@ void OnroadAlerts::updateAlert(const QString &t1, const QString &t2, float blink } void OnroadAlerts::playSound(AudibleAlert alert) { - int loops = sound_map[alert].second ? QSoundEffect::Infinite : 0; - sounds[alert].setLoopCount(loops); - sounds[alert].setVolume(volume); - sounds[alert].play(); + auto &[sound, loops] = sounds[alert]; + sound.setLoopCount(loops); + sound.setVolume(volume); + sound.play(); } void OnroadAlerts::stopSounds() { for (auto &kv : sounds) { // Only stop repeating sounds - if (kv.second.loopsRemaining() == QSoundEffect::Infinite) { - kv.second.stop(); + auto &[sound, loops] = kv.second; + if (sound.loopsRemaining() == QSoundEffect::Infinite) { + sound.stop(); } } } diff --git a/selfdrive/ui/qt/onroad.h b/selfdrive/ui/qt/onroad.h index 4907dc0a3e..5653c41536 100644 --- a/selfdrive/ui/qt/onroad.h +++ b/selfdrive/ui/qt/onroad.h @@ -29,21 +29,9 @@ private: void updateAlert(const QString &t1, const QString &t2, float blink_rate, const std::string &type, cereal::ControlsState::AlertSize size, AudibleAlert sound); - std::map> sound_map { - // AudibleAlert, (file path, inf loop) - {AudibleAlert::CHIME_DISENGAGE, {"../assets/sounds/disengaged.wav", false}}, - {AudibleAlert::CHIME_ENGAGE, {"../assets/sounds/engaged.wav", false}}, - {AudibleAlert::CHIME_WARNING1, {"../assets/sounds/warning_1.wav", false}}, - {AudibleAlert::CHIME_WARNING2, {"../assets/sounds/warning_2.wav", false}}, - {AudibleAlert::CHIME_WARNING2_REPEAT, {"../assets/sounds/warning_2.wav", true}}, - {AudibleAlert::CHIME_WARNING_REPEAT, {"../assets/sounds/warning_repeat.wav", true}}, - {AudibleAlert::CHIME_ERROR, {"../assets/sounds/error.wav", false}}, - {AudibleAlert::CHIME_PROMPT, {"../assets/sounds/error.wav", false}} - }; - QColor bg; float volume = Hardware::MIN_VOLUME; - std::map sounds; + std::map> sounds; float blinking_rate = 0; QString text1, text2; std::string alert_type;