summaryrefslogtreecommitdiff
path: root/src/ui/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/include')
-rw-r--r--src/ui/include/screen_lua.hpp22
-rw-r--r--src/ui/include/screen_menu.hpp34
-rw-r--r--src/ui/include/ui_events.hpp2
-rw-r--r--src/ui/include/ui_fsm.hpp24
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 {