void InsertTracks_CurrPos( struct Tracker_Windows *window, NInt toinsert ){ struct WBlocks *wblock; NInt curr_track; PlayStop(); curr_track=window->curr_track; if(curr_track<0) return; Undo_Block_CurrPos(window); wblock=window->wblock; InsertTracks(window,wblock,curr_track,toinsert); if(curr_track>=wblock->block->num_tracks){ curr_track=wblock->block->num_tracks-1; } SetCursorPosConcrete(window,wblock,0,-1); #if !USE_OPENGL UpdateAllFXNodeLines(window,wblock); #endif SetCursorPosConcrete(window,wblock,curr_track,-1); window->must_redraw = true; }
void Block_Properties( struct Blocks *block, NInt num_tracks, int num_lines ){ if(num_tracks!=block->num_tracks){ struct Tracker_Windows *window=root->song->tracker_windows; while(window!=NULL){ struct WBlocks *wblock=(struct WBlocks *)ListFindElement1(&window->wblocks->l,block->l.num); SetCursorPosConcrete(window,wblock,0,-1); window=NextWindow(window); } Block_Set_num_tracks(block,num_tracks); } if(num_lines!=block->num_lines){ Block_Set_num_lines(block,num_lines); } struct Tracker_Windows *window=root->song->tracker_windows; while(window!=NULL){ struct WBlocks *wblock=ListFindElement1(&window->wblocks->l,block->l.num); if(wblock->curr_realline>=wblock->num_reallines){ wblock->curr_realline = wblock->num_reallines-1; } UpdateReallinesDependens(window,wblock); window=NextWindow(window); } }
void CursorPrevTrack_CurrPos(struct Tracker_Windows *window){ struct WBlocks *wblock=window->wblock; NInt curr_track=window->curr_track; int new_track = find_track_left(window); if (new_track==curr_track) // can happen. return; SetCursorPosConcrete(window,wblock,new_track,-1); TrackSelectUpdate(window,wblock,0); }
void CursorNextTrack_CurrPos(struct Tracker_Windows *window){ struct WBlocks *wblock=window->wblock; struct WTracks *wtrack=wblock->wtrack; int ret; if(wtrack->l.next==NULL){ ret=SetCursorPosConcrete(window,wblock,0,-1); }else{ ret=CursorNextTrack(window,wblock); } TrackSelectUpdate(window,wblock,ret); }
void SetCursorPosConcrete_CurrPos( struct Tracker_Windows *window, NInt tracknum ){ struct WBlocks *wblock=window->wblock; //int ret; if(tracknum>=wblock->block->num_tracks) return; SetCursorPosConcrete( window, wblock, tracknum, -1 ); TrackSelectUpdate(window,wblock,-1); }