Ejemplo n.º 1
0
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;

}
Ejemplo n.º 2
0
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);
	}
}
Ejemplo n.º 3
0
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);
}
Ejemplo n.º 4
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);
}
Ejemplo n.º 5
0
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);
}