summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/midi_source.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-08-11 06:17:42 +0000
committerDavid Robillard <d@drobilla.net>2007-08-11 06:17:42 +0000
commit5156998e6e2536c9c713974d3ae719a5d2ef5c7f (patch)
tree6223846321fe3f611b952b2c2e77c349d0b7072f /libs/ardour/ardour/midi_source.h
parent861181d7421012486e36327c464b957ec08e396b (diff)
Saving of edited MIDI data to disk (on session save).
Seems to be a pretty random problem with note duration restoring though... git-svn-id: svn://localhost/ardour2/trunk@2290 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/midi_source.h')
-rw-r--r--libs/ardour/ardour/midi_source.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/libs/ardour/ardour/midi_source.h b/libs/ardour/ardour/midi_source.h
index 2de31f879e..088175ab75 100644
--- a/libs/ardour/ardour/midi_source.h
+++ b/libs/ardour/ardour/midi_source.h
@@ -51,12 +51,17 @@ class MidiSource : public Source
virtual nframes_t read (MidiRingBuffer& dst, nframes_t start, nframes_t cnt, nframes_t stamp_offset) const;
virtual nframes_t write (MidiRingBuffer& src, nframes_t cnt);
+ virtual void append_event_unlocked(const MidiEvent& ev) = 0;
+
+ virtual void flush() {}
virtual void mark_for_remove() = 0;
virtual void mark_streaming_midi_write_started (NoteMode mode);
virtual void mark_streaming_write_started ();
virtual void mark_streaming_write_completed ();
+ void set_timeline_position (nframes_t when) { _timeline_position = when; }
+
virtual void session_saved();
string captured_for() const { return _captured_for; }
@@ -80,6 +85,7 @@ class MidiSource : public Source
virtual bool model_loaded() const { return _model_loaded; }
boost::shared_ptr<MidiModel> model() { return _model; }
+ void set_model(boost::shared_ptr<MidiModel> m) { _model = m; _model_loaded = true; }
protected:
virtual nframes_t read_unlocked (MidiRingBuffer& dst, nframes_t start, nframes_t cnt, nframes_t stamp_offset) const = 0;
@@ -87,6 +93,7 @@ class MidiSource : public Source
mutable Glib::Mutex _lock;
string _captured_for;
+ uint64_t _timeline_position;
mutable uint32_t _read_data_count; ///< modified in read()
mutable uint32_t _write_data_count; ///< modified in write()