summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_diskstream.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-10-25 14:42:46 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-10-25 14:42:46 +0000
commitde5e463904de7b58218a5bb1e9080ba5353bb985 (patch)
tree73088a0660bf521b57c784da47e7bff4e5a1084b /libs/ardour/midi_diskstream.cc
parente0a2d498696eac65380eee8ff1ca0e29ec4c0783 (diff)
make per-region note-tracking in MidiPlaylist work correctly, or something very close to it. note that locking isssues remain when regions (and thus note trackers) are removed
git-svn-id: svn://localhost/ardour2/branches/3.0@5912 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/midi_diskstream.cc')
-rw-r--r--libs/ardour/midi_diskstream.cc16
1 files changed, 10 insertions, 6 deletions
diff --git a/libs/ardour/midi_diskstream.cc b/libs/ardour/midi_diskstream.cc
index 1840b950fd..f61211def8 100644
--- a/libs/ardour/midi_diskstream.cc
+++ b/libs/ardour/midi_diskstream.cc
@@ -41,6 +41,7 @@
#include "ardour/butler.h"
#include "ardour/configuration.h"
#include "ardour/cycle_timer.h"
+#include "ardour/debug.h"
#include "ardour/io.h"
#include "ardour/midi_diskstream.h"
#include "ardour/midi_playlist.h"
@@ -1049,6 +1050,10 @@ MidiDiskstream::transport_stopped (struct tm& /*when*/, time_t /*twhen*/, bool a
delete *ci;
}
+ if (_playlist) {
+ midi_playlist()->clear_note_trackers ();
+ }
+
capture_info.clear ();
capture_start_frame = 0;
}
@@ -1473,14 +1478,13 @@ MidiDiskstream::get_playback (MidiBuffer& dst, nframes_t start, nframes_t end)
// Translates stamps to be relative to start
- _playback_buf->read(dst, start, end);
-#if 0
+#ifndef NDEBUG
const size_t events_read = _playback_buf->read(dst, start, end);
- cout << _name << ": MDS events read = " << events_read
- << " start = " << start << " end = " << end
- << " readspace " << _playback_buf->read_space()
- << " writespace " << _playback_buf->write_space() << endl;
+ DEBUG_TRACE (DEBUG::MidiDiskstreamIO, string_compose ("%1 MDS events read %2 range %3 .. %4 rspace %5 wspace %6\n", _name, events_read, start, end,
+ _playback_buf->read_space(), _playback_buf->write_space()));
+#else
+ _playback_buf->read(dst, start, end);
#endif
gint32 frames_read = end - start;