diff options
Diffstat (limited to 'src/ui/include')
| -rw-r--r-- | src/ui/include/screen_settings.hpp | 23 | ||||
| -rw-r--r-- | src/ui/include/ui_events.hpp | 11 | ||||
| -rw-r--r-- | src/ui/include/ui_fsm.hpp | 3 |
3 files changed, 25 insertions, 12 deletions
diff --git a/src/ui/include/screen_settings.hpp b/src/ui/include/screen_settings.hpp index 66124164..53d9277b 100644 --- a/src/ui/include/screen_settings.hpp +++ b/src/ui/include/screen_settings.hpp @@ -6,12 +6,15 @@ #pragma once +#include <cstdint> #include <memory> #include <vector> +#include "display.hpp" #include "index.hpp" #include "lvgl.h" +#include "nvs.hpp" #include "screen.hpp" namespace ui { @@ -20,16 +23,6 @@ namespace screens { class Settings : public MenuScreen { public: Settings(); - ~Settings(); - - private: - std::shared_ptr<Screen> bluetooth_; - std::shared_ptr<Screen> headphones_; - std::shared_ptr<Screen> appearance_; - std::shared_ptr<Screen> input_method_; - std::shared_ptr<Screen> storage_; - std::shared_ptr<Screen> firmware_update_; - std::shared_ptr<Screen> about_; }; class Bluetooth : public MenuScreen { @@ -44,7 +37,15 @@ class Headphones : public MenuScreen { class Appearance : public MenuScreen { public: - Appearance(); + Appearance(drivers::NvsStorage* nvs, drivers::Display* display); + + auto ChangeBrightness(uint_fast8_t) -> void; + + private: + drivers::NvsStorage* nvs_; + drivers::Display* display_; + + lv_obj_t* current_brightness_label_; }; class InputMethod : public MenuScreen { diff --git a/src/ui/include/ui_events.hpp b/src/ui/include/ui_events.hpp index 2f26c854..297370db 100644 --- a/src/ui/include/ui_events.hpp +++ b/src/ui/include/ui_events.hpp @@ -39,7 +39,16 @@ struct IndexSelected : tinyfsm::Event { struct BackPressed : tinyfsm::Event {}; struct ShowNowPlaying : tinyfsm::Event {}; struct ShowSettingsPage : tinyfsm::Event { - std::shared_ptr<Screen> screen; + enum class Page { + kRoot, + kBluetooth, + kHeadphones, + kAppearance, + kInput, + kStorage, + kFirmwareUpdate, + kAbout, + } page; }; struct ModalConfirmPressed : tinyfsm::Event {}; diff --git a/src/ui/include/ui_fsm.hpp b/src/ui/include/ui_fsm.hpp index 17214e7b..1fa6bf26 100644 --- a/src/ui/include/ui_fsm.hpp +++ b/src/ui/include/ui_fsm.hpp @@ -11,6 +11,7 @@ #include "audio_events.hpp" #include "battery.hpp" +#include "nvs.hpp" #include "relative_wheel.hpp" #include "screen_playing.hpp" #include "tinyfsm.hpp" @@ -29,6 +30,7 @@ namespace ui { class UiState : public tinyfsm::Fsm<UiState> { public: static auto Init(drivers::IGpios*, + std::shared_ptr<drivers::NvsStorage>, audio::TrackQueue*, std::shared_ptr<battery::Battery>) -> bool; @@ -81,6 +83,7 @@ class UiState : public tinyfsm::Fsm<UiState> { static std::shared_ptr<drivers::RelativeWheel> sRelativeWheel; static std::shared_ptr<drivers::Display> sDisplay; static std::shared_ptr<battery::Battery> sBattery; + static std::shared_ptr<drivers::NvsStorage> sNvs; static std::weak_ptr<database::Database> sDb; static std::stack<std::shared_ptr<Screen>> sScreens; |
