///////////////////////////////////////////////////////////////////////////// // 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; }
///////////////////////////////////////////////////////////////////////////// // 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; }