diff options
author | Kieran Cawthray <kieranc@gmail.com> | 2021-11-07 17:49:54 +0100 |
---|---|---|
committer | Kieran Cawthray <kieranc@gmail.com> | 2021-11-07 17:49:54 +0100 |
commit | 18e3cc7038d0f6c0cebc5d042e0740f968f890db (patch) | |
tree | 4fd50ddece4d92c06ea0e16cc06902703a2b6202 /src/buttonhandler/ButtonHandler.h | |
parent | 85d494a987e8edfd51fbb0eb6dfa04ea108cbb48 (diff) | |
parent | 4a5b5f954f12de1574af8e3efec094bb4bdbb542 (diff) |
Merge remote-tracking branch 'upstream/develop' into pts-settings
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 00000000..44b20f19 --- /dev/null +++ b/src/buttonhandler/ButtonHandler.h @@ -0,0 +1,24 @@ +#pragma once + +#include "ButtonActions.h" +#include "systemtask/SystemTask.h" +#include <FreeRTOS.h> +#include <timers.h> + +namespace Pinetime { + namespace Controllers { + class ButtonHandler { + public: + enum class Events : uint8_t { Press, Release, Timer }; + void Init(Pinetime::System::SystemTask* systemTask); + ButtonActions HandleEvent(Events event); + + private: + enum class States : uint8_t { Idle, Pressed, Holding, LongHeld }; + TickType_t releaseTime = 0; + TimerHandle_t buttonTimer; + bool buttonPressed = false; + States state = States::Idle; + }; + } +} |