summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_track.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-10-08 14:54:16 +0000
committerCarl Hetherington <carl@carlh.net>2010-10-08 14:54:16 +0000
commitba0458cf1f6c69366e89631d8fff916ad183d768 (patch)
tree47bc77224638eac6d7a9e8179e03e5fa0a142665 /libs/ardour/midi_track.cc
parenta029a112a6e370082e89b74cb94089505a9323af (diff)
Update recorded MIDI regions as notes arrive. Fixes one cause of infinite note-lengths during record. Fix various problems with multiple captures of MIDI during one pass.
git-svn-id: svn://localhost/ardour2/branches/3.0@7887 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/midi_track.cc')
-rw-r--r--libs/ardour/midi_track.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc
index 595fccf360..452e3038bd 100644
--- a/libs/ardour/midi_track.cc
+++ b/libs/ardour/midi_track.cc
@@ -105,6 +105,10 @@ MidiTrack::set_diskstream (boost::shared_ptr<Diskstream> ds)
_diskstream->set_record_enabled (false);
//_diskstream->monitor_input (false);
+ _diskstream_data_recorded_connection.disconnect ();
+ boost::shared_ptr<MidiDiskstream> mds = boost::dynamic_pointer_cast<MidiDiskstream> (ds);
+ mds->DataRecorded.connect_same_thread (_diskstream_data_recorded_connection, boost::bind (&MidiTrack::diskstream_data_recorded, this, _1, _2));
+
DiskstreamChanged (); /* EMIT SIGNAL */
}
@@ -633,3 +637,10 @@ MidiTrack::midi_playlist ()
{
return midi_diskstream()->midi_playlist ();
}
+
+void
+MidiTrack::diskstream_data_recorded (boost::shared_ptr<MidiBuffer> buf, boost::weak_ptr<MidiSource> src)
+{
+ DataRecorded (buf, src); /* EMIT SIGNAL */
+}
+