void draw_led_element (char* cp) { _E_LED_t* p; uint8_t m; uint8_t s; p = (_E_LED_t*) cp; XRAM_SELECT_BLOCK(XRAM_PAGE_PAGE); /* binary or radio button function? */ if (p->parameter & LED_PARAMETER_RADIO) { s = p->repeat_radio_value == eib_get_object_8_value (p->eib_object_listen); } else { m = 1 << (p->parameter & LED_PARAMETER_BITPOS); s = eib_get_object_8_value (p->eib_object_listen) & m; } XRAM_SELECT_BLOCK(XRAM_PAGE_PAGE); if (s) { XRAM_SELECT_BLOCK(XRAM_PAGE_PAGE); if (p->parameter & LED_PARAMETER_WARNING) { draw_picture (p->picture_warning_index, p->x_pos, p->y_pos); set_backlight_on (); XRAM_SELECT_BLOCK(XRAM_PAGE_PAGE); sound_play_clip (p->sound_index_warning, p->repeat_radio_value); } else { draw_picture (p->picture_on_index, p->x_pos, p->y_pos); } } else { draw_picture (p->picture_off_index, p->x_pos, p->y_pos); } }
void _backlight_on(void) { #ifdef HAVE_LCD_ENABLE lcd_enable(true); /* power on lcd */ #endif set_backlight_on(); }