From a69b95187be4afce4eefa8f7b08ceca7b88b7724 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Wed, 15 Jan 2025 15:37:35 +1100 Subject: Handle lock state in each input device, instead of in the lvgl driver --- src/tangara/input/lvgl_input_driver.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/tangara/input/lvgl_input_driver.cpp') diff --git a/src/tangara/input/lvgl_input_driver.cpp b/src/tangara/input/lvgl_input_driver.cpp index 824e49cc..60d9f816 100644 --- a/src/tangara/input/lvgl_input_driver.cpp +++ b/src/tangara/input/lvgl_input_driver.cpp @@ -114,11 +114,6 @@ auto LvglInputDriver::setGroup(lv_group_t* g) -> void { } auto LvglInputDriver::read(lv_indev_data_t* data) -> void { - // TODO: we should pass lock state on to the individual devices, since they - // may wish to either ignore the lock state, or power down until unlock. - if (is_locked_) { - return; - } for (auto&& device : inputs_) { device->read(data); } @@ -218,10 +213,15 @@ auto LvglInputDriver::pushHooks(lua_State* L) -> int { lua_newtable(L); for (auto& dev : inputs_) { + auto triggers = dev->triggers(); + if (triggers.empty()) { + continue; + } + lua_pushlstring(L, dev->name().data(), dev->name().size()); lua_newtable(L); - for (auto& trigger : dev->triggers()) { + for (auto& trigger : triggers) { lua_pushlstring(L, trigger.get().name().data(), trigger.get().name().size()); LuaTrigger** lua_obj = reinterpret_cast( -- cgit v1.2.3 From 6886c686d5b10ad8061e900aa0e7b326b0d5d04d Mon Sep 17 00:00:00 2001 From: jacqueline Date: Fri, 17 Jan 2025 09:39:20 +1100 Subject: Add comment --- src/tangara/input/lvgl_input_driver.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/tangara/input/lvgl_input_driver.cpp') diff --git a/src/tangara/input/lvgl_input_driver.cpp b/src/tangara/input/lvgl_input_driver.cpp index 60d9f816..c008b007 100644 --- a/src/tangara/input/lvgl_input_driver.cpp +++ b/src/tangara/input/lvgl_input_driver.cpp @@ -215,6 +215,8 @@ auto LvglInputDriver::pushHooks(lua_State* L) -> int { for (auto& dev : inputs_) { auto triggers = dev->triggers(); if (triggers.empty()) { + // Some devices, e.g. hard reset, have no triggers. Don't include them + // in the hooks table. continue; } -- cgit v1.2.3