Revision 13:0d4048bfadbb Agent.cpp

View differences:

Agent.cpp
75 75
    double prevBeat = 0, nextBeat, currentInterval, beats;
76 76
    EventList::iterator ei = events.begin();
77 77
    if (ei != events.end()) {
78
	++ei;
79
	prevBeat = ei->time;
80
	--ei;
78
        EventList::iterator ni = ei;
79
	prevBeat = (++ni)->time;
81 80
    }
82
    for ( ; ei != events.end(); ++ei) {
83
	++ei;
84
	nextBeat = ei->time;
85
	--ei; // so as to insert before nextBeat
81
    for ( ; ei != events.end(); ) {
82
        EventList::iterator ni = ei;
83
	nextBeat = (++ni)->time;
86 84
	beats = nearbyint((nextBeat - prevBeat) / beatInterval - 0.01); //prefer slow
87 85
	currentInterval = (nextBeat - prevBeat) / beats;
88 86
	for ( ; (nextBeat > start) && (beats > 1.5); beats--) {
89 87
	    prevBeat += currentInterval;
90
            events.insert(ei, BeatTracker::newBeat(prevBeat, 0));
91
            ++ei;
88
            events.insert(ni, BeatTracker::newBeat(prevBeat, 0));
92 89
	}
93 90
	prevBeat = nextBeat;
91
        ei = ni;
94 92
    }
95 93
} // fillBeats()

Also available in: Unified diff