/// Handler for button 1: "SET" void button1_handler(uint8_t on) { static uint8_t skip = 0; if (on) { blinkmode_set(blinkmode_get() | 0200); // don't blink while button is being depressed if (skip > 0) { skip--; return; } switch (set_state) { case SET_NONE: mode_next(); skip = 1; break; case SET_HOUR: set_blinkhandler(button1_handler); time_nexthour(); fadeto(time_get_hhmm()); break; case SET_MINUTE: set_blinkhandler(button1_handler); time_nextminute(); fadeto(time_get_hhmm()); break; case SET_YEAR: set_blinkhandler(button1_handler); break; case SET_MONTH: set_blinkhandler(button1_handler); break; case SET_DAY: set_blinkhandler(button1_handler); break; } } else { blinkmode_set(blinkmode_get() & 0177); // re-enable blinking cli(); blinkhandler = NULL; skip = 0; sei(); } }
// sets whether to use the "dark" (lights off) or not void GsPalette::setdark(bool dark) { m_dark = dark; if(dark) gVideoDriver.setLightIntensity(0.1f); else gVideoDriver.setLightIntensity(1.0f); fadeto( m_dark ? m_darkness : 0, FADE_SPEED_SLOW); }
/// Handler for button 2, "+" void button2_handler(uint8_t on) { if (on) { switch (set_state) { case SET_NONE: switch (mode_get()) { case MMSS: time_set(-1,-1,0); fadeto(time_get_mmss()); break; case HHMM: set_state = SET_HOUR; blinkmode_set(BLINK_HH); fade_set(FADE_OFF); dotmode_set(DOT_ON); fadeto(time_get_hhmm()); break; default: break; } break; case SET_HOUR: set_state = SET_MINUTE; blinkmode_set(BLINK_MM); break; case SET_MINUTE: default: set_state = SET_NONE; blinkmode_set(BLINK_NONE); fade_set(FADE_SLOW); dotmode_set(DOT_BLINK); break; } } else { cli(); blinkhandler = NULL; sei(); } }
// sets whether to use the "dark" (lights off) or not void CPalette::setdark(bool dark) { m_dark = dark; setFadeColour(0); fadeto( m_dark ? m_darkness : 0, FADE_SPEED_SLOW); }