summaryrefslogtreecommitdiff
path: root/src/tangara
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-09-13 10:17:34 +1000
committerjacqueline <me@jacqueline.id.au>2024-09-13 10:17:34 +1000
commit1106012bde558dab5e192c2129178d44f80b9e4e (patch)
tree12e57cd25efda02a1c6dd58250b3fe8a644434de /src/tangara
parentd8b9e65e68214b4aa2bb24ddae3602d5788bc469 (diff)
parenta174d76aa16e09ddfc2ce67393c92ed947a817a5 (diff)
downloadtangara-fw-1106012bde558dab5e192c2129178d44f80b9e4e.tar.gz
Merge branch 'main' into jqln/tts
Diffstat (limited to 'src/tangara')
-rw-r--r--src/tangara/lua/lua_theme.cpp10
-rw-r--r--src/tangara/system_fsm/running.cpp9
-rw-r--r--src/tangara/system_fsm/system_events.hpp2
-rw-r--r--src/tangara/system_fsm/system_fsm.hpp6
-rw-r--r--src/tangara/ui/screenshot.cpp2
-rw-r--r--src/tangara/ui/ui_fsm.cpp2
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");
}