From 0347555d5b2314e1be58261ef29fa13a76c039e6 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Fri, 30 Jun 2023 17:05:11 +1000 Subject: Start on converting gpio expander interupts to fsm events --- src/audio/include/audio_events.hpp | 3 +++ src/audio/include/audio_fsm.hpp | 3 +++ src/audio/include/audio_sink.hpp | 4 ++-- src/audio/include/i2s_audio_output.hpp | 4 ++-- 4 files changed, 10 insertions(+), 4 deletions(-) (limited to 'src/audio/include') diff --git a/src/audio/include/audio_events.hpp b/src/audio/include/audio_events.hpp index 7359e8ac..019b65a2 100644 --- a/src/audio/include/audio_events.hpp +++ b/src/audio/include/audio_events.hpp @@ -7,6 +7,7 @@ #pragma once #include +#include #include #include "tinyfsm.hpp" @@ -32,4 +33,6 @@ struct InputFileOpened : tinyfsm::Event {}; struct InputFileFinished : tinyfsm::Event {}; struct AudioPipelineIdle : tinyfsm::Event {}; +struct VolumeChanged : tinyfsm::Event {}; + } // namespace audio diff --git a/src/audio/include/audio_fsm.hpp b/src/audio/include/audio_fsm.hpp index 1f3b1dbd..7e84785f 100644 --- a/src/audio/include/audio_fsm.hpp +++ b/src/audio/include/audio_fsm.hpp @@ -40,6 +40,9 @@ class AudioState : public tinyfsm::Fsm { void react(const system_fsm::StorageMounted&); + void react(const system_fsm::KeyUpChanged&); + void react(const system_fsm::KeyDownChanged&); + virtual void react(const system_fsm::BootComplete&) {} virtual void react(const PlayTrack&) {} virtual void react(const PlayFile&) {} diff --git a/src/audio/include/audio_sink.hpp b/src/audio/include/audio_sink.hpp index e6538bda..ac007bf8 100644 --- a/src/audio/include/audio_sink.hpp +++ b/src/audio/include/audio_sink.hpp @@ -45,8 +45,8 @@ class IAudioSink { virtual auto SetVolumeImbalance(int_fast8_t balance) -> void = 0; virtual auto SetVolume(uint_fast8_t percent) -> void = 0; virtual auto GetVolume() -> uint_fast8_t = 0; - virtual auto AdjustVolumeUp() -> void = 0; - virtual auto AdjustVolumeDown() -> void = 0; + virtual auto AdjustVolumeUp() -> bool = 0; + virtual auto AdjustVolumeDown() -> bool = 0; virtual auto Configure(const StreamInfo::Format& format) -> bool = 0; virtual auto Send(const cpp::span& data) -> void = 0; diff --git a/src/audio/include/i2s_audio_output.hpp b/src/audio/include/i2s_audio_output.hpp index 7c125476..5dd6cc27 100644 --- a/src/audio/include/i2s_audio_output.hpp +++ b/src/audio/include/i2s_audio_output.hpp @@ -34,8 +34,8 @@ class I2SAudioOutput : public IAudioSink { auto SetVolumeImbalance(int_fast8_t balance) -> void override; auto SetVolume(uint_fast8_t percent) -> void override; auto GetVolume() -> uint_fast8_t override; - auto AdjustVolumeUp() -> void override; - auto AdjustVolumeDown() -> void override; + auto AdjustVolumeUp() -> bool override; + auto AdjustVolumeDown() -> bool override; auto Configure(const StreamInfo::Format& format) -> bool override; auto Send(const cpp::span& data) -> void override; -- cgit v1.2.3