diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-08-29 12:10:27 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-08-29 12:10:27 +1000 |
| commit | f2bb2e25281a14adf9c6b2e7e91bfe14460f2ae4 (patch) | |
| tree | a5489ec053652bdd473d52a16edb5c360c863b9e /src/ui/ui_fsm.cpp | |
| parent | 8ee5e781e76a9db005e2a74a299d6cd24e46b8d0 (diff) | |
| download | tangara-fw-f2bb2e25281a14adf9c6b2e7e91bfe14460f2ae4.tar.gz | |
Add a brightness slider to settings
Diffstat (limited to 'src/ui/ui_fsm.cpp')
| -rw-r--r-- | src/ui/ui_fsm.cpp | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/src/ui/ui_fsm.cpp b/src/ui/ui_fsm.cpp index dd3ba8fd..733b6bee 100644 --- a/src/ui/ui_fsm.cpp +++ b/src/ui/ui_fsm.cpp @@ -19,6 +19,7 @@ #include "gpios.hpp" #include "lvgl_task.hpp" #include "modal_confirm.hpp" +#include "nvs.hpp" #include "relative_wheel.hpp" #include "screen.hpp" #include "screen_menu.hpp" @@ -46,6 +47,7 @@ std::shared_ptr<drivers::TouchWheel> UiState::sTouchWheel; std::shared_ptr<drivers::RelativeWheel> UiState::sRelativeWheel; std::shared_ptr<drivers::Display> UiState::sDisplay; std::shared_ptr<battery::Battery> UiState::sBattery; +std::shared_ptr<drivers::NvsStorage> UiState::sNvs; std::weak_ptr<database::Database> UiState::sDb; std::stack<std::shared_ptr<Screen>> UiState::sScreens; @@ -53,9 +55,11 @@ std::shared_ptr<Screen> UiState::sCurrentScreen; std::shared_ptr<Modal> UiState::sCurrentModal; auto UiState::Init(drivers::IGpios* gpio_expander, + std::shared_ptr<drivers::NvsStorage> nvs, audio::TrackQueue* queue, std::shared_ptr<battery::Battery> battery) -> bool { sIGpios = gpio_expander; + sNvs = nvs; sQueue = queue; sBattery = battery; @@ -160,7 +164,36 @@ void Browse::react(const internal::ShowNowPlaying& ev) { } void Browse::react(const internal::ShowSettingsPage& ev) { - PushScreen(ev.screen); + std::shared_ptr<Screen> screen; + switch (ev.page) { + case internal::ShowSettingsPage::Page::kRoot: + screen.reset(new screens::Settings()); + break; + case internal::ShowSettingsPage::Page::kBluetooth: + screen.reset(new screens::Bluetooth()); + break; + case internal::ShowSettingsPage::Page::kHeadphones: + screen.reset(new screens::Headphones()); + break; + case internal::ShowSettingsPage::Page::kAppearance: + screen.reset(new screens::Appearance(sNvs.get(), sDisplay.get())); + break; + case internal::ShowSettingsPage::Page::kInput: + screen.reset(new screens::InputMethod()); + break; + case internal::ShowSettingsPage::Page::kStorage: + screen.reset(new screens::Storage()); + break; + case internal::ShowSettingsPage::Page::kFirmwareUpdate: + screen.reset(new screens::FirmwareUpdate()); + break; + case internal::ShowSettingsPage::Page::kAbout: + screen.reset(new screens::About()); + break; + } + if (screen) { + PushScreen(screen); + } } void Browse::react(const internal::RecordSelected& ev) { |
