void gui_set_display_contrast_cb(float val) { gui_switch_task(GUI_SET_DISPLAY); eeprom_busy_wait(); lcd_contrast = val; eeprom_update_byte(&config.gui.contrast, lcd_contrast); gui_change_disp_cfg(); }
void gui_value_irqh(uint8_t type, uint8_t * buff) { float tmp; switch (gui_value_type) { case(GUI_VAL_NUMBER): case(GUI_VAL_NUMBER_DISABLE): gui_value_number_irqh(type, buff); break; case(GUI_VAL_TIME): gui_value_time_irqh(type, buff); break; case(GUI_VAL_DATE): gui_value_date_irqh(type, buff); break; case(GUI_VAL_CONTRAST): gui_value_number_irqh(type, buff); config.gui.contrast = gui_value_tmp; gui_change_disp_cfg(); break; case(GUI_VAL_BRIGTHNES): gui_value_number_irqh(type, buff); config.gui.brightness = gui_value_tmp; break; case(GUI_VAL_VARIO_TEST): gui_value_number_irqh(type, buff); gui_value_tmp = round(gui_value_tmp * 10) / 10; audio_demo_val = gui_value_tmp; break; case(GUI_VAL_VOLUME): tmp = gui_value_tmp; gui_value_number_irqh(type, buff); //only when there is a change in volume if (gui_value_tmp != tmp) { uint8_t vol = gui_value_tmp; seq_start(&audio_feedback, vol); } break; } }
void gui_set_display_action(uint8_t index) { switch(index) { case(0): gui_value_conf_P(PSTR("Contrast"), GUI_VAL_CONTRAST, PSTR(""), lcd_contrast, 0, GUI_CONTRAST_STEPS, 1, gui_set_display_contrast_cb); gui_switch_task(GUI_SET_VAL); break; case(1): gui_value_conf_P(PSTR("Backlight"), GUI_VAL_BRIGTHNES, PSTR(""), lcd_brightness, 0, 100, 20, gui_set_display_brightness_cb); gui_switch_task(GUI_SET_VAL); break; case(2): gui_value_conf_P(PSTR("Backlight timeout"), GUI_VAL_NUMBER, PSTR("%1.0f sec"), lcd_brightness_timeout, 0, 30, 1, gui_set_display_brightness_timeout_cb); gui_switch_task(GUI_SET_VAL); break; case(3): lcd_flags = lcd_flags ^ CFG_DISP_INVERT; eeprom_busy_wait(); eeprom_update_byte(&config.gui.disp_flags, lcd_flags); gui_change_disp_cfg(); break; case(4): lcd_flags = lcd_flags ^ CFG_DISP_FLIP; eeprom_busy_wait(); eeprom_update_byte(&config.gui.disp_flags, lcd_flags); disp.SetFlip(lcd_flags & CFG_DISP_FLIP); break; case(5): lcd_flags = lcd_flags ^ CFG_DISP_ANIM; eeprom_busy_wait(); eeprom_update_byte(&config.gui.disp_flags, lcd_flags); break; } }