summaryrefslogtreecommitdiff
path: root/src/buttonhandler/ButtonHandler.h
diff options
context:
space:
mode:
authorRiku Isokoski <riksu9000@gmail.com>2021-10-25 09:53:14 (GMT)
committerRiku Isokoski <riksu9000@gmail.com>2021-10-25 09:53:14 (GMT)
commitd5dfa8087679b644c13e1d420b8ef2fc894b3b51 (patch)
treee5e8706c762f73c011010c45e51a83bc3c755e39 /src/buttonhandler/ButtonHandler.h
parent82ca526ec2db11d9e4aa2d91cd69ed2394e3a843 (diff)
Newer buttonhandler
Diffstat (limited to 'src/buttonhandler/ButtonHandler.h')
-rw-r--r--src/buttonhandler/ButtonHandler.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/buttonhandler/ButtonHandler.h b/src/buttonhandler/ButtonHandler.h
new file mode 100644
index 0000000..5d5b57e
--- /dev/null
+++ b/src/buttonhandler/ButtonHandler.h
@@ -0,0 +1,24 @@
+#pragma once
+
+#include "systemtask/SystemTask.h"
+#include <FreeRTOS.h>
+#include <timers.h>
+
+namespace Pinetime {
+ namespace Controllers {
+ class ButtonHandler {
+ public:
+ enum events { Press, Release, Timer };
+ void Init(Pinetime::System::SystemTask* systemTask);
+ void HandleEvent(events event);
+
+ private:
+ Pinetime::System::SystemTask* systemTask = nullptr;
+ TickType_t releaseTime = 0;
+ TimerHandle_t buttonTimer;
+ bool buttonPressed = false;
+ enum states { Idle, Pressed, Holding, LongHeld };
+ states state = Idle;
+ };
+ }
+}