mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-06-29 18:42:07 +08:00
onroad: remove sound_map from OnroadAlert (#21258)
* remove sound_map from OnroadAlert * fix indentation Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com> old-commit-hash: 6816b6d8f8c73531e1ac4e6a49bce8e0e3a10f17
This commit is contained in:
@@ -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<AudibleAlert, QString, bool> 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<AudibleAlert, std::pair<QString, bool>> 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<AudibleAlert, QSoundEffect> sounds;
|
||||
std::map<AudibleAlert, std::pair<QSoundEffect, int>> sounds;
|
||||
float blinking_rate = 0;
|
||||
QString text1, text2;
|
||||
std::string alert_type;
|
||||
|
||||
Reference in New Issue
Block a user