From f2bb2e25281a14adf9c6b2e7e91bfe14460f2ae4 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Tue, 29 Aug 2023 12:10:27 +1000 Subject: Add a brightness slider to settings --- src/ui/ui_fsm.cpp | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'src/ui/ui_fsm.cpp') 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 UiState::sTouchWheel; std::shared_ptr UiState::sRelativeWheel; std::shared_ptr UiState::sDisplay; std::shared_ptr UiState::sBattery; +std::shared_ptr UiState::sNvs; std::weak_ptr UiState::sDb; std::stack> UiState::sScreens; @@ -53,9 +55,11 @@ std::shared_ptr UiState::sCurrentScreen; std::shared_ptr UiState::sCurrentModal; auto UiState::Init(drivers::IGpios* gpio_expander, + std::shared_ptr nvs, audio::TrackQueue* queue, std::shared_ptr 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; + 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) { -- cgit v1.2.3