diff options
| author | Florian Jung <flo@windfisch.org> | 2013-08-16 23:04:08 +0200 | 
|---|---|---|
| committer | Florian Jung <flo@windfisch.org> | 2013-08-16 23:04:08 +0200 | 
| commit | 4933ccfe7552dc5dbb2921f6583bbeb92dd144b4 (patch) | |
| tree | aca8f234f17bbe94fc78c4d1cedd8e8649d2dd1f /muse2/muse/steprec.cpp | |
| parent | be3b3fef8d787f167b57ebfd700717a02c38570d (diff) | |
Parts have their own, non-shared EventList (still WIP!)
removed refcounting in Eventlist
Part::events() is now a const EventList&
chaining parts now a Part:: member function
made Track::events, ::mpevents public instead of using an insane reference-accessor
TODO: need a grouping indicator of clones (like the eventlist pointer was used for)
Diffstat (limited to 'muse2/muse/steprec.cpp')
| -rw-r--r-- | muse2/muse/steprec.cpp | 18 | 
1 files changed, 9 insertions, 9 deletions
| diff --git a/muse2/muse/steprec.cpp b/muse2/muse/steprec.cpp index 723fe650..466c4e21 100644 --- a/muse2/muse/steprec.cpp +++ b/muse2/muse/steprec.cpp @@ -76,10 +76,10 @@ void StepRec::record(Part* part, int pitch, int len, int step, int velo, bool ct  		chord_timer->stop();  		// extend len of last note? -		EventList* events = part->events(); +		const EventList& events = part->events();  		if (ctrl)  		{ -			for (iEvent i = events->begin(); i != events->end(); ++i) +			for (iEvent i = events.begin(); i != events.end(); ++i)  			{  				Event ev = i->second;  				if (ev.isNote() && ev.pitch() == pitch && ((ev.tick() + ev.lenTick() + part->tick()) == tick)) @@ -106,8 +106,8 @@ void StepRec::record(Part* part, int pitch, int len, int step, int velo, bool ct  			// if we would find a note after part->lenTick(), the above "if"  			// avoids this. this has to be avoided because then part->hasHiddenEvents() is true  			// which results in forbidding any action beyond its end -			EventRange range = events->equal_range(tick - part->tick()); -			for (iEvent i = range.first; i != range.second; ++i) +			EventRange range = events.equal_range(tick - part->tick()); +			for (ciEvent i = range.first; i != range.second; ++i)  			{  				Event ev = i->second;  				if (ev.isNote() && ev.pitch() == pitch) @@ -161,18 +161,18 @@ void StepRec::record(Part* part, int pitch, int len, int step, int velo, bool ct  			// extend len of last note(s)  			using std::set; -			set<Event*> extend_set; -			EventList* events = part->events(); -			for (iEvent i = events->begin(); i != events->end(); ++i) +			set<const Event*> extend_set; +			const EventList& events = part->events(); +			for (iEvent i = events.begin(); i != events.end(); ++i)  			{  				Event& ev = i->second;  				if (ev.isNote() && note_held_down[ev.pitch()] && ((ev.tick() + ev.lenTick() + part->tick()) == tick))  					extend_set.insert(&ev);  			} -			for (set<Event*>::iterator it=extend_set.begin(); it!=extend_set.end(); it++) +			for (set<const Event*>::iterator it=extend_set.begin(); it!=extend_set.end(); it++)  			{ -				Event& ev=**it; +				const Event& ev=**it;  				Event e = ev.clone();  				e.setLenTick(ev.lenTick() + len);  				operations.push_back(UndoOp(UndoOp::ModifyEvent,e, ev, part, false, false)); | 
