diff --git a/CMakeLists.txt b/CMakeLists.txt index 216282ac..5175bf95 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ # CMakeLists in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.16) -set(PROJECT_VER "1.8.3") +set(PROJECT_VER "1.8.4") # Add this line to disable the specific warning add_compile_options(-Wno-missing-field-initializers) diff --git a/main/boards/atk-dnesp32s3-box0/atk_dnesp32s3_box0.cc b/main/boards/atk-dnesp32s3-box0/atk_dnesp32s3_box0.cc index db9154cc..f5752d2f 100644 --- a/main/boards/atk-dnesp32s3-box0/atk_dnesp32s3_box0.cc +++ b/main/boards/atk-dnesp32s3-box0/atk_dnesp32s3_box0.cc @@ -139,8 +139,7 @@ private: power_save_timer_->OnEnterSleepMode([this]() { power_sleep_ = kDeviceNeutralSleep; XiaozhiStatus_ = kDevice_join_Sleep; - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); if (LcdStatus_ != kDevicelcdbacklightOff) { GetBacklight()->SetBrightness(1); @@ -148,8 +147,7 @@ private: }); power_save_timer_->OnExitSleepMode([this]() { power_sleep_ = kDeviceNoSleep; - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); if (XiaozhiStatus_ != kDevice_Exit_Sleep) { GetBacklight()->RestoreBrightness(); diff --git a/main/boards/atk-dnesp32s3-box2-4g/atk_dnesp32s3_box2.cc b/main/boards/atk-dnesp32s3-box2-4g/atk_dnesp32s3_box2.cc index ad4631b0..a93e229e 100644 --- a/main/boards/atk-dnesp32s3-box2-4g/atk_dnesp32s3_box2.cc +++ b/main/boards/atk-dnesp32s3-box2-4g/atk_dnesp32s3_box2.cc @@ -99,13 +99,11 @@ private: void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(1); }); power_save_timer_->OnExitSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this]() { diff --git a/main/boards/atk-dnesp32s3-box2-wifi/atk_dnesp32s3_box2.cc b/main/boards/atk-dnesp32s3-box2-wifi/atk_dnesp32s3_box2.cc index 433ffb77..be9265ea 100644 --- a/main/boards/atk-dnesp32s3-box2-wifi/atk_dnesp32s3_box2.cc +++ b/main/boards/atk-dnesp32s3-box2-wifi/atk_dnesp32s3_box2.cc @@ -99,13 +99,11 @@ private: void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(1); }); power_save_timer_->OnExitSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this]() { diff --git a/main/boards/common/power_save_timer.cc b/main/boards/common/power_save_timer.cc index 378827e5..75ed1039 100644 --- a/main/boards/common/power_save_timer.cc +++ b/main/boards/common/power_save_timer.cc @@ -62,12 +62,25 @@ void PowerSaveTimer::PowerSaveCheck() { ticks_++; if (seconds_to_sleep_ != -1 && ticks_ >= seconds_to_sleep_) { if (!in_sleep_mode_) { + ESP_LOGI(TAG, "Enabling power save mode"); in_sleep_mode_ = true; if (on_enter_sleep_mode_) { on_enter_sleep_mode_(); } if (cpu_max_freq_ != -1) { + // Disable wake word detection + auto& audio_service = app.GetAudioService(); + is_wake_word_running_ = audio_service.IsWakeWordRunning(); + if (is_wake_word_running_) { + audio_service.EnableWakeWordDetection(false); + } + // Disable audio input + auto codec = Board::GetInstance().GetAudioCodec(); + if (codec) { + codec->EnableInput(false); + } + esp_pm_config_t pm_config = { .max_freq_mhz = cpu_max_freq_, .min_freq_mhz = 40, @@ -85,6 +98,7 @@ void PowerSaveTimer::PowerSaveCheck() { void PowerSaveTimer::WakeUp() { ticks_ = 0; if (in_sleep_mode_) { + ESP_LOGI(TAG, "Exiting power save mode"); in_sleep_mode_ = false; if (cpu_max_freq_ != -1) { @@ -94,6 +108,13 @@ void PowerSaveTimer::WakeUp() { .light_sleep_enable = false, }; esp_pm_configure(&pm_config); + + // Enable wake word detection + auto& app = Application::GetInstance(); + auto& audio_service = app.GetAudioService(); + if (is_wake_word_running_) { + audio_service.EnableWakeWordDetection(true); + } } if (on_exit_sleep_mode_) { diff --git a/main/boards/common/power_save_timer.h b/main/boards/common/power_save_timer.h index 1b527f2a..4c95671d 100644 --- a/main/boards/common/power_save_timer.h +++ b/main/boards/common/power_save_timer.h @@ -22,6 +22,7 @@ private: esp_timer_handle_t power_save_timer_ = nullptr; bool enabled_ = false; bool in_sleep_mode_ = false; + bool is_wake_word_running_ = false; int ticks_ = 0; int cpu_max_freq_; int seconds_to_sleep_; diff --git a/main/boards/common/sleep_timer.cc b/main/boards/common/sleep_timer.cc index f8c23b8e..b7dece69 100644 --- a/main/boards/common/sleep_timer.cc +++ b/main/boards/common/sleep_timer.cc @@ -70,6 +70,12 @@ void SleepTimer::CheckTimer() { if (on_enter_light_sleep_mode_) { on_enter_light_sleep_mode_(); } + + auto& audio_service = app.GetAudioService(); + bool is_wake_word_running = audio_service.IsWakeWordRunning(); + if (is_wake_word_running) { + audio_service.EnableWakeWordDetection(false); + } app.Schedule([this, &app]() { while (in_light_sleep_mode_) { @@ -86,12 +92,17 @@ void SleepTimer::CheckTimer() { lvgl_port_resume(); auto wakeup_reason = esp_sleep_get_wakeup_cause(); + ESP_LOGI(TAG, "Wake up from light sleep, wakeup_reason: %d", wakeup_reason); if (wakeup_reason != ESP_SLEEP_WAKEUP_TIMER) { break; } } WakeUp(); }); + + if (is_wake_word_running) { + audio_service.EnableWakeWordDetection(true); + } } } if (seconds_to_deep_sleep_ != -1 && ticks_ >= seconds_to_deep_sleep_) { diff --git a/main/boards/du-chatx/du-chatx-wifi.cc b/main/boards/du-chatx/du-chatx-wifi.cc index baa7a1db..a1f2e16a 100644 --- a/main/boards/du-chatx/du-chatx-wifi.cc +++ b/main/boards/du-chatx/du-chatx-wifi.cc @@ -47,14 +47,11 @@ private: power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(1); }); power_save_timer_->OnExitSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this]() { diff --git a/main/boards/esp32-cgc-144/esp32_cgc_144_board.cc b/main/boards/esp32-cgc-144/esp32_cgc_144_board.cc index 84a743e1..f3b50d04 100644 --- a/main/boards/esp32-cgc-144/esp32_cgc_144_board.cc +++ b/main/boards/esp32-cgc-144/esp32_cgc_144_board.cc @@ -69,14 +69,11 @@ void InitializePowerManager() { void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(-1, 60); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(1); }); power_save_timer_->OnExitSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); diff --git a/main/boards/esp32-s3-touch-amoled-1.8/esp32-s3-touch-amoled-1.8.cc b/main/boards/esp32-s3-touch-amoled-1.8/esp32-s3-touch-amoled-1.8.cc index 83b240b6..67e911fc 100644 --- a/main/boards/esp32-s3-touch-amoled-1.8/esp32-s3-touch-amoled-1.8.cc +++ b/main/boards/esp32-s3-touch-amoled-1.8/esp32-s3-touch-amoled-1.8.cc @@ -135,16 +135,11 @@ private: void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(20); }); power_save_timer_->OnExitSleepMode([this]() { - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this]() { diff --git a/main/boards/esp32-s3-touch-lcd-3.5/esp32-s3-touch-lcd-3.5.cc b/main/boards/esp32-s3-touch-lcd-3.5/esp32-s3-touch-lcd-3.5.cc index 98a09235..59836180 100644 --- a/main/boards/esp32-s3-touch-lcd-3.5/esp32-s3-touch-lcd-3.5.cc +++ b/main/boards/esp32-s3-touch-lcd-3.5/esp32-s3-touch-lcd-3.5.cc @@ -120,16 +120,11 @@ private: void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(20); }); power_save_timer_->OnExitSleepMode([this]() { - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this]() { diff --git a/main/boards/genjutech-s3-1.54tft/genjutech-s3-1.54tft.cc b/main/boards/genjutech-s3-1.54tft/genjutech-s3-1.54tft.cc index cc156035..1b6a29b7 100644 --- a/main/boards/genjutech-s3-1.54tft/genjutech-s3-1.54tft.cc +++ b/main/boards/genjutech-s3-1.54tft/genjutech-s3-1.54tft.cc @@ -69,23 +69,13 @@ private: } void InitializePowerSaveTimer() { + // 第一个参数不为 -1 时,进入睡眠会关闭音频输入 power_save_timer_ = new PowerSaveTimer(240, 60); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); - - auto codec = GetAudioCodec(); - codec->EnableInput(false); + GetDisplay()->SetPowerSaveMode(true); }); power_save_timer_->OnExitSleepMode([this]() { - auto codec = GetAudioCodec(); - codec->EnableInput(true); - - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); }); power_save_timer_->SetEnabled(true); } diff --git a/main/boards/jiuchuan-s3/jiuchuan_dev_board.cc b/main/boards/jiuchuan-s3/jiuchuan_dev_board.cc index 6e053d3c..b3ce93b9 100644 --- a/main/boards/jiuchuan-s3/jiuchuan_dev_board.cc +++ b/main/boards/jiuchuan-s3/jiuchuan_dev_board.cc @@ -84,14 +84,11 @@ private: power_save_timer_ = new PowerSaveTimer(-1, (60*10), (60*30)); // power_save_timer_ = new PowerSaveTimer(-1, 6, 10);//test power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(1); }); power_save_timer_->OnExitSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this]() { diff --git a/main/boards/lilygo-t-cameraplus-s3/lilygo-t-cameraplus-s3.cc b/main/boards/lilygo-t-cameraplus-s3/lilygo-t-cameraplus-s3.cc index a51047f4..2e620657 100644 --- a/main/boards/lilygo-t-cameraplus-s3/lilygo-t-cameraplus-s3.cc +++ b/main/boards/lilygo-t-cameraplus-s3/lilygo-t-cameraplus-s3.cc @@ -82,16 +82,11 @@ private: void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(-1, 60, -1); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(10); }); power_save_timer_->OnExitSleepMode([this]() { - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this]() { diff --git a/main/boards/lilygo-t-circle-s3/lilygo-t-circle-s3.cc b/main/boards/lilygo-t-circle-s3/lilygo-t-circle-s3.cc index 8a117cf4..877bc3cd 100644 --- a/main/boards/lilygo-t-circle-s3/lilygo-t-circle-s3.cc +++ b/main/boards/lilygo-t-circle-s3/lilygo-t-circle-s3.cc @@ -64,16 +64,11 @@ private: void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(10); }); power_save_timer_->OnExitSleepMode([this]() { - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->SetEnabled(true); diff --git a/main/boards/lilygo-t-display-s3-pro-mvsrlora/lilygo-t-display-s3-pro-mvsrlora.cc b/main/boards/lilygo-t-display-s3-pro-mvsrlora/lilygo-t-display-s3-pro-mvsrlora.cc index 9f764ce4..de335050 100644 --- a/main/boards/lilygo-t-display-s3-pro-mvsrlora/lilygo-t-display-s3-pro-mvsrlora.cc +++ b/main/boards/lilygo-t-display-s3-pro-mvsrlora/lilygo-t-display-s3-pro-mvsrlora.cc @@ -83,16 +83,11 @@ private: void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(10); }); power_save_timer_->OnExitSleepMode([this]() { - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->SetEnabled(true); diff --git a/main/boards/m5stack-core-s3/m5stack_core_s3.cc b/main/boards/m5stack-core-s3/m5stack_core_s3.cc index 2b09d23f..e380cde7 100644 --- a/main/boards/m5stack-core-s3/m5stack_core_s3.cc +++ b/main/boards/m5stack-core-s3/m5stack_core_s3.cc @@ -138,16 +138,11 @@ private: void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(10); }); power_save_timer_->OnExitSleepMode([this]() { - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this]() { diff --git a/main/boards/magiclick-2p4/magiclick_2p4_board.cc b/main/boards/magiclick-2p4/magiclick_2p4_board.cc index d4028c88..a314e46a 100644 --- a/main/boards/magiclick-2p4/magiclick_2p4_board.cc +++ b/main/boards/magiclick-2p4/magiclick_2p4_board.cc @@ -87,14 +87,11 @@ private: void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(240, 60, -1); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(1); }); power_save_timer_->OnExitSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); diff --git a/main/boards/magiclick-2p5/magiclick_2p5_board.cc b/main/boards/magiclick-2p5/magiclick_2p5_board.cc index d9eadcba..c462ff17 100644 --- a/main/boards/magiclick-2p5/magiclick_2p5_board.cc +++ b/main/boards/magiclick-2p5/magiclick_2p5_board.cc @@ -102,14 +102,11 @@ private: void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(240, 60, -1); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(1); }); power_save_timer_->OnExitSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); diff --git a/main/boards/magiclick-c3-v2/magiclick_c3_v2_board.cc b/main/boards/magiclick-c3-v2/magiclick_c3_v2_board.cc index f04c8060..8794d4db 100644 --- a/main/boards/magiclick-c3-v2/magiclick_c3_v2_board.cc +++ b/main/boards/magiclick-c3-v2/magiclick_c3_v2_board.cc @@ -102,22 +102,11 @@ private: void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(160); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(10); - - auto codec = GetAudioCodec(); - codec->EnableInput(false); }); power_save_timer_->OnExitSleepMode([this]() { - auto codec = GetAudioCodec(); - codec->EnableInput(true); - - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->SetEnabled(true); diff --git a/main/boards/magiclick-c3/magiclick_c3_board.cc b/main/boards/magiclick-c3/magiclick_c3_board.cc index 90662d42..800b1f2b 100644 --- a/main/boards/magiclick-c3/magiclick_c3_board.cc +++ b/main/boards/magiclick-c3/magiclick_c3_board.cc @@ -66,22 +66,11 @@ private: void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(160); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(10); - - auto codec = GetAudioCodec(); - codec->EnableInput(false); }); power_save_timer_->OnExitSleepMode([this]() { - auto codec = GetAudioCodec(); - codec->EnableInput(true); - - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->SetEnabled(true); diff --git a/main/boards/minsi-k08-dual/minsi_k08_dual.cc b/main/boards/minsi-k08-dual/minsi_k08_dual.cc index 6bd9a3fc..a5724170 100644 --- a/main/boards/minsi-k08-dual/minsi_k08_dual.cc +++ b/main/boards/minsi-k08-dual/minsi_k08_dual.cc @@ -61,14 +61,11 @@ private: power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(1); }); power_save_timer_->OnExitSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this]() { diff --git a/main/boards/sensecap-watcher/sensecap_watcher.cc b/main/boards/sensecap-watcher/sensecap_watcher.cc index eac4e794..39d88f9e 100644 --- a/main/boards/sensecap-watcher/sensecap_watcher.cc +++ b/main/boards/sensecap-watcher/sensecap_watcher.cc @@ -102,16 +102,11 @@ private: void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(10); }); power_save_timer_->OnExitSleepMode([this]() { - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this]() { diff --git a/main/boards/sp-esp32-s3-1.28-box/sp-esp32-s3-1.28-box.cc b/main/boards/sp-esp32-s3-1.28-box/sp-esp32-s3-1.28-box.cc index 37c58d67..f2d31766 100644 --- a/main/boards/sp-esp32-s3-1.28-box/sp-esp32-s3-1.28-box.cc +++ b/main/boards/sp-esp32-s3-1.28-box/sp-esp32-s3-1.28-box.cc @@ -113,14 +113,11 @@ private: power_save_timer_ = new PowerSaveTimer(-1, 60, 290); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(1); }); power_save_timer_->OnExitSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this]() { diff --git a/main/boards/sp-esp32-s3-1.54-muma/sp-esp32-s3-1.54-muma.cc b/main/boards/sp-esp32-s3-1.54-muma/sp-esp32-s3-1.54-muma.cc index 34edf9b8..ce21669e 100644 --- a/main/boards/sp-esp32-s3-1.54-muma/sp-esp32-s3-1.54-muma.cc +++ b/main/boards/sp-esp32-s3-1.54-muma/sp-esp32-s3-1.54-muma.cc @@ -98,14 +98,11 @@ private: power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(1); }); power_save_timer_->OnExitSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this]() { diff --git a/main/boards/surfer-c3-1.14tft/surfer-c3-1.14tft.cc b/main/boards/surfer-c3-1.14tft/surfer-c3-1.14tft.cc index b94ad9ac..1e810a72 100644 --- a/main/boards/surfer-c3-1.14tft/surfer-c3-1.14tft.cc +++ b/main/boards/surfer-c3-1.14tft/surfer-c3-1.14tft.cc @@ -76,14 +76,12 @@ private: power_save_timer_ = new PowerSaveTimer(-1, 60, -1); power_save_timer_->OnEnterSleepMode([this]() { ESP_LOGI(TAG, "Enabling modem-sleep mode"); - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(1); esp_wifi_set_ps(WIFI_PS_MIN_MODEM); }); power_save_timer_->OnExitSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); esp_wifi_set_ps(WIFI_PS_NONE); // 关闭Wi-Fi省电,恢复正常 // esp_lcd_panel_disp_on_off(panel_, true); // 重新打开显示 diff --git a/main/boards/tudouzi/kevin_box_board.cc b/main/boards/tudouzi/kevin_box_board.cc index 84fc455a..ee31af51 100644 --- a/main/boards/tudouzi/kevin_box_board.cc +++ b/main/boards/tudouzi/kevin_box_board.cc @@ -67,20 +67,10 @@ private: void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(240, 60, -1); power_save_timer_->OnEnterSleepMode([this]() { - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); - - auto codec = GetAudioCodec(); - codec->EnableInput(false); + GetDisplay()->SetPowerSaveMode(true); }); power_save_timer_->OnExitSleepMode([this]() { - auto codec = GetAudioCodec(); - codec->EnableInput(true); - - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); }); power_save_timer_->SetEnabled(true); } diff --git a/main/boards/waveshare-s3-touch-amoled-1.75/esp32-s3-touch-amoled-1.75.cc b/main/boards/waveshare-s3-touch-amoled-1.75/esp32-s3-touch-amoled-1.75.cc index 15b81363..80a251cd 100644 --- a/main/boards/waveshare-s3-touch-amoled-1.75/esp32-s3-touch-amoled-1.75.cc +++ b/main/boards/waveshare-s3-touch-amoled-1.75/esp32-s3-touch-amoled-1.75.cc @@ -161,15 +161,10 @@ private: void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(20); }); power_save_timer_->OnExitSleepMode([this]() { - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this](){ pmic_->PowerOff(); }); diff --git a/main/boards/waveshare-s3-touch-amoled-2.06/esp32-s3-touch-amoled-2.06.cc b/main/boards/waveshare-s3-touch-amoled-2.06/esp32-s3-touch-amoled-2.06.cc index e45c4004..416798a6 100644 --- a/main/boards/waveshare-s3-touch-amoled-2.06/esp32-s3-touch-amoled-2.06.cc +++ b/main/boards/waveshare-s3-touch-amoled-2.06/esp32-s3-touch-amoled-2.06.cc @@ -156,15 +156,10 @@ private: void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(20); }); power_save_timer_->OnExitSleepMode([this]() { - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this](){ pmic_->PowerOff(); }); diff --git a/main/boards/waveshare-s3-touch-lcd-3.5b/waveshare-s3-touch-lcd-3.5b.cc b/main/boards/waveshare-s3-touch-lcd-3.5b/waveshare-s3-touch-lcd-3.5b.cc index 5504f824..514cb90f 100644 --- a/main/boards/waveshare-s3-touch-lcd-3.5b/waveshare-s3-touch-lcd-3.5b.cc +++ b/main/boards/waveshare-s3-touch-lcd-3.5b/waveshare-s3-touch-lcd-3.5b.cc @@ -122,16 +122,11 @@ private: void InitializePowerSaveTimer() { power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(20); }); power_save_timer_->OnExitSleepMode([this]() { - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this]() { diff --git a/main/boards/xingzhi-cube-0.85tft-ml307/xingzhi-cube-0.85tft-ml307.cc b/main/boards/xingzhi-cube-0.85tft-ml307/xingzhi-cube-0.85tft-ml307.cc index 5b2323c4..b0a0e341 100644 --- a/main/boards/xingzhi-cube-0.85tft-ml307/xingzhi-cube-0.85tft-ml307.cc +++ b/main/boards/xingzhi-cube-0.85tft-ml307/xingzhi-cube-0.85tft-ml307.cc @@ -112,14 +112,11 @@ private: power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(1); }); power_save_timer_->OnExitSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this]() { diff --git a/main/boards/xingzhi-cube-0.85tft-wifi/xingzhi-cube-0.85tft-wifi.cc b/main/boards/xingzhi-cube-0.85tft-wifi/xingzhi-cube-0.85tft-wifi.cc index c1f14c1a..720fd522 100644 --- a/main/boards/xingzhi-cube-0.85tft-wifi/xingzhi-cube-0.85tft-wifi.cc +++ b/main/boards/xingzhi-cube-0.85tft-wifi/xingzhi-cube-0.85tft-wifi.cc @@ -112,14 +112,11 @@ private: power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(1); }); power_save_timer_->OnExitSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this]() { diff --git a/main/boards/xingzhi-cube-0.96oled-ml307/xingzhi-cube-0.96oled-ml307.cc b/main/boards/xingzhi-cube-0.96oled-ml307/xingzhi-cube-0.96oled-ml307.cc index 536ff514..cb1f1bf3 100644 --- a/main/boards/xingzhi-cube-0.96oled-ml307/xingzhi-cube-0.96oled-ml307.cc +++ b/main/boards/xingzhi-cube-0.96oled-ml307/xingzhi-cube-0.96oled-ml307.cc @@ -54,15 +54,10 @@ private: power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); }); power_save_timer_->OnExitSleepMode([this]() { - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); }); power_save_timer_->OnShutdownRequest([this]() { ESP_LOGI(TAG, "Shutting down"); diff --git a/main/boards/xingzhi-cube-0.96oled-wifi/xingzhi-cube-0.96oled-wifi.cc b/main/boards/xingzhi-cube-0.96oled-wifi/xingzhi-cube-0.96oled-wifi.cc index 256e5f6a..2158ee97 100644 --- a/main/boards/xingzhi-cube-0.96oled-wifi/xingzhi-cube-0.96oled-wifi.cc +++ b/main/boards/xingzhi-cube-0.96oled-wifi/xingzhi-cube-0.96oled-wifi.cc @@ -55,15 +55,10 @@ private: power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); }); power_save_timer_->OnExitSleepMode([this]() { - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); }); power_save_timer_->OnShutdownRequest([this]() { ESP_LOGI(TAG, "Shutting down"); diff --git a/main/boards/xingzhi-cube-1.54tft-ml307/xingzhi-cube-1.54tft-ml307.cc b/main/boards/xingzhi-cube-1.54tft-ml307/xingzhi-cube-1.54tft-ml307.cc index 90c58110..35f1f3f3 100644 --- a/main/boards/xingzhi-cube-1.54tft-ml307/xingzhi-cube-1.54tft-ml307.cc +++ b/main/boards/xingzhi-cube-1.54tft-ml307/xingzhi-cube-1.54tft-ml307.cc @@ -52,14 +52,11 @@ private: power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(1); }); power_save_timer_->OnExitSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this]() { diff --git a/main/boards/xingzhi-cube-1.54tft-wifi/xingzhi-cube-1.54tft-wifi.cc b/main/boards/xingzhi-cube-1.54tft-wifi/xingzhi-cube-1.54tft-wifi.cc index 4ef60e87..8b0f6bcf 100644 --- a/main/boards/xingzhi-cube-1.54tft-wifi/xingzhi-cube-1.54tft-wifi.cc +++ b/main/boards/xingzhi-cube-1.54tft-wifi/xingzhi-cube-1.54tft-wifi.cc @@ -52,14 +52,11 @@ private: power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(1); }); power_save_timer_->OnExitSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->OnShutdownRequest([this]() { diff --git a/main/boards/xmini-c3-4g/xmini_c3_4g_board.cc b/main/boards/xmini-c3-4g/xmini_c3_4g_board.cc index 9c269bfd..098bcd6e 100644 --- a/main/boards/xmini-c3-4g/xmini_c3_4g_board.cc +++ b/main/boards/xmini-c3-4g/xmini_c3_4g_board.cc @@ -55,7 +55,7 @@ private: sleep_timer_->OnEnterLightSleepMode([this]() { ESP_LOGI(TAG, "Enabling sleep mode"); // Show the standby screen - GetDisplay()->ShowStandbyScreen(true); + GetDisplay()->SetPowerSaveMode(true); // Enable sleep mode, and sleep in 1 second after DTR is set to high modem_->SetSleepMode(true, 1); // Set the DTR pin to high to make the modem enter sleep mode @@ -65,7 +65,7 @@ private: // Set the DTR pin to low to make the modem wake up modem_->GetAtUart()->SetDtrPin(false); // Hide the standby screen - GetDisplay()->ShowStandbyScreen(false); + GetDisplay()->SetPowerSaveMode(false); }); sleep_timer_->SetEnabled(true); } diff --git a/main/boards/xmini-c3-v3/xmini_c3_board.cc b/main/boards/xmini-c3-v3/xmini_c3_board.cc index 5042e4b3..2b9ea6e6 100644 --- a/main/boards/xmini-c3-v3/xmini_c3_board.cc +++ b/main/boards/xmini-c3-v3/xmini_c3_board.cc @@ -7,7 +7,7 @@ #include "mcp_server.h" #include "settings.h" #include "config.h" -#include "sleep_timer.h" +#include "power_save_timer.h" #include "font_awesome_symbols.h" #include "adc_battery_monitor.h" @@ -32,44 +32,33 @@ private: Display* display_ = nullptr; Button boot_button_; bool press_to_talk_enabled_ = false; - SleepTimer* sleep_timer_ = nullptr; + PowerSaveTimer* power_save_timer_ = nullptr; AdcBatteryMonitor* adc_battery_monitor_ = nullptr; void InitializePowerManager() { adc_battery_monitor_ = new AdcBatteryMonitor(ADC_UNIT_1, ADC_CHANNEL_3, 100000, 100000, GPIO_NUM_12); adc_battery_monitor_->OnChargingStatusChanged([this](bool is_charging) { if (is_charging) { - sleep_timer_->SetEnabled(false); + power_save_timer_->SetEnabled(false); } else { - sleep_timer_->SetEnabled(true); + power_save_timer_->SetEnabled(true); } }); } void InitializePowerSaveTimer() { #if CONFIG_USE_ESP_WAKE_WORD - sleep_timer_ = new SleepTimer(600); + power_save_timer_ = new PowerSaveTimer(160, 600); #else - sleep_timer_ = new SleepTimer(30); + power_save_timer_ = new PowerSaveTimer(160, 60); #endif - sleep_timer_->OnEnterLightSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); - - auto codec = GetAudioCodec(); - codec->EnableInput(false); + power_save_timer_->OnEnterSleepMode([this]() { + GetDisplay()->SetPowerSaveMode(true); }); - sleep_timer_->OnExitLightSleepMode([this]() { - auto codec = GetAudioCodec(); - codec->EnableInput(true); - - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + power_save_timer_->OnExitSleepMode([this]() { + GetDisplay()->SetPowerSaveMode(false); }); - sleep_timer_->SetEnabled(true); + power_save_timer_->SetEnabled(true); } void InitializeCodecI2c() { @@ -156,8 +145,8 @@ private: } }); boot_button_.OnPressDown([this]() { - if (sleep_timer_) { - sleep_timer_->WakeUp(); + if (power_save_timer_) { + power_save_timer_->WakeUp(); } if (press_to_talk_enabled_) { Application::GetInstance().StartListening(); @@ -241,7 +230,7 @@ public: virtual void SetPowerSaveMode(bool enabled) override { if (!enabled) { - sleep_timer_->WakeUp(); + power_save_timer_->WakeUp(); } WifiBoard::SetPowerSaveMode(enabled); } diff --git a/main/boards/xmini-c3/xmini_c3_board.cc b/main/boards/xmini-c3/xmini_c3_board.cc index b67ea218..e3c797bc 100644 --- a/main/boards/xmini-c3/xmini_c3_board.cc +++ b/main/boards/xmini-c3/xmini_c3_board.cc @@ -39,21 +39,10 @@ private: power_save_timer_ = new PowerSaveTimer(160, 60); #endif power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("sleepy"); - - auto codec = GetAudioCodec(); - codec->EnableInput(false); + GetDisplay()->SetPowerSaveMode(true); }); power_save_timer_->OnExitSleepMode([this]() { - auto codec = GetAudioCodec(); - codec->EnableInput(true); - - auto display = GetDisplay(); - display->SetChatMessage("system", ""); - display->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); }); power_save_timer_->SetEnabled(true); } diff --git a/main/boards/zhengchen-1.54tft-ml307/zhengchen-1.54tft-ml307.cc b/main/boards/zhengchen-1.54tft-ml307/zhengchen-1.54tft-ml307.cc index d0738102..fb4fb81a 100644 --- a/main/boards/zhengchen-1.54tft-ml307/zhengchen-1.54tft-ml307.cc +++ b/main/boards/zhengchen-1.54tft-ml307/zhengchen-1.54tft-ml307.cc @@ -55,14 +55,11 @@ private: power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(1); }); power_save_timer_->OnExitSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->SetEnabled(true); diff --git a/main/boards/zhengchen-1.54tft-wifi/zhengchen-1.54tft-wifi.cc b/main/boards/zhengchen-1.54tft-wifi/zhengchen-1.54tft-wifi.cc index 71f1748b..7dc48790 100644 --- a/main/boards/zhengchen-1.54tft-wifi/zhengchen-1.54tft-wifi.cc +++ b/main/boards/zhengchen-1.54tft-wifi/zhengchen-1.54tft-wifi.cc @@ -59,14 +59,11 @@ private: power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { - ESP_LOGI(TAG, "Enabling sleep mode"); - display_->SetChatMessage("system", ""); - display_->SetEmotion("sleepy"); + GetDisplay()->SetPowerSaveMode(true); GetBacklight()->SetBrightness(1); }); power_save_timer_->OnExitSleepMode([this]() { - display_->SetChatMessage("system", ""); - display_->SetEmotion("neutral"); + GetDisplay()->SetPowerSaveMode(false); GetBacklight()->RestoreBrightness(); }); power_save_timer_->SetEnabled(true); diff --git a/main/display/display.cc b/main/display/display.cc index 5fa96732..f821b712 100644 --- a/main/display/display.cc +++ b/main/display/display.cc @@ -269,8 +269,8 @@ void Display::SetTheme(const std::string& theme_name) { settings.SetString("theme", theme_name); } -void Display::ShowStandbyScreen(bool show) { - if (show) { +void Display::SetPowerSaveMode(bool on) { + if (on) { SetChatMessage("system", ""); SetEmotion("sleepy"); } else { diff --git a/main/display/display.h b/main/display/display.h index 8952f533..244e3de6 100644 --- a/main/display/display.h +++ b/main/display/display.h @@ -30,7 +30,7 @@ public: virtual void SetTheme(const std::string& theme_name); virtual std::string GetTheme() { return current_theme_name_; } virtual void UpdateStatusBar(bool update_all = false); - virtual void ShowStandbyScreen(bool show); + virtual void SetPowerSaveMode(bool on); inline int width() const { return width_; } inline int height() const { return height_; }