summaryrefslogtreecommitdiff
path: root/src/ui/include
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-11-14 13:20:04 +1100
committerjacqueline <me@jacqueline.id.au>2023-11-14 13:20:04 +1100
commit71ed09a6f70901c9097973a44b24d6a6ced2834f (patch)
tree3d02e4e180cd0a5caa1185eba89181607c4bccb9 /src/ui/include
parent8a0a167adbf3d9b6f8b6f16aaf20ca39ad5549de (diff)
downloadtangara-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.hpp19
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 {