Пример #1
0
void select_note(void)
{
    // Light up buttons according to data
    display_pattern();

    // Go through each of the 16 upper buttons
    for (uint8_t i = 0; i < 16; i++) {
        if (button_pressed(i)) {
            enter_note_init(i);
            break;
        }
    }

    leds_7seg_set(4, current_channel + 1);

    if (button_pressed(BTN_BACK)) {
        for (uint8_t i = 0; i < 16; i++)
            button_led_off(i);
        state = STATE_TOPLEVEL;
    }
}
Пример #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);
  

}