summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 52b3af8..2153324 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -50,26 +50,32 @@ void loop()
{
static uint32_t lastActivity;
- uint16_t pressDuration = de::uvok::badge::gpio_poll();
- if (pressDuration < 64)
+ auto gpio_result = de::uvok::badge::gpio_poll();
+ if (gpio_result.has_data)
{
+ LOG_F("Pin %d for %u ms\n", gpio_result.pin_number, gpio_result.duration_ms);
uint8_t newNum = UINT8_MAX;
- if (pressDuration == NEXT_KEY)
+ switch (gpio_result.pin_number)
+ {
+ case NEXT_KEY:
de::uvok::badge::display_next();
- if (pressDuration == PRV_KEY)
+ break;
+ case PRV_KEY:
de::uvok::badge::display_prev();
- if (pressDuration == OK_KEY)
+ break;
+ case OK_KEY:
newNum = de::uvok::badge::display_refresh();
+ break;
+ case BOOT_KEY:
+ de::uvok::badge::ble_advertise();
+ break;
+ }
if (newNum != UINT8_MAX)
{
de::uvok::badge::ble_set_image(newNum);
- lastActivity = millis();
}
- }
- else if (pressDuration > PRESS_TIME_BLE_ADV)
- {
- de::uvok::badge::ble_advertise();
+
lastActivity = millis();
}