Esempio n. 1
0
void UpdateWTempoNodes(
	struct Tracker_Windows *window,
	struct WBlocks *wblock
){
	struct TempoNodes *prev=wblock->block->temponodes;
	struct TempoNodes *temponode=NextTempoNode(prev);

	wblock->wtemponodes=talloc(sizeof(WTempoNodes *) * wblock->num_reallines);

	while(temponode!=NULL){

		MakeNodeLines(
			window,
			wblock,
                        NULL,
			&prev->l.p,
			&temponode->l.p,
			prev->reltempo,
			temponode->reltempo,
			(float)(-wblock->reltempomax+1.0f), (float)(wblock->reltempomax-1.0f),
			prev,
			&MakeWTempoNodesCallBack
		);

		prev=temponode;
		temponode=NextTempoNode(temponode);
	}
}
Esempio n. 2
0
void UpdateFXNodeLines(
	struct Tracker_Windows *window,
	struct WBlocks *wblock,
	struct WTracks *wtrack
){
	struct FXs *fx=wtrack->track->fxs;

	struct FXNodeLines *prev;
	struct FXNodeLines *fxnode;

	struct FXextrainfo fxextrainfo={0};

        wtrack->wfxnodes=talloc(sizeof(WFXNodes *) * wblock->num_reallines);

	while(fx!=NULL){
		fxextrainfo.FXs=fx;
		prev=fx->fxnodelines;
		fxnode=NextFXNodeLine(prev);
		fxextrainfo.color=fx->fx->color;

		while(fxnode!=NULL){
			fxextrainfo.FXNodeLine=prev;
			MakeNodeLines(
				window,
				wblock,
                                wtrack,
				&prev->l.p,
				&fxnode->l.p,
				(float)prev->val,(float)fxnode->val,
				(float) fx->fx->min,(float) fx->fx->max,
				&fxextrainfo,
				&MakeWFXNodesCallBack
			);
			prev=fxnode;
			fxnode=NextFXNodeLine(fxnode);
		}
		fx=NextFX(fx);
	}

}
Esempio n. 3
0
static void AddTrackReallineNote(
	struct Tracker_Windows *window,
	struct WBlocks *wblock,
	struct WTracks *wtrack,
	struct Notes *note
){
	int realline=FindRealLineForNote(wblock,note->Tline,note);
	int subtrack=0;//FindFirstFreeSubTrack(wtrack,realline,&note->l.p);
        note->subtrack = subtrack;

        R_ASSERT(note!=NULL);
	InsertTRLElement(
		window,
		wtrack,
		subtrack,
		realline,
		TRE_THISNOTELINES,
		subtrack,
		0.0f,0.0f,0,0,					/* Will be filled in in the OrganizeThisNoteLines part. */
		note,
                note
	);

#if !USE_OPENGL
	struct Velocities *velocity,*prev;

	float maxx = MAX_VELOCITY;

	struct TrackReallineNodeInfo nodeinfo;
	nodeinfo.wtrack=wtrack;
	nodeinfo.pointer=note;
	nodeinfo.type=TRE_VELLINE;
	nodeinfo.subtype=subtrack;

	velocity=note->velocities;
	if(velocity!=NULL){
		MakeNodeLines(
			window,
			wblock,
                        wtrack,
			&note->l.p,&velocity->l.p,
			(float)note->velocity,(float)velocity->velocity,
			0.0f,maxx,
			&nodeinfo,
			&NodeLineCallBack_first
		);
		prev=velocity;
		velocity=NextVelocity(velocity);
		while(velocity!=NULL){
			nodeinfo.velocity=prev;
			MakeNodeLines(
				window,
				wblock,
                                wtrack,
				&prev->l.p,&velocity->l.p,
				(float)prev->velocity,(float)velocity->velocity,
				0.0f,maxx,
				&nodeinfo,
				&NodeLineCallBack_vel
			);
			prev=velocity;
			velocity=NextVelocity(velocity);
		}
		nodeinfo.velocity=prev;
		MakeNodeLines(
			window,
			wblock,
                        wtrack,
			&prev->l.p,&note->end,
			(float)prev->velocity,(float)note->velocity_end,
			0.0f,maxx,
			&nodeinfo,
			&NodeLineCallBack_last
		);
	}else{
		MakeNodeLines(
			window,
			wblock,
                        wtrack,
			&note->l.p,&note->end,
			(float)note->velocity,(float)note->velocity_end,
			0.0f,maxx,
			&nodeinfo,
			&NodeLineCallBack
		);
	}
#endif
}