summaryrefslogtreecommitdiff
path: root/src/components/datetime/DateTimeController.h
diff options
context:
space:
mode:
authorJean-François Milants <jf@codingfield.com>2021-04-02 17:33:49 +0200
committerJean-François Milants <jf@codingfield.com>2021-04-04 15:56:40 +0200
commit1d7576de64a33837434e6f414a74ae7dbe929196 (patch)
tree77b16266b33be4bcfa1b5d6ee34249f71b8858b7 /src/components/datetime/DateTimeController.h
parent52a90288fd2b744b68d584db316fcf3fede84262 (diff)
Reset the step count every day at midnight.
Diffstat (limited to 'src/components/datetime/DateTimeController.h')
-rw-r--r--src/components/datetime/DateTimeController.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/components/datetime/DateTimeController.h b/src/components/datetime/DateTimeController.h
index 16bb59c9..fb0969d1 100644
--- a/src/components/datetime/DateTimeController.h
+++ b/src/components/datetime/DateTimeController.h
@@ -4,12 +4,17 @@
#include <chrono>
namespace Pinetime {
+ namespace System {
+ class SystemTask;
+ }
namespace Controllers {
class DateTime {
public:
enum class Days : uint8_t {Unknown, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};
enum class Months : uint8_t {Unknown, January, February, March, April, May, June, July, August, September, October, November, December};
+ DateTime(System::SystemTask& systemTask);
+
void SetTime(uint16_t year, uint8_t month, uint8_t day, uint8_t dayOfWeek, uint8_t hour, uint8_t minute, uint8_t second, uint32_t systickCounter);
void UpdateTime(uint32_t systickCounter);
uint16_t Year() const { return year; }
@@ -31,6 +36,7 @@ namespace Pinetime {
std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> CurrentDateTime() const { return currentDateTime; }
std::chrono::seconds Uptime() const { return uptime; }
private:
+ System::SystemTask& systemTask;
uint16_t year = 0;
Months month = Months::Unknown;
uint8_t day = 0;
@@ -43,6 +49,8 @@ namespace Pinetime {
std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> currentDateTime;
std::chrono::seconds uptime {0};
+ bool isMidnightAlreadyNotified = false;
+
static char const *DaysString[];
static char const *DaysStringShort[];
static char const *DaysStringLow[];