summaryrefslogtreecommitdiff
path: root/src/ui/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/include')
-rw-r--r--src/ui/include/modal_progress.hpp7
-rw-r--r--src/ui/include/ui_events.hpp1
-rw-r--r--src/ui/include/ui_fsm.hpp19
3 files changed, 26 insertions, 1 deletions
diff --git a/src/ui/include/modal_progress.hpp b/src/ui/include/modal_progress.hpp
index f312d509..2ccb671a 100644
--- a/src/ui/include/modal_progress.hpp
+++ b/src/ui/include/modal_progress.hpp
@@ -19,10 +19,15 @@ namespace modals {
class Progress : public Modal {
public:
- Progress(Screen*, std::pmr::string title);
+ Progress(Screen*, std::pmr::string title, std::pmr::string subtitle = "");
+
+ void title(const std::pmr::string&);
+ void subtitle(const std::pmr::string&);
private:
lv_obj_t* container_;
+ lv_obj_t* title_;
+ lv_obj_t* subtitle_;
};
} // namespace modals
diff --git a/src/ui/include/ui_events.hpp b/src/ui/include/ui_events.hpp
index e08f8888..4549a51d 100644
--- a/src/ui/include/ui_events.hpp
+++ b/src/ui/include/ui_events.hpp
@@ -37,6 +37,7 @@ struct IndexSelected : tinyfsm::Event {
};
struct ControlSchemeChanged : tinyfsm::Event {};
+struct ReindexDatabase : tinyfsm::Event {};
struct BackPressed : tinyfsm::Event {};
struct ShowNowPlaying : tinyfsm::Event {};
diff --git a/src/ui/include/ui_fsm.hpp b/src/ui/include/ui_fsm.hpp
index eef96b50..da63b77f 100644
--- a/src/ui/include/ui_fsm.hpp
+++ b/src/ui/include/ui_fsm.hpp
@@ -14,6 +14,7 @@
#include "audio_events.hpp"
#include "battery.hpp"
#include "bindey/property.h"
+#include "db_events.hpp"
#include "gpios.hpp"
#include "lvgl_task.hpp"
#include "model_playback.hpp"
@@ -75,6 +76,11 @@ class UiState : public tinyfsm::Fsm<UiState> {
}
virtual void react(const internal::OnboardingNavigate&) {}
void react(const internal::ControlSchemeChanged&);
+ virtual void react(const internal::ReindexDatabase&){};
+
+ virtual void react(const database::event::UpdateStarted&){};
+ virtual void react(const database::event::UpdateProgress&){};
+ virtual void react(const database::event::UpdateFinished&){};
virtual void react(const system_fsm::DisplayReady&) {}
virtual void react(const system_fsm::BootComplete&) {}
@@ -130,6 +136,7 @@ class Browse : public UiState {
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;
@@ -150,6 +157,18 @@ class Playing : public UiState {
using UiState::react;
};
+class Indexing : public UiState {
+ public:
+ void entry() override;
+ void exit() override;
+
+ void react(const database::event::UpdateStarted&) override;
+ void react(const database::event::UpdateProgress&) override;
+ void react(const database::event::UpdateFinished&) override;
+
+ using UiState::react;
+};
+
class FatalError : public UiState {};
} // namespace states