diff options
author | Carl Hetherington <carl@carlh.net> | 2010-10-08 14:54:16 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-10-08 14:54:16 +0000 |
commit | ba0458cf1f6c69366e89631d8fff916ad183d768 (patch) | |
tree | 47bc77224638eac6d7a9e8179e03e5fa0a142665 /libs/ardour/midi_track.cc | |
parent | a029a112a6e370082e89b74cb94089505a9323af (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.cc | 11 |
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 */ +} + |