diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2020-05-04 18:48:01 -0600 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2020-05-04 18:48:17 -0600 |
commit | 9b070eefb106c25032d6e077090d9f8a959aefc4 (patch) | |
tree | 689ea306607f0f2461d0940c7ad560a81439c18e /libs/ardour/ardour/audio_track.h | |
parent | 7644168536a37b79eb13f598ca884e0fb7209a3a (diff) |
fix note-tracking in Editor::write_one_track()
We need a MidiStateTracker to determine notes whose end is not reached
during the call to ::write_one_track(), so that we can resolve them
in the output (SMF) source. This required some changes to the ::export_stuff()
API for tracks.
In addition, we now take the source "lock" just once during ::write_one_track()
rather than every time we write. This isn't an integral part of the
note tracking, but fell out along the way.
Finally, note that although we use a vector to handle MIDI "sources" here,
it is expected that there is only 1 MIDI source at present. Leave vectors in
place since it is possible that ::write_one_track() could be modified
in the future to change that.
Diffstat (limited to 'libs/ardour/ardour/audio_track.h')
-rw-r--r-- | libs/ardour/ardour/audio_track.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libs/ardour/ardour/audio_track.h b/libs/ardour/ardour/audio_track.h index 55def29b99..6b8f01986c 100644 --- a/libs/ardour/ardour/audio_track.h +++ b/libs/ardour/ardour/audio_track.h @@ -48,7 +48,8 @@ class LIBARDOUR_API AudioTrack : public Track boost::shared_ptr<Region> bounce_range (samplepos_t start, samplepos_t end, InterThreadInfo&, boost::shared_ptr<Processor> endpoint, bool include_endpoint); int export_stuff (BufferSet& bufs, samplepos_t start_sample, samplecnt_t nframes, - boost::shared_ptr<Processor> endpoint, bool include_endpoint, bool for_export, bool for_freeze); + boost::shared_ptr<Processor> endpoint, bool include_endpoint, bool for_export, bool for_freeze, + MidiStateTracker&); int set_state (const XMLNode&, int version); |