diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-07-20 18:13:03 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-07-20 18:13:03 +0000 |
commit | c99738d88e8a2ad806b219b9f3614a6b55b6bf37 (patch) | |
tree | d506a27d404e1b63063372ebe2f63aacc7e6ebb4 /libs/ardour/ardour/midi_source.h | |
parent | 8c7fda11cf47cd8dd04c6eabffc437dd942403d5 (diff) |
try to fix data loss at end of a capture pass for MIDI - add a new virtual method to MidiSource that specifies what should be done with stuck notes, remove duplicate(i hope) _last_flush_frame from SMFSource that mirrored, more or less, MidiSource::_last_write_end; use new virtual method when stopping after capture.
git-svn-id: svn://localhost/ardour2/branches/3.0@9910 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/midi_source.h')
-rw-r--r-- | libs/ardour/ardour/midi_source.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libs/ardour/ardour/midi_source.h b/libs/ardour/ardour/midi_source.h index a7b47efe21..735a38faa5 100644 --- a/libs/ardour/ardour/midi_source.h +++ b/libs/ardour/ardour/midi_source.h @@ -83,6 +83,13 @@ class MidiSource : virtual public Source, public boost::enable_shared_from_this< virtual void mark_streaming_write_completed (); void mark_write_starting_now (); + /* like ::mark_streaming_write_completed() but with more arguments to + * allow control over MIDI-specific behaviour. Expected to be used only + * when recording actual MIDI input, rather then when importing files + * etc. + */ + virtual void mark_midi_streaming_write_completed (Evoral::Sequence<Evoral::MusicalTime>::StuckNoteOption, Evoral::MusicalTime when = 0); + virtual void session_saved(); std::string captured_for() const { return _captured_for; } @@ -91,6 +98,9 @@ class MidiSource : virtual public Source, public boost::enable_shared_from_this< uint32_t read_data_count() const { return _read_data_count; } uint32_t write_data_count() const { return _write_data_count; } + framepos_t last_write_end() const { return _last_write_end; } + void set_last_write_end (framepos_t pos) { _last_write_end = pos; } + static PBD::Signal1<void,MidiSource*> MidiSourceCreated; XMLNode& get_state (); |