You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

92 lines
2.2 KiB

#include <ControlStates.h>
ControlViewState::ControlViewState(AT24C32 &_at24c32)
{
at24c32 = _at24c32;
}
void ControlViewState::leftPressed(ViewStates &viewState, ControlStates &controlState)
{
switch (viewState)
{
case ViewStates::TIME:
viewState = ViewStates::LED_DEMO;
break;
case ViewStates::TEMPERATURE:
viewState = ViewStates::TIME;
break;
case ViewStates::SECONDS:
viewState = ViewStates::TEMPERATURE;
break;
case ViewStates::DATE:
viewState = ViewStates::SECONDS;
break;
case ViewStates::TEXT:
viewState = ViewStates::DATE;
break;
case ViewStates::LED_DEMO:
viewState = ViewStates::TEXT;
break;
}
};
void ControlViewState::rightPressed(ViewStates &viewState, ControlStates &controlState)
{
switch (viewState)
{
case ViewStates::TIME:
viewState = ViewStates::TEMPERATURE;
break;
case ViewStates::TEMPERATURE:
viewState = ViewStates::SECONDS;
break;
case ViewStates::SECONDS:
viewState = ViewStates::DATE;
break;
case ViewStates::DATE:
viewState = ViewStates::TEXT;
break;
case ViewStates::TEXT:
viewState = ViewStates::LED_DEMO;
break;
case ViewStates::LED_DEMO:
viewState = ViewStates::TIME;
break;
}
};
void ControlViewState::enterPressed(ViewStates &viewState, ControlStates &controlState)
{
switch (viewState)
{
case ViewStates::TIME:
controlState = ControlStates::TIME_HOURS;
break;
case ViewStates::SECONDS:
controlState = ControlStates::TIME_SECONDS;
break;
case ViewStates::DATE:
controlState = ControlStates::DATE_DATE;
break;
case ViewStates::TEXT:
controlState = ControlStates::TEXT;
break;
case ViewStates::LED_DEMO:
controlState = ControlStates::COLOR_R;
break;
}
};
void ControlViewState::decrementPressed(ViewStates &viewState, ControlStates &controlState)
{
uint8_t value = at24c32.read(BRIGHTNESS_ADDRESS);
value = (value - 5) % 256;
at24c32.write(BRIGHTNESS_ADDRESS, value);
};
void ControlViewState::incrementPressed(ViewStates &viewState, ControlStates &controlState)
{
uint8_t value = at24c32.read(BRIGHTNESS_ADDRESS);
value = (value + 5) % 256;
at24c32.write(BRIGHTNESS_ADDRESS, value);
};