diff options
Diffstat (limited to 'src/ui/include')
| -rw-r--r-- | src/ui/include/screen_lua.hpp | 22 | ||||
| -rw-r--r-- | src/ui/include/screen_menu.hpp | 34 | ||||
| -rw-r--r-- | src/ui/include/ui_events.hpp | 2 | ||||
| -rw-r--r-- | src/ui/include/ui_fsm.hpp | 24 |
4 files changed, 41 insertions, 41 deletions
diff --git a/src/ui/include/screen_lua.hpp b/src/ui/include/screen_lua.hpp new file mode 100644 index 00000000..df83ea8b --- /dev/null +++ b/src/ui/include/screen_lua.hpp @@ -0,0 +1,22 @@ +/* + * Copyright 2023 jacqueline <me@jacqueline.id.au> + * + * SPDX-License-Identifier: GPL-3.0-only + */ + +#pragma once + +#include "lua.hpp" + +#include "screen.hpp" + +namespace ui { +namespace screens { + +class Lua : public Screen { + public: + explicit Lua(lua_State* l); +}; + +} // namespace screens +} // namespace ui diff --git a/src/ui/include/screen_menu.hpp b/src/ui/include/screen_menu.hpp deleted file mode 100644 index a83346f6..00000000 --- a/src/ui/include/screen_menu.hpp +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2023 jacqueline <me@jacqueline.id.au> - * - * SPDX-License-Identifier: GPL-3.0-only - */ - -#pragma once - -#include <memory> -#include <vector> - -#include "index.hpp" -#include "lvgl.h" - -#include "model_top_bar.hpp" -#include "screen.hpp" -#include "screen_settings.hpp" - -namespace ui { -namespace screens { - -class Menu : public MenuScreen { - public: - explicit Menu(models::TopBar&, std::vector<database::IndexInfo> indexes); - ~Menu(); - - private: - std::vector<database::IndexInfo> indexes_; - lv_obj_t* container_; - lv_obj_t* label_; -}; - -} // namespace screens -} // namespace ui diff --git a/src/ui/include/ui_events.hpp b/src/ui/include/ui_events.hpp index 2bee6222..b8dd459c 100644 --- a/src/ui/include/ui_events.hpp +++ b/src/ui/include/ui_events.hpp @@ -35,7 +35,7 @@ struct RecordSelected : tinyfsm::Event { }; struct IndexSelected : tinyfsm::Event { - database::IndexInfo index; + database::IndexId id; }; struct ControlSchemeChanged : tinyfsm::Event {}; diff --git a/src/ui/include/ui_fsm.hpp b/src/ui/include/ui_fsm.hpp index da63b77f..7d1d62d6 100644 --- a/src/ui/include/ui_fsm.hpp +++ b/src/ui/include/ui_fsm.hpp @@ -16,6 +16,7 @@ #include "bindey/property.h" #include "db_events.hpp" #include "gpios.hpp" +#include "lua_thread.hpp" #include "lvgl_task.hpp" #include "model_playback.hpp" #include "model_top_bar.hpp" @@ -89,7 +90,7 @@ class UiState : public tinyfsm::Fsm<UiState> { protected: void PushScreen(std::shared_ptr<Screen>); - void PopScreen(); + int PopScreen(); static std::unique_ptr<UiTask> sTask; static std::shared_ptr<system_fsm::ServiceLocator> sServices; @@ -99,6 +100,9 @@ class UiState : public tinyfsm::Fsm<UiState> { static std::stack<std::shared_ptr<Screen>> sScreens; static std::shared_ptr<Screen> sCurrentScreen; static std::shared_ptr<Modal> sCurrentModal; + static std::shared_ptr<lua::LuaThread> sLua; + + static std::weak_ptr<screens::Bluetooth> bluetooth_screen_; static models::Playback sPlaybackModel; static models::TopBar sTopBarModel; @@ -110,6 +114,19 @@ class Splash : public UiState { public: void exit() override; void react(const system_fsm::BootComplete&) override; + void react(const system_fsm::StorageMounted&) override; + using UiState::react; +}; + +class Lua : public UiState { + public: + void entry() override; + void exit() override; + + void react(const internal::IndexSelected&) override; + void react(const internal::ShowNowPlaying&) override; + void react(const internal::ShowSettingsPage&) override; + using UiState::react; }; @@ -131,20 +148,15 @@ class Browse : public UiState { void entry() override; void react(const internal::RecordSelected&) override; - void react(const internal::IndexSelected&) override; void react(const internal::BackPressed&) override; void react(const internal::ShowNowPlaying&) override; void react(const internal::ShowSettingsPage&) override; void react(const internal::ReindexDatabase&) override; - void react(const system_fsm::StorageMounted&) override; void react(const system_fsm::BluetoothDevicesChanged&) override; using UiState::react; - - private: - std::weak_ptr<screens::Bluetooth> bluetooth_screen_; }; class Playing : public UiState { |
