summaryrefslogtreecommitdiff
path: root/src/system_fsm/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/system_fsm/include')
-rw-r--r--src/system_fsm/include/system_events.hpp1
-rw-r--r--src/system_fsm/include/system_fsm.hpp8
2 files changed, 7 insertions, 2 deletions
diff --git a/src/system_fsm/include/system_events.hpp b/src/system_fsm/include/system_events.hpp
index a363887e..32394958 100644
--- a/src/system_fsm/include/system_events.hpp
+++ b/src/system_fsm/include/system_events.hpp
@@ -76,6 +76,7 @@ struct GpioInterrupt : tinyfsm::Event {};
struct SamdInterrupt : tinyfsm::Event {};
struct IdleTimeout : tinyfsm::Event {};
+struct UnmountTimeout : tinyfsm::Event {};
} // namespace internal
diff --git a/src/system_fsm/include/system_fsm.hpp b/src/system_fsm/include/system_fsm.hpp
index 5a0ea599..cc60e43b 100644
--- a/src/system_fsm/include/system_fsm.hpp
+++ b/src/system_fsm/include/system_fsm.hpp
@@ -63,8 +63,9 @@ class SystemState : public tinyfsm::Fsm<SystemState> {
virtual void react(const SdDetectChanged&) {}
virtual void react(const SamdUsbMscChanged&) {}
virtual void react(const database::event::UpdateFinished&) {}
- virtual void react(const audio::PlaybackFinished&) {}
+ virtual void react(const audio::PlaybackStopped&) {}
virtual void react(const internal::IdleTimeout&) {}
+ virtual void react(const internal::UnmountTimeout&) {}
protected:
auto IdleCondition() -> bool;
@@ -100,13 +101,16 @@ class Running : public SystemState {
void react(const KeyLockChanged&) override;
void react(const SdDetectChanged&) override;
- void react(const audio::PlaybackFinished&) override;
+ void react(const audio::PlaybackStopped&) override;
void react(const database::event::UpdateFinished&) override;
void react(const SamdUsbMscChanged&) override;
+ void react(const internal::UnmountTimeout&) override;
using SystemState::react;
private:
+ auto checkIdle() -> void;
+
auto mountStorage() -> bool;
auto unmountStorage() -> void;