diff options
| author | jacqueline <me@jacqueline.id.au> | 2024-09-13 10:17:34 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2024-09-13 10:17:34 +1000 |
| commit | 1106012bde558dab5e192c2129178d44f80b9e4e (patch) | |
| tree | 12e57cd25efda02a1c6dd58250b3fe8a644434de /src/tangara | |
| parent | d8b9e65e68214b4aa2bb24ddae3602d5788bc469 (diff) | |
| parent | a174d76aa16e09ddfc2ce67393c92ed947a817a5 (diff) | |
| download | tangara-fw-1106012bde558dab5e192c2129178d44f80b9e4e.tar.gz | |
Merge branch 'main' into jqln/tts
Diffstat (limited to 'src/tangara')
| -rw-r--r-- | src/tangara/lua/lua_theme.cpp | 10 | ||||
| -rw-r--r-- | src/tangara/system_fsm/running.cpp | 9 | ||||
| -rw-r--r-- | src/tangara/system_fsm/system_events.hpp | 2 | ||||
| -rw-r--r-- | src/tangara/system_fsm/system_fsm.hpp | 6 | ||||
| -rw-r--r-- | src/tangara/ui/screenshot.cpp | 2 | ||||
| -rw-r--r-- | src/tangara/ui/ui_fsm.cpp | 2 |
6 files changed, 18 insertions, 13 deletions
diff --git a/src/tangara/lua/lua_theme.cpp b/src/tangara/lua/lua_theme.cpp index 03578778..372712b3 100644 --- a/src/tangara/lua/lua_theme.cpp +++ b/src/tangara/lua/lua_theme.cpp @@ -22,12 +22,12 @@ namespace lua { -static auto set_style(lua_State* L) -> int { - // Get the object and class name from the stack - std::string class_name = luaL_checkstring(L, -1); +static auto set_subject(lua_State* L) -> int { + // Get the object and subject name from the stack + std::string subject_name = luaL_checkstring(L, -1); lv_obj_t* obj = luavgl_to_obj(L, -2); if (obj != NULL) { - ui::themes::Theme::instance()->ApplyStyle(obj, class_name); + ui::themes::Theme::instance()->ApplyStyle(obj, subject_name); } return 0; } @@ -107,7 +107,7 @@ static auto theme_filename(lua_State* L) -> int { } static const struct luaL_Reg kThemeFuncs[] = {{"set", set_theme}, - {"set_style", set_style}, + {"set_subject", set_subject}, {"load_theme", load_theme}, {"theme_filename", theme_filename}, {NULL, NULL}}; diff --git a/src/tangara/system_fsm/running.cpp b/src/tangara/system_fsm/running.cpp index 07166e2f..33c6c7dc 100644 --- a/src/tangara/system_fsm/running.cpp +++ b/src/tangara/system_fsm/running.cpp @@ -40,7 +40,7 @@ void Running::entry() { sUnmountTimer = xTimerCreate("unmount_timeout", kTicksBeforeUnmount, false, NULL, timer_callback); } - mountStorage(); + events::System().Dispatch(internal::Mount{}); } void Running::exit() { @@ -72,7 +72,8 @@ void Running::react(const SdDetectChanged& ev) { } if (ev.has_sd_card && !sStorage) { - mountStorage(); + events::System().Dispatch(internal::Mount{}); + return; } // Don't automatically unmount, since this event seems to occasionally happen @@ -120,7 +121,7 @@ void Running::react(const SamdUsbMscChanged& ev) { gpios.WriteSync(drivers::IGpios::Pin::kSdPowerEnable, 0); // Now it's ready for us. - mountStorage(); + events::System().Dispatch(internal::Mount{}); } } @@ -145,7 +146,7 @@ auto Running::updateSdState(drivers::SdState state) -> void { events::System().Dispatch(SdStateChanged{}); } -auto Running::mountStorage() -> void { +void Running::react(const internal::Mount&) { // Only mount our storage if we know it's not currently in use by the SAMD. if (sServices->samd().UsbMassStorage()) { updateSdState(drivers::SdState::kNotMounted); diff --git a/src/tangara/system_fsm/system_events.hpp b/src/tangara/system_fsm/system_events.hpp index 3452e58e..c93c14d5 100644 --- a/src/tangara/system_fsm/system_events.hpp +++ b/src/tangara/system_fsm/system_events.hpp @@ -82,6 +82,8 @@ struct SamdInterrupt : tinyfsm::Event {}; struct IdleTimeout : tinyfsm::Event {}; struct UnmountTimeout : tinyfsm::Event {}; +struct Mount : tinyfsm::Event {}; + } // namespace internal } // namespace system_fsm diff --git a/src/tangara/system_fsm/system_fsm.hpp b/src/tangara/system_fsm/system_fsm.hpp index 5c4157cd..40009781 100644 --- a/src/tangara/system_fsm/system_fsm.hpp +++ b/src/tangara/system_fsm/system_fsm.hpp @@ -63,6 +63,7 @@ class SystemState : public tinyfsm::Fsm<SystemState> { virtual void react(const audio::PlaybackUpdate&) {} virtual void react(const internal::IdleTimeout&) {} virtual void react(const internal::UnmountTimeout&) {} + virtual void react(const internal::Mount&) {} protected: auto IdleCondition() -> bool; @@ -101,16 +102,17 @@ class Running : public SystemState { void react(const audio::PlaybackUpdate&) override; void react(const database::event::UpdateFinished&) override; void react(const SamdUsbMscChanged&) override; - void react(const internal::UnmountTimeout&) override; void react(const StorageError&) override; + void react(const internal::UnmountTimeout&) override; + void react(const internal::Mount&) override; + using SystemState::react; private: auto checkIdle() -> void; auto updateSdState(drivers::SdState) -> void; - auto mountStorage() -> void; auto unmountStorage() -> void; bool storage_mounted_; diff --git a/src/tangara/ui/screenshot.cpp b/src/tangara/ui/screenshot.cpp index e4f9cc3f..b6ee4e2f 100644 --- a/src/tangara/ui/screenshot.cpp +++ b/src/tangara/ui/screenshot.cpp @@ -34,7 +34,7 @@ auto SaveScreenshot(lv_obj_t* obj, const std::string& path) -> void { } // The LVGL lodepng fork uses LVGL's file API, so an extra '/' is needed. - std::string fullpath = "//sdcard/" + path; + std::string fullpath = "//sd/" + path; auto res = lodepng_encode_file(fullpath.c_str(), buf->data, buf->header.w, buf->header.h, LCT_RGB, 8); diff --git a/src/tangara/ui/ui_fsm.cpp b/src/tangara/ui/ui_fsm.cpp index 2009a888..3f59d4ad 100644 --- a/src/tangara/ui/ui_fsm.cpp +++ b/src/tangara/ui/ui_fsm.cpp @@ -730,7 +730,7 @@ void Lua::entry() { sPowerFastChargeEnabled.setDirect(sServices->nvs().FastCharge()); if (sServices->sd() == drivers::SdState::kMounted) { - sLua->RunScript("/sdcard/config.lua"); + sLua->RunScript("/sd/config.lua"); } sLua->RunScript("/lua/main.lua"); } |
