summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-12-12 13:06:53 +1100
committerjacqueline <me@jacqueline.id.au>2023-12-12 13:06:53 +1100
commit5a2f0b08e0e3f20cda977b510b680d5843ae7283 (patch)
tree13f1ce11f13916e3f217dfd687703c8dc757f7c1 /src
parent01eb8683733f39a6de984111f035bb8f71dcf8b8 (diff)
downloadtangara-fw-5a2f0b08e0e3f20cda977b510b680d5843ae7283.tar.gz
Centralise which level is 'locked'
Diffstat (limited to 'src')
-rw-r--r--src/drivers/include/gpios.hpp2
-rw-r--r--src/system_fsm/booting.cpp2
-rw-r--r--src/system_fsm/system_fsm.cpp6
-rw-r--r--src/ui/ui_fsm.cpp2
4 files changed, 7 insertions, 5 deletions
diff --git a/src/drivers/include/gpios.hpp b/src/drivers/include/gpios.hpp
index 1755da92..fe4b1c4c 100644
--- a/src/drivers/include/gpios.hpp
+++ b/src/drivers/include/gpios.hpp
@@ -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 {
diff --git a/src/system_fsm/booting.cpp b/src/system_fsm/booting.cpp
index 9ccc107b..7bc92a17 100644
--- a/src/system_fsm/booting.cpp
+++ b/src/system_fsm/booting.cpp
@@ -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>();
diff --git a/src/system_fsm/system_fsm.cpp b/src/system_fsm/system_fsm.cpp
index 9cca7eda..724d2eea 100644
--- a/src/system_fsm/system_fsm.cpp
+++ b/src/system_fsm/system_fsm.cpp
@@ -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>();
}
diff --git a/src/ui/ui_fsm.cpp b/src/ui/ui_fsm.cpp
index 4a196f5d..8e355fd1 100644
--- a/src/ui/ui_fsm.cpp
+++ b/src/ui/ui_fsm.cpp
@@ -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;
}