void PlayRangeCurrPos(struct Tracker_Windows *window){ struct WBlocks *wblock; Place *place; PlayStopReally(false); wblock=window->wblock; if( ! wblock->isranged) return; root->setfirstpos=false; if(wblock->rangey1==0) root->setfirstpos=true; place=getRangeStartPlace(wblock); pc->seqtime=-Place2STime(wblock->block,place); // printf("playrange, time: %d\n",pc->seqtime); Place *place_start = getRangeStartPlace(wblock); Place *place_end = getRangeEndPlace(wblock); pc->range_duration = Place2STime(wblock->block, place_end) - Place2STime(wblock->block, place_start); pc->is_playing_range = true; PlayBlock(wblock->block,place,true); }
void InvertRange( struct WBlocks *wblock ){ struct Tracks *track; int lokke; Place *p1,*p2; if( ! wblock->isranged) return; p1=getRangeStartPlace(wblock); p2=getRangeEndPlace(wblock); track=ListFindElement1(&wblock->block->tracks->l,wblock->rangex1); for(lokke=0;lokke<=wblock->rangex2-wblock->rangex1;lokke++){ Invert_notes(track->notes,p1,p2,true,0); track=NextTrack(track); } }