diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-11-14 13:20:04 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-11-14 13:20:04 +1100 |
| commit | 71ed09a6f70901c9097973a44b24d6a6ced2834f (patch) | |
| tree | 3d02e4e180cd0a5caa1185eba89181607c4bccb9 /src/ui/include | |
| parent | 8a0a167adbf3d9b6f8b6f16aaf20ca39ad5549de (diff) | |
| download | tangara-fw-71ed09a6f70901c9097973a44b24d6a6ced2834f.tar.gz | |
Add two-way databinding for lua, and flesh out the lua statusbar
Diffstat (limited to 'src/ui/include')
| -rw-r--r-- | src/ui/include/ui_fsm.hpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/ui/include/ui_fsm.hpp b/src/ui/include/ui_fsm.hpp index 7d1d62d6..39fae4b0 100644 --- a/src/ui/include/ui_fsm.hpp +++ b/src/ui/include/ui_fsm.hpp @@ -21,6 +21,7 @@ #include "model_playback.hpp" #include "model_top_bar.hpp" #include "nvs.hpp" +#include "property.hpp" #include "relative_wheel.hpp" #include "screen_playing.hpp" #include "screen_settings.hpp" @@ -56,9 +57,9 @@ class UiState : public tinyfsm::Fsm<UiState> { /* Fallback event handler. Does nothing. */ void react(const tinyfsm::Event& ev) {} - void react(const system_fsm::BatteryStateChanged&); - void react(const audio::PlaybackStarted&); - void react(const audio::PlaybackFinished&); + virtual void react(const system_fsm::BatteryStateChanged&); + virtual void react(const audio::PlaybackStarted&); + virtual void react(const audio::PlaybackFinished&); void react(const audio::PlaybackUpdate&); void react(const audio::QueueUpdate&); @@ -127,7 +128,19 @@ class Lua : public UiState { void react(const internal::ShowNowPlaying&) override; void react(const internal::ShowSettingsPage&) override; + void react(const system_fsm::BatteryStateChanged&) override; + void react(const audio::PlaybackStarted&) override; + void react(const audio::PlaybackFinished&) override; + using UiState::react; + + private: + std::shared_ptr<lua::Property> battery_pct_; + std::shared_ptr<lua::Property> battery_mv_; + std::shared_ptr<lua::Property> battery_charging_; + std::shared_ptr<lua::Property> bluetooth_en_; + std::shared_ptr<lua::Property> playback_playing_; + std::shared_ptr<lua::Property> playback_track_; }; class Onboarding : public UiState { |
