summaryrefslogtreecommitdiff
path: root/src/audio/audio_fsm.cpp
diff options
context:
space:
mode:
authorcooljqln <cooljqln@noreply.codeberg.org>2024-04-02 04:19:50 +0000
committercooljqln <cooljqln@noreply.codeberg.org>2024-04-02 04:19:50 +0000
commitb229f452a6a0c8e047e1e9c0c709953ed822c610 (patch)
tree5814aa946a5e260a688831a028031e6613eecc2f /src/audio/audio_fsm.cpp
parent0d0c4b2307cac8436fea7276956f293262b265ed (diff)
parent25dca40e5dab82c5a814233813c24180fcf975eb (diff)
downloadtangara-fw-b229f452a6a0c8e047e1e9c0c709953ed822c610.tar.gz
Merge pull request 'lua-volume' (#60) from lua-volume into main
Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/60 Reviewed-by: cooljqln <cooljqln@noreply.codeberg.org>
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) {