summaryrefslogtreecommitdiff
path: root/src/components/datetime/DateTimeController.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/datetime/DateTimeController.h')
-rw-r--r--src/components/datetime/DateTimeController.h19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/components/datetime/DateTimeController.h b/src/components/datetime/DateTimeController.h
index 00bbc2e..ca7320c 100644
--- a/src/components/datetime/DateTimeController.h
+++ b/src/components/datetime/DateTimeController.h
@@ -60,12 +60,17 @@ namespace Pinetime {
uint8_t Seconds() const {
return second;
}
+ uint8_t Deciseconds() const {
+ uint16_t x = subsecondTicks;
+ x *= 10;
+ return x >> 10;
+ }
const char* MonthShortToString() const;
const char* DayOfWeekShortToString() const;
static const char* MonthShortToStringLow(Months month);
- std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> CurrentDateTime() const {
+ std::chrono::time_point<std::chrono::system_clock, std::chrono::seconds> CurrentDateTime() const {
return currentDateTime;
}
std::chrono::seconds Uptime() const {
@@ -73,7 +78,7 @@ namespace Pinetime {
}
void Register(System::SystemTask* systemTask);
- void SetCurrentTime(std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> t);
+ void SetCurrentTime(std::chrono::time_point<std::chrono::system_clock, std::chrono::seconds> t);
std::string FormattedTime();
private:
@@ -84,14 +89,18 @@ namespace Pinetime {
uint8_t hour = 0;
uint8_t minute = 0;
uint8_t second = 0;
+ uint16_t subsecondTicks = 0;
- uint32_t previousSystickCounter = 0;
- std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> currentDateTime;
+ uint32_t previousSystickCounter = 0; // FIXME: This could probably be 16 bits?
+ std::chrono::time_point<std::chrono::system_clock, std::chrono::seconds> currentDateTime;
std::chrono::seconds uptime {0};
bool isMidnightAlreadyNotified = false;
bool isHourAlreadyNotified = true;
- bool isHalfHourAlreadyNotified = true;
+ bool hasChimed = true;
+ public:
+ uint8_t chimePeriod = 5;
+ private:
System::SystemTask* systemTask = nullptr;
Controllers::Settings& settingsController;
};