summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_playlist.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-05-31 21:37:20 +0000
committerDavid Robillard <d@drobilla.net>2007-05-31 21:37:20 +0000
commit0f2f4d8efc7f3e1144c6f51fd17c1ab309056c3e (patch)
tree5f3b9c752aafcd9874ae55197d678d4b17bbc442 /libs/ardour/midi_playlist.cc
parent52a8242a1158426caeed4757bbc3f7f71091e351 (diff)
Rewrote MidiRingBuffer to more efficiently pack data (flat pack stamps, sizes, and event data into a single buffer).
Eliminate a double-copy on MIDI playback (MidiRingBuffer -> MidiBuffer). Various MIDI diskstream/source/SMF fixes (only write when appropriate, handle transport locates, etc). Fix MIDI rec region size/offset problems. Code cleanups. git-svn-id: svn://localhost/ardour2/trunk@1934 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/midi_playlist.cc')
-rw-r--r--libs/ardour/midi_playlist.cc10
1 files changed, 3 insertions, 7 deletions
diff --git a/libs/ardour/midi_playlist.cc b/libs/ardour/midi_playlist.cc
index 2e36e34e43..f99ef299a7 100644
--- a/libs/ardour/midi_playlist.cc
+++ b/libs/ardour/midi_playlist.cc
@@ -128,10 +128,9 @@ MidiPlaylist::read (MidiRingBuffer& dst, nframes_t start,
Glib::Mutex::Lock rm (region_lock);
- nframes_t ret = 0;
- nframes_t end = start + dur - 1;
+ nframes_t end = start + dur - 1;
- //_read_data_count = 0;
+ _read_data_count = 0;
// relevent regions overlapping start <--> end
vector<boost::shared_ptr<Region> > regs;
@@ -150,12 +149,9 @@ MidiPlaylist::read (MidiRingBuffer& dst, nframes_t start,
// FIXME: ensure time is monotonic here
boost::shared_ptr<MidiRegion> mr = boost::dynamic_pointer_cast<MidiRegion>(*i);
mr->read_at (dst, start, dur, chan_n);
- ret += mr->read_data_count();
+ _read_data_count += mr->read_data_count();
}
- _read_data_count += ret;
-
- //return ret; FIXME?
return dur;
}