Exemplo n.º 1
0
/* 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;
}
Exemplo n.º 2
0
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);
  

}