diff options
| author | Riku Isokoski <riksu9000@gmail.com> | 2021-10-25 09:53:14 (GMT) |
|---|---|---|
| committer | Riku Isokoski <riksu9000@gmail.com> | 2021-10-25 09:53:14 (GMT) |
| commit | d5dfa8087679b644c13e1d420b8ef2fc894b3b51 (patch) | |
| tree | e5e8706c762f73c011010c45e51a83bc3c755e39 /src/buttonhandler/ButtonHandler.h | |
| parent | 82ca526ec2db11d9e4aa2d91cd69ed2394e3a843 (diff) | |
Newer buttonhandler
Diffstat (limited to 'src/buttonhandler/ButtonHandler.h')
| -rw-r--r-- | src/buttonhandler/ButtonHandler.h | 24 |
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; + }; + } +} |
