/* Note entering state */ void enter_note_init(uint8_t btn) { button_led_blink(btn); current_note = btn; sequencer_midi_note = 0xFF; state = STATE_ENTER_NOTE; }
void ui_getvalue_handler() /* Handles getting a parameter value. A new getvalue-session is initiated by using ui_getvalue_session. This structure holds the current parameter to be changed, which buttons to blink, and the state. */ { static int8_t value; // If the state just changed to GETVALUE, set the value to the parameter's value // and last pot value to the current. if (ui_getvalue_session.state == SESSION_INACTIVE) { if (ui_getvalue_session.parameter.type == INVRANGE) value = ui_getvalue_session.parameter.max - *ui_getvalue_session.parameter.target; else value = *ui_getvalue_session.parameter.target; button_led_blink(ui_getvalue_session.button1); if (ui_getvalue_session.button2 != 0xFF) { button_led_blink(ui_getvalue_session.button2 & 0x7F); if ((ui_getvalue_session.button2 & 0x80) != 0) { // button_leds[BTN_SHIFT] = 1; // leds_set(BTN_SHIFT, 0); button_led_blink(BTN_SHIFT); } } ui_getvalue_session.state = SESSION_ACTIVE; } // Handle up and down buttons ui_updown(&value, ui_getvalue_session.parameter.min, ui_getvalue_session.parameter.max); // When SET is pressed, store the new value in the parameter and disable LED blinking. // If type is VALTYPE_INVRANGE, the value is inverted. if (button_pressed(BTN_SAVE)) { if (ui_getvalue_session.parameter.type == INVRANGE) *ui_getvalue_session.parameter.target = ui_getvalue_session.parameter.max - value; else *ui_getvalue_session.parameter.target = value; button_led_off(ui_getvalue_session.button1); if (ui_getvalue_session.button2 != 0xFF) { button_led_off(ui_getvalue_session.button2 & 0x7F); //if ((ui_getvalue_session.button2 & 0x80) != 0) //button_leds[BTN_SHIFT] = 1; //button_led_on } ui_getvalue_session.state = SESSION_INACTIVE; mode &= 0x7F; } if (ui_getvalue_session.parameter.min < 0) { if (value < 0) { leds_7seg_set(3, LEDS_7SEG_MINUS); leds_7seg_set(4, -value); } else { leds_7seg_clear(3); leds_7seg_set(4, value); } } else leds_7seg_two_digit_set(3, 4, value); }