2025-12-15 13:16:46 +01:00
|
|
|
#pragma once
|
|
|
|
|
#include <cstdint>
|
|
|
|
|
#include <iosfwd>
|
|
|
|
|
|
|
|
|
|
class CrossPointSettings {
|
|
|
|
|
private:
|
|
|
|
|
// Private constructor for singleton
|
|
|
|
|
CrossPointSettings() = default;
|
|
|
|
|
|
|
|
|
|
// Static instance
|
|
|
|
|
static CrossPointSettings instance;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
// Delete copy constructor and assignment
|
|
|
|
|
CrossPointSettings(const CrossPointSettings&) = delete;
|
|
|
|
|
CrossPointSettings& operator=(const CrossPointSettings&) = delete;
|
|
|
|
|
|
2025-12-21 18:42:06 +11:00
|
|
|
// Should match with SettingsActivity text
|
|
|
|
|
enum SLEEP_SCREEN_MODE { DARK = 0, LIGHT = 1, CUSTOM = 2, COVER = 3 };
|
|
|
|
|
|
2025-12-22 17:47:32 -06:00
|
|
|
// Status bar display type enum
|
|
|
|
|
enum STATUS_BAR_MODE { NONE = 0, BATTERY = 1, PROGRESS = 2, FULL = 3 };
|
|
|
|
|
|
2025-12-15 13:16:46 +01:00
|
|
|
// Sleep screen settings
|
2025-12-21 18:42:06 +11:00
|
|
|
uint8_t sleepScreen = DARK;
|
2025-12-22 17:47:32 -06:00
|
|
|
// Status bar settings
|
|
|
|
|
uint8_t statusBar = FULL;
|
2025-12-15 13:16:46 +01:00
|
|
|
// Text rendering settings
|
|
|
|
|
uint8_t extraParagraphSpacing = 1;
|
2025-12-19 13:37:34 +01:00
|
|
|
// Duration of the power button press
|
|
|
|
|
uint8_t shortPwrBtn = 0;
|
2025-12-15 13:16:46 +01:00
|
|
|
|
|
|
|
|
~CrossPointSettings() = default;
|
|
|
|
|
|
|
|
|
|
// Get singleton instance
|
2025-12-15 23:17:23 +11:00
|
|
|
static CrossPointSettings& getInstance() { return instance; }
|
2025-12-15 13:16:46 +01:00
|
|
|
|
2025-12-19 13:37:34 +01:00
|
|
|
uint16_t getPowerButtonDuration() const { return shortPwrBtn ? 10 : 500; }
|
|
|
|
|
|
2025-12-15 13:16:46 +01:00
|
|
|
bool saveToFile() const;
|
|
|
|
|
bool loadFromFile();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Helper macro to access settings
|
|
|
|
|
#define SETTINGS CrossPointSettings::getInstance()
|