mirror of
https://github.com/daveallie/crosspoint-reader.git
synced 2026-02-04 14:47:37 +03:00
feat: add sleep screen selection
This commit is contained in:
parent
c3ce6e11da
commit
da142c362e
@ -272,44 +272,55 @@ int CrossPointSettings::getReaderFontId() const {
|
||||
}
|
||||
}
|
||||
|
||||
namespace {
|
||||
const char* const REFRESH_FREQUENCY_OPTIONS[] = {
|
||||
#define X(name, val, str) str,
|
||||
REFRESH_DATA
|
||||
#undef X
|
||||
};
|
||||
|
||||
const char* const SLEEP_SCREEN_OPTIONS[] = {
|
||||
#define X(name, val, str) str,
|
||||
SLEEP_SCREEN_DATA
|
||||
#undef X
|
||||
};
|
||||
|
||||
const char* const SLEEP_TIMEOUT_OPTIONS[] = {
|
||||
#define X(name, val, str) str,
|
||||
TIMEOUT_DATA
|
||||
#undef X
|
||||
};
|
||||
} // namespace
|
||||
|
||||
const char* CrossPointSettings::getRefreshFrequencyString(uint8_t value) {
|
||||
static const char* options[] = {"1 page", "5 pages", "10 pages", "15 pages", "30 pages"};
|
||||
static constexpr size_t count = sizeof(options) / sizeof(options[0]);
|
||||
if (value < count) {
|
||||
return options[value];
|
||||
if (value < REFRESH_FREQUENCY_COUNT) {
|
||||
return REFRESH_FREQUENCY_OPTIONS[value];
|
||||
}
|
||||
return options[REFRESH_15]; // Default
|
||||
return REFRESH_FREQUENCY_OPTIONS[REFRESH_15];
|
||||
}
|
||||
|
||||
size_t CrossPointSettings::getRefreshFrequencyCount() {
|
||||
static const char* options[] = {"1 page", "5 pages", "10 pages", "15 pages", "30 pages"};
|
||||
return sizeof(options) / sizeof(options[0]);
|
||||
return REFRESH_FREQUENCY_COUNT;
|
||||
}
|
||||
|
||||
const char* CrossPointSettings::getSleepScreenString(uint8_t value) {
|
||||
static const char* options[] = {"Dark", "Light", "Custom", "Cover", "None"};
|
||||
static constexpr size_t count = sizeof(options) / sizeof(options[0]);
|
||||
if (value < count) {
|
||||
return options[value];
|
||||
if (value < SLEEP_SCREEN_MODE_COUNT) {
|
||||
return SLEEP_SCREEN_OPTIONS[value];
|
||||
}
|
||||
return options[DARK]; // Default
|
||||
return SLEEP_SCREEN_OPTIONS[DARK];
|
||||
}
|
||||
|
||||
size_t CrossPointSettings::getSleepScreenCount() {
|
||||
static const char* options[] = {"Dark", "Light", "Custom", "Cover", "None"};
|
||||
return sizeof(options) / sizeof(options[0]);
|
||||
return SLEEP_SCREEN_MODE_COUNT;
|
||||
}
|
||||
|
||||
const char* CrossPointSettings::getSleepTimeoutString(uint8_t value) {
|
||||
static const char* options[] = {"1 min", "5 min", "10 min", "15 min", "30 min"};
|
||||
static constexpr size_t count = sizeof(options) / sizeof(options[0]);
|
||||
if (value < count) {
|
||||
return options[value];
|
||||
if (value < SLEEP_TIMEOUT_COUNT) {
|
||||
return SLEEP_TIMEOUT_OPTIONS[value];
|
||||
}
|
||||
return options[SLEEP_10_MIN]; // Default
|
||||
return SLEEP_TIMEOUT_OPTIONS[SLEEP_10_MIN];
|
||||
}
|
||||
|
||||
size_t CrossPointSettings::getSleepTimeoutCount() {
|
||||
static const char* options[] = {"1 min", "5 min", "10 min", "15 min", "30 min"};
|
||||
return sizeof(options) / sizeof(options[0]);
|
||||
return SLEEP_TIMEOUT_COUNT;
|
||||
}
|
||||
|
||||
@ -15,7 +15,19 @@ class CrossPointSettings {
|
||||
CrossPointSettings(const CrossPointSettings&) = delete;
|
||||
CrossPointSettings& operator=(const CrossPointSettings&) = delete;
|
||||
|
||||
enum SLEEP_SCREEN_MODE { DARK = 0, LIGHT = 1, CUSTOM = 2, COVER = 3, BLANK = 4, SLEEP_SCREEN_MODE_COUNT };
|
||||
#define SLEEP_SCREEN_DATA \
|
||||
X(DARK, 0, "Dark") \
|
||||
X(LIGHT, 1, "Light") \
|
||||
X(CUSTOM, 2, "Custom") \
|
||||
X(COVER, 3, "Cover") \
|
||||
X(BLANK, 4, "None")
|
||||
|
||||
enum SLEEP_SCREEN_MODE {
|
||||
#define X(name, val, str) name = val,
|
||||
SLEEP_SCREEN_DATA
|
||||
#undef X
|
||||
SLEEP_SCREEN_MODE_COUNT
|
||||
};
|
||||
enum SLEEP_SCREEN_COVER_MODE { FIT = 0, CROP = 1, SLEEP_SCREEN_COVER_MODE_COUNT };
|
||||
enum SLEEP_SCREEN_COVER_FILTER {
|
||||
NO_FILTER = 0,
|
||||
@ -71,24 +83,34 @@ class CrossPointSettings {
|
||||
PARAGRAPH_ALIGNMENT_COUNT
|
||||
};
|
||||
|
||||
// Auto-sleep timeout options (in minutes)
|
||||
enum SLEEP_TIMEOUT {
|
||||
SLEEP_1_MIN = 0,
|
||||
SLEEP_5_MIN = 1,
|
||||
SLEEP_10_MIN = 2,
|
||||
SLEEP_15_MIN = 3,
|
||||
SLEEP_30_MIN = 4,
|
||||
SLEEP_TIMEOUT_COUNT
|
||||
// E-ink refresh frequency (pages between full refreshes)
|
||||
#define REFRESH_DATA \
|
||||
X(REFRESH_1, 0, "1 page") \
|
||||
X(REFRESH_5, 1, "5 pages") \
|
||||
X(REFRESH_10, 2, "10 pages") \
|
||||
X(REFRESH_15, 3, "15 pages") \
|
||||
X(REFRESH_30, 4, "30 pages")
|
||||
|
||||
enum REFRESH_FREQUENCY {
|
||||
#define X(name, val, str) name = val,
|
||||
REFRESH_DATA
|
||||
#undef X
|
||||
REFRESH_FREQUENCY_COUNT
|
||||
};
|
||||
|
||||
// E-ink refresh frequency (pages between full refreshes)
|
||||
enum REFRESH_FREQUENCY {
|
||||
REFRESH_1 = 0,
|
||||
REFRESH_5 = 1,
|
||||
REFRESH_10 = 2,
|
||||
REFRESH_15 = 3,
|
||||
REFRESH_30 = 4,
|
||||
REFRESH_FREQUENCY_COUNT
|
||||
// Auto-sleep timeout options (in minutes)
|
||||
#define TIMEOUT_DATA \
|
||||
X(SLEEP_1_MIN, 0, "1 min") \
|
||||
X(SLEEP_5_MIN, 1, "5 min") \
|
||||
X(SLEEP_10_MIN, 2, "10 min") \
|
||||
X(SLEEP_15_MIN, 3, "15 min") \
|
||||
X(SLEEP_30_MIN, 4, "30 min")
|
||||
|
||||
enum SLEEP_TIMEOUT {
|
||||
#define X(name, val, str) name = val,
|
||||
TIMEOUT_DATA
|
||||
#undef X
|
||||
SLEEP_TIMEOUT_COUNT
|
||||
};
|
||||
|
||||
// Short power button press actions
|
||||
|
||||
Loading…
Reference in New Issue
Block a user