backlight.cpp 856 Bytes
#include "backlight.h"

#include "system.h"

namespace {
int setting = 7;
bool lowered = false;

int toSystem(int setting)
{
    switch (setting)
    {
    case 0:
        return 3;
    case 1:
        return 4;
    case 2:
        return 5;
    case 3:
        return 6;
    case 4:
        return 7;
    case 5:
        return 8;
    case 6:
        return 9;
    default:
        return 10;
    }
}
}

void Backlight::lower()
{
    lowered = true;

    int t = setting - 2;
    if (t < 0)
        System::setBacklight(toSystem(0));
    else
        System::setBacklight(toSystem(t));
}

void Backlight::restore()
{
    lowered = false;

    System::setBacklight(toSystem(setting));
}

void Backlight::set(int level)
{
    if (level < 0 || level > 7)
        return;

    setting = level;

    if (lowered)
        lower();
    else
        restore();
}