void MidiTrack::recalculateSize() { mSize = 0; MidiEvent * last = NULL; std::vector<MidiEvent*>::iterator it; for (it = mEvents.begin(); it != mEvents.end(); it++) { MidiEvent * E = *it; mSize += E->getSize(); // If an event is of the same type as the previous event, // no status char is written. if (last != NULL && !E->requiresStatusByte(last)) { mSize--; } last = E; } mSizeNeedsRecalculating = false; }