Files
Upsilon/apps/global_preferences.cpp
Gabriel Ozouf fad375c11c [poincare] Add unitFormat to ReductionContext
Change-Id: I1d3fcd2f47c973c041e1be84e9a902dd58de3562
2020-11-04 15:11:44 +01:00

47 lines
1.4 KiB
C++

#include "global_preferences.h"
GlobalPreferences * GlobalPreferences::sharedGlobalPreferences() {
static GlobalPreferences globalPreferences;
return &globalPreferences;
}
GlobalPreferences::ExamMode GlobalPreferences::examMode() const {
if (m_examMode == ExamMode::Unknown) {
uint8_t mode = Ion::ExamMode::FetchExamMode();
assert(mode >= 0 && mode < 5); // mode can be cast in ExamMode (Off, Standard, NoSym, Dutch or NoSymNoText)
m_examMode = (ExamMode)mode;
}
return m_examMode;
}
GlobalPreferences::ExamMode GlobalPreferences::tempExamMode() const {
return m_tempExamMode;
}
void GlobalPreferences::setExamMode(ExamMode mode) {
ExamMode currentMode = examMode();
if (currentMode == mode) {
return;
}
assert(mode != ExamMode::Unknown);
int8_t deltaMode = (int8_t)mode - (int8_t)currentMode;
deltaMode = deltaMode < 0 ? deltaMode + 4 : deltaMode;
assert(deltaMode > 0);
Ion::ExamMode::IncrementExamMode(deltaMode);
m_examMode = mode;
}
void GlobalPreferences::setTempExamMode(ExamMode mode) {
m_tempExamMode = mode;
}
void GlobalPreferences::setBrightnessLevel(int brightnessLevel) {
if (m_brightnessLevel != brightnessLevel) {
brightnessLevel = brightnessLevel < 0 ? 0 : brightnessLevel;
brightnessLevel = brightnessLevel > Ion::Backlight::MaxBrightness ? Ion::Backlight::MaxBrightness : brightnessLevel;
m_brightnessLevel = brightnessLevel;
Ion::Backlight::setBrightness(m_brightnessLevel);
}
}