Centralise which level is 'locked'

custom
jacqueline 1 year ago
parent 01eb868373
commit 5a2f0b08e0
  1. 2
      src/drivers/include/gpios.hpp
  2. 2
      src/system_fsm/booting.cpp
  3. 6
      src/system_fsm/system_fsm.cpp
  4. 2
      src/ui/ui_fsm.cpp

@ -77,6 +77,8 @@ class IGpios {
* Returns the most recently cached value of the given pin.
*/
virtual auto Get(Pin) const -> bool = 0;
virtual auto IsLocked() const -> bool { return Get(Pin::kKeyLock); }
};
class Gpios : public IGpios {

@ -121,7 +121,7 @@ auto Booting::exit() -> void {
auto Booting::react(const BootComplete& ev) -> void {
ESP_LOGI(kTag, "bootup completely successfully");
if (sServices->gpios().Get(drivers::Gpios::Pin::kKeyLock)) {
if (sServices->gpios().IsLocked()) {
transit<Idle>();
} else {
transit<Running>();

@ -46,12 +46,12 @@ void SystemState::react(const HapticTrigger& trigger) {
void SystemState::react(const internal::GpioInterrupt&) {
auto& gpios = sServices->gpios();
bool prev_key_lock = gpios.Get(drivers::Gpios::Pin::kKeyLock);
bool prev_key_lock = gpios.IsLocked();
bool prev_has_headphones = !gpios.Get(drivers::Gpios::Pin::kPhoneDetect);
gpios.Read();
bool key_lock = gpios.Get(drivers::Gpios::Pin::kKeyLock);
bool key_lock = gpios.IsLocked();
bool has_headphones = !gpios.Get(drivers::Gpios::Pin::kPhoneDetect);
if (key_lock != prev_key_lock) {
@ -87,7 +87,7 @@ void SystemState::react(const internal::SamdInterrupt&) {
}
auto SystemState::IdleCondition() -> bool {
return sServices->gpios().Get(drivers::IGpios::Pin::kKeyLock) &&
return sServices->gpios().IsLocked() &&
audio::AudioState::is_in_state<audio::states::Standby>();
}

@ -80,7 +80,7 @@ auto UiState::InitBootSplash(drivers::IGpios& gpios) -> bool {
sCurrentScreen.reset(new screens::Splash());
sTask.reset(UiTask::Start());
sDisplay->SetDisplayOn(!gpios.Get(drivers::IGpios::Pin::kKeyLock));
sDisplay->SetDisplayOn(!gpios.IsLocked());
return true;
}

Loading…
Cancel
Save