1d3742e14f
new navigation add some color to the apps redesign menus new settings menu new quick settings code clean up size reduction by converting navigation images to font and more...
98 lines
No EOL
2.5 KiB
C++
98 lines
No EOL
2.5 KiB
C++
#include "BrightnessController.h"
|
|
#include <hal/nrf_gpio.h>
|
|
#include "displayapp/screens/Symbols.h"
|
|
|
|
using namespace Pinetime::Controllers;
|
|
|
|
|
|
void BrightnessController::Init() {
|
|
nrf_gpio_cfg_output(pinLcdBacklight1);
|
|
nrf_gpio_cfg_output(pinLcdBacklight2);
|
|
nrf_gpio_cfg_output(pinLcdBacklight3);
|
|
Set(level);
|
|
}
|
|
|
|
void BrightnessController::Set(BrightnessController::Levels level) {
|
|
this->level = level;
|
|
switch(level) {
|
|
default:
|
|
case Levels::High:
|
|
nrf_gpio_pin_clear(pinLcdBacklight1);
|
|
nrf_gpio_pin_clear(pinLcdBacklight2);
|
|
nrf_gpio_pin_clear(pinLcdBacklight3);
|
|
break;
|
|
case Levels::Medium:
|
|
nrf_gpio_pin_clear(pinLcdBacklight1);
|
|
nrf_gpio_pin_clear(pinLcdBacklight2);
|
|
nrf_gpio_pin_set(pinLcdBacklight3);
|
|
break;
|
|
case Levels::Low:
|
|
nrf_gpio_pin_clear(pinLcdBacklight1);
|
|
nrf_gpio_pin_set(pinLcdBacklight2);
|
|
nrf_gpio_pin_set(pinLcdBacklight3);
|
|
break;
|
|
case Levels::Off:
|
|
nrf_gpio_pin_set(pinLcdBacklight1);
|
|
nrf_gpio_pin_set(pinLcdBacklight2);
|
|
nrf_gpio_pin_set(pinLcdBacklight3);
|
|
break;
|
|
}
|
|
}
|
|
|
|
void BrightnessController::Lower() {
|
|
switch(level) {
|
|
case Levels::High: Set(Levels::Medium); break;
|
|
case Levels::Medium: Set(Levels::Low); break;
|
|
case Levels::Low: Set(Levels::Off); break;
|
|
default: break;
|
|
}
|
|
}
|
|
|
|
void BrightnessController::Higher() {
|
|
switch(level) {
|
|
case Levels::Off: Set(Levels::Low); break;
|
|
case Levels::Low: Set(Levels::Medium); break;
|
|
case Levels::Medium: Set(Levels::High); break;
|
|
default: break;
|
|
}
|
|
}
|
|
|
|
BrightnessController::Levels BrightnessController::Level() const {
|
|
return level;
|
|
}
|
|
|
|
void BrightnessController::Backup() {
|
|
backupLevel = level;
|
|
}
|
|
|
|
void BrightnessController::Restore() {
|
|
Set(backupLevel);
|
|
}
|
|
|
|
void BrightnessController::Step() {
|
|
switch(level) {
|
|
case Levels::Low: Set(Levels::Medium); break;
|
|
case Levels::Medium: Set(Levels::High); break;
|
|
case Levels::High: Set(Levels::Low); break;
|
|
default: break;
|
|
}
|
|
}
|
|
|
|
const char* BrightnessController::GetIcon() {
|
|
switch(level) {
|
|
case Levels::Medium: return Applications::Screens::Symbols::brightnessMedium;
|
|
case Levels::High: return Applications::Screens::Symbols::brightnessHigh;
|
|
default: break;
|
|
}
|
|
return Applications::Screens::Symbols::brightnessLow;
|
|
}
|
|
|
|
const char* BrightnessController::ToString() {
|
|
switch(level) {
|
|
case Levels::Off: return "Off";
|
|
case Levels::Low: return "Low";
|
|
case Levels::Medium: return "Medium";
|
|
case Levels::High: return "High";
|
|
default : return "???";
|
|
}
|
|
} |