void AddVelocityCurrPos(struct Tracker_Windows *window){ struct WBlocks *wblock=window->wblock; struct LocalZooms *realline= wblock->reallines[wblock->curr_realline]; int subtrack=window->curr_track_sub; if(-1==subtrack) return; ADD_UNDO(Notes_CurrPos(window)); struct Notes *note = FindNoteOnSubTrack( wblock->wtrack, subtrack, &realline->l.p ); if(note==NULL) return; AddVelocity( root->standardvel, &realline->l.p, note ); #if !USE_OPENGL ClearTrack(window,wblock,wblock->wtrack,wblock->top_realline,wblock->bot_realline); UpdateWTrack(window,wblock,wblock->wtrack,wblock->top_realline,wblock->bot_realline); #endif }
static void AddFXNodeLineCurrPosInternal(struct Tracker_Windows *window, struct WBlocks *wblock, struct WTracks *wtrack, struct FX *fx, const Place *place, float val){ Undo_FXs_CurrPos(window); struct FXs *fxs=ListFindElement1_r0(&wtrack->track->fxs->l,fx->num); if (fxs==NULL){ Place p2; int realline=FindRealLineFor(wblock,0,place); if(realline>=wblock->num_reallines-5){ PlaceSetLastPos(wblock->block,&p2); }else{ PlaceCopy(&p2,&wblock->reallines[wblock->curr_realline+3]->l.p); } AddNewTypeOfFxNodeLine(wblock, wtrack, fx, &p2, val); } AddFXNodeLine( window,wblock,wtrack, fx->num, val, place ); #if !USE_OPENGL UpdateFXNodeLines(window,wblock,wtrack); ClearTrack(window,wblock,wtrack,wblock->top_realline,wblock->bot_realline); UpdateWTrack(window,wblock,wtrack,wblock->top_realline,wblock->bot_realline); #endif }
struct Pitches *AddPitch(struct Tracker_Windows *window, struct WBlocks *wblock, struct WTracks *wtrack, struct Notes *note, Place *place, float notenum){ struct Pitches *pitch = talloc(sizeof(struct Pitches)); PlaceCopy(&pitch->l.p,place); pitch->note = notenum; //pitch->note_note = note; int pos; PC_Pause(); { pos=ListAddElement3_ns(¬e->pitches, &pitch->l); }PC_StopPause(); if(pos==-1) return NULL; #if !USE_OPENGL ClearTrack(window,wblock,wtrack,wblock->top_realline,wblock->bot_realline); UpdateWTrack(window,wblock,wtrack,wblock->top_realline,wblock->bot_realline); #endif return pitch; }