summaryrefslogtreecommitdiff
path: root/src/audio/audio_fsm.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-04-02 20:42:19 +1100
committerjacqueline <me@jacqueline.id.au>2024-04-02 20:42:19 +1100
commitc24479d4d8c2d6258615bb7778036f0fb3440703 (patch)
tree6bdea2f56b3e5877acceacc3a90d95411107e3ad /src/audio/audio_fsm.cpp
parent654fde5f6819cb52a198a524ab78d97e51ab97c7 (diff)
parentb229f452a6a0c8e047e1e9c0c709953ed822c610 (diff)
downloadtangara-fw-c24479d4d8c2d6258615bb7778036f0fb3440703.tar.gz
Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw
Diffstat (limited to 'src/audio/audio_fsm.cpp')
-rw-r--r--src/audio/audio_fsm.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/audio/audio_fsm.cpp b/src/audio/audio_fsm.cpp
index 424b0eff..a8f1260f 100644
--- a/src/audio/audio_fsm.cpp
+++ b/src/audio/audio_fsm.cpp
@@ -276,7 +276,24 @@ void AudioState::react(const system_fsm::HasPhonesChanged& ev) {
}
void AudioState::react(const SetVolume& ev) {
- // TODO.
+ if (ev.db.has_value()) {
+ if (sOutput->SetVolumeDb(ev.db.value())) {
+ commitVolume();
+ events::Ui().Dispatch(VolumeChanged{
+ .percent = sOutput->GetVolumePct(),
+ .db = sOutput->GetVolumeDb(),
+ });
+ }
+
+ } else if (ev.percent.has_value()) {
+ if (sOutput->SetVolumePct(ev.percent.value())) {
+ commitVolume();
+ events::Ui().Dispatch(VolumeChanged{
+ .percent = sOutput->GetVolumePct(),
+ .db = sOutput->GetVolumeDb(),
+ });
+ }
+ }
}
void AudioState::react(const SetVolumeLimit& ev) {