diff options
| author | jacqueline <me@jacqueline.id.au> | 2024-03-21 11:51:48 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2024-03-21 11:51:48 +1100 |
| commit | dadac304dd930ddf4c5aebcc069c5d9f881b2b60 (patch) | |
| tree | 70613be70cffae36b005d89c28b86e2bd3301f2f /src/system_fsm/idle.cpp | |
| parent | 7305820aa9657e71153ada579ad67cf8bcbba6be (diff) | |
| download | tangara-fw-dadac304dd930ddf4c5aebcc069c5d9f881b2b60.tar.gz | |
Add very basic usb msc ui
Diffstat (limited to 'src/system_fsm/idle.cpp')
| -rw-r--r-- | src/system_fsm/idle.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/system_fsm/idle.cpp b/src/system_fsm/idle.cpp index b6bb2572..980f0c94 100644 --- a/src/system_fsm/idle.cpp +++ b/src/system_fsm/idle.cpp @@ -13,6 +13,7 @@ #include "audio_fsm.hpp" #include "event_queue.hpp" +#include "samd.hpp" #include "storage.hpp" #include "system_events.hpp" #include "system_fsm.hpp" @@ -40,7 +41,7 @@ void Idle::entry() { events::Audio().Dispatch(OnIdle{}); events::Ui().Dispatch(OnIdle{}); - sIdleTimeout = xTimerCreate("idle_timeout", kTicksBeforeSleep, false, NULL, + sIdleTimeout = xTimerCreate("idle_timeout", kTicksBeforeSleep, true, NULL, timer_callback); xTimerStart(sIdleTimeout, portMAX_DELAY); } @@ -63,6 +64,13 @@ void Idle::react(const internal::IdleTimeout& ev) { transit<Running>(); return; } + auto s = static_cast<int>(sServices->samd().GetUsbStatus()); + ESP_LOGI(kTag, "usb status is %i", s); + if (sServices->samd().GetUsbStatus() != drivers::Samd::UsbStatus::kDetached) { + // Stay powered on if we're plugged in, in order to charge faster, sync + // files, flash updates, etc. + return; + } ESP_LOGI(kTag, "system shutting down"); // FIXME: It would be neater to just free a bunch of our pointers, deinit the |
