Merge pull request #1024 from dmlls/infineat-pr

Infineat Watchface + support for external resources.
This commit is contained in:
JF
2022-09-27 21:27:36 +02:00
committed by GitHub
19 changed files with 1051 additions and 70 deletions

View File

@@ -7,6 +7,7 @@ using namespace Pinetime::Controllers;
namespace {
char const* DaysStringShort[] = {"--", "MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"};
char const* DaysStringShortLow[] = {"--", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"};
char const* MonthsString[] = {"--", "JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"};
char const* MonthsStringLow[] = {"--", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
}
@@ -126,6 +127,10 @@ const char* DateTime::MonthShortToStringLow(Months month) {
return MonthsStringLow[static_cast<uint8_t>(month)];
}
const char* DateTime::DayOfWeekShortToStringLow() const {
return DaysStringShortLow[static_cast<uint8_t>(dayOfWeek)];
}
void DateTime::Register(Pinetime::System::SystemTask* systemTask) {
this->systemTask = systemTask;
}

View File

@@ -64,6 +64,7 @@ namespace Pinetime {
const char* MonthShortToString() const;
const char* DayOfWeekShortToString() const;
static const char* MonthShortToStringLow(Months month);
const char* DayOfWeekShortToStringLow() const;
std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> CurrentDateTime() const {
return currentDateTime;

View File

@@ -42,6 +42,10 @@ namespace Pinetime {
Colors ColorBar = Colors::Teal;
Colors ColorBG = Colors::Black;
};
struct WatchFaceInfineat {
bool showSideCover = true;
int colorIndex = 0;
};
Settings(Pinetime::Controllers::FS& fs);
@@ -95,6 +99,26 @@ namespace Pinetime {
return settings.PTS.ColorBG;
};
void SetInfineatShowSideCover(bool show) {
if (show != settings.watchFaceInfineat.showSideCover) {
settings.watchFaceInfineat.showSideCover = show;
settingsChanged = true;
}
};
bool GetInfineatShowSideCover() const {
return settings.watchFaceInfineat.showSideCover;
};
void SetInfineatColorIndex(int index) {
if (index != settings.watchFaceInfineat.colorIndex) {
settings.watchFaceInfineat.colorIndex = index;
settingsChanged = true;
}
};
int GetInfineatColorIndex() const {
return settings.watchFaceInfineat.colorIndex;
};
void SetAppMenu(uint8_t menu) {
appMenu = menu;
};
@@ -110,6 +134,14 @@ namespace Pinetime {
return settingsMenu;
};
void SetWatchfacesMenu(uint8_t menu) {
watchFacesMenu = menu;
};
uint8_t GetWatchfacesMenu() const {
return watchFacesMenu;
};
void SetClockType(ClockType clocktype) {
if (clocktype != settings.clockType) {
settingsChanged = true;
@@ -213,7 +245,7 @@ namespace Pinetime {
private:
Pinetime::Controllers::FS& fs;
static constexpr uint32_t settingsVersion = 0x0003;
static constexpr uint32_t settingsVersion = 0x0004;
struct SettingsData {
uint32_t version = settingsVersion;
uint32_t stepsGoal = 10000;
@@ -227,6 +259,8 @@ namespace Pinetime {
PineTimeStyle PTS;
WatchFaceInfineat watchFaceInfineat;
std::bitset<4> wakeUpMode {0};
uint16_t shakeWakeThreshold = 150;
Controllers::BrightnessController::Levels brightLevel = Controllers::BrightnessController::Levels::Medium;
@@ -237,6 +271,7 @@ namespace Pinetime {
uint8_t appMenu = 0;
uint8_t settingsMenu = 0;
uint8_t watchFacesMenu = 0;
/* ble state is intentionally not saved with the other watch settings and initialized
* to off (false) on every boot because we always want ble to be enabled on startup
*/