示例#1
0
/////////////////////////////////////////////////////////////////////////////
// Local encoder callback function
// Should return:
//   1 if value has been changed
//   0 if value hasn't been changed
//  -1 if invalid or unsupported encoder
/////////////////////////////////////////////////////////////////////////////
static s32 Encoder_Handler(seq_ui_encoder_t encoder, s32 incrementer)
{
  // any encoder changes the dir view
  if( !dir_name[0] ) {
    if( SEQ_UI_SelectListItem(incrementer, dir_num_items, NUM_LIST_DISPLAYED_ITEMS, &ui_selected_item, &dir_view_offset) ) {
      SEQ_UI_SYSEX_UpdateDirList();
    }
  } else {
    switch( encoder ) {
      case SEQ_UI_ENCODER_GP13: {
	// select MIDI port
	u8 port_ix = SEQ_MIDI_PORT_OutIxGet(sysex_port);
	if( SEQ_UI_Var8_Inc(&port_ix, 0, SEQ_MIDI_PORT_OutNumGet()-1, incrementer) >= 0 ) {
	  sysex_port = SEQ_MIDI_PORT_OutPortGet(port_ix);
	  store_file_required = 1;
	  return 1; // value changed
	}
	return 0; // no change
      } break;

      case SEQ_UI_ENCODER_GP14:
      case SEQ_UI_ENCODER_GP15: {
	// select delay
	if( SEQ_UI_Var16_Inc(&sysex_delay_between_dumps, 0, 999, incrementer) >= 0 ) {
	  store_file_required = 1;
	  return 1; // value changed
	}
	return 0; // no change
      } break;

      case SEQ_UI_ENCODER_GP16:
	// EXIT only via button
	if( incrementer == 0 ) {
	  if( store_file_required )
	    SEQ_UI_SYSEX_StoreConfig();

	  // Exit
	  dir_name[0] = 0;
	  ui_selected_item = 0;
	  dir_view_offset = 0;
	  SEQ_UI_SYSEX_UpdateDirList();
	}
	return 1;

      default:
	if( SEQ_UI_SelectListItem(incrementer, dir_num_items, NUM_LIST_DISPLAYED_ITEMS-2, &ui_selected_item, &dir_view_offset) )
	  SEQ_UI_SYSEX_UpdateDirList();
    }
  }

  return 1;
}
示例#2
0
/////////////////////////////////////////////////////////////////////////////
// Local encoder callback function
// Should return:
//   1 if value has been changed
//   0 if value hasn't been changed
//  -1 if invalid or unsupported encoder
/////////////////////////////////////////////////////////////////////////////
static s32 Encoder_Handler(seq_ui_encoder_t encoder, s32 incrementer)
{
  if( encoder >= SEQ_UI_ENCODER_GP9 && encoder <= SEQ_UI_ENCODER_GP16 ) {
    switch( ui_selected_item + list_view_offset ) {
      case LIST_ITEM_SYSTEM:
	SEQ_STATISTICS_Reset();
	break;
    }
    return 1;
  }

  // any other encoder changes the list view
  if( SEQ_UI_SelectListItem(incrementer, NUM_LIST_ITEMS, NUM_LIST_DISPLAYED_ITEMS, &ui_selected_item, &list_view_offset) )
    SEQ_UI_INFO_UpdateList();

  return 1;
}