diff options
Diffstat (limited to 'src/components/heartrate/HeartRateController.h')
| -rw-r--r-- | src/components/heartrate/HeartRateController.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/components/heartrate/HeartRateController.h b/src/components/heartrate/HeartRateController.h new file mode 100644 index 0000000..a63f1a7 --- /dev/null +++ b/src/components/heartrate/HeartRateController.h @@ -0,0 +1,40 @@ +#pragma once + +#include <cstdint> +#include <components/ble/HeartRateService.h> + +namespace Pinetime { + namespace Applications { + class HeartRateTask; + } + namespace System { + class SystemTask; + } + namespace Controllers { + class HeartRateController { + public: + enum class States { Stopped, NotEnoughData, NoTouch, Running }; + + HeartRateController() = default; + void Start(); + void Stop(); + void Update(States newState, uint8_t heartRate); + + void SetHeartRateTask(Applications::HeartRateTask* task); + States State() const { + return state; + } + uint8_t HeartRate() const { + return heartRate; + } + + void SetService(Pinetime::Controllers::HeartRateService* service); + + private: + Applications::HeartRateTask* task = nullptr; + States state = States::Stopped; + uint8_t heartRate = 0; + Pinetime::Controllers::HeartRateService* service = nullptr; + }; + } +}
\ No newline at end of file |
