diff options
Diffstat (limited to 'src/components/heartrate/HeartRateController.cpp')
| -rw-r--r-- | src/components/heartrate/HeartRateController.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/components/heartrate/HeartRateController.cpp b/src/components/heartrate/HeartRateController.cpp new file mode 100644 index 0000000..e0d6927 --- /dev/null +++ b/src/components/heartrate/HeartRateController.cpp @@ -0,0 +1,35 @@ +#include "components/heartrate/HeartRateController.h" +#include <heartratetask/HeartRateTask.h> +#include <systemtask/SystemTask.h> + +using namespace Pinetime::Controllers; + +void HeartRateController::Update(HeartRateController::States newState, uint8_t heartRate) { + this->state = newState; + if (this->heartRate != heartRate) { + this->heartRate = heartRate; + service->OnNewHeartRateValue(heartRate); + } +} + +void HeartRateController::Start() { + if (task != nullptr) { + state = States::NotEnoughData; + task->PushMessage(Pinetime::Applications::HeartRateTask::Messages::StartMeasurement); + } +} + +void HeartRateController::Stop() { + if (task != nullptr) { + state = States::Stopped; + task->PushMessage(Pinetime::Applications::HeartRateTask::Messages::StopMeasurement); + } +} + +void HeartRateController::SetHeartRateTask(Pinetime::Applications::HeartRateTask* task) { + this->task = task; +} + +void HeartRateController::SetService(Pinetime::Controllers::HeartRateService* service) { + this->service = service; +} |
