summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/midi_model.h
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-07-14 00:58:15 +0000
committerCarl Hetherington <carl@carlh.net>2010-07-14 00:58:15 +0000
commit593b421180290f46f39efcb21ed8192b624bbc73 (patch)
treef8a81aad5fae8683818103b192d3c53a26110728 /libs/ardour/ardour/midi_model.h
parentb75977920e7cb02ae31bca0379dd3aa4d82f9cbc (diff)
A few fixes to interpolation of MIDI controller data. Don't interpolate
when writing these data back to a source, otherwise surprising new interpolated points appear in MIDI automation. Similarly don't interpolate when reading the model during MIDI stretch. Fix handling of interpolation state; controllers that have been set by the user to use a different interpolation style are noted in the <Source> tag of the session file and this state is sprayed around to MidiModel and the GUI as necessary. git-svn-id: svn://localhost/ardour2/branches/3.0@7409 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/midi_model.h')
-rw-r--r--libs/ardour/ardour/midi_model.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/libs/ardour/ardour/midi_model.h b/libs/ardour/ardour/midi_model.h
index 4e348af287..a8303539b5 100644
--- a/libs/ardour/ardour/midi_model.h
+++ b/libs/ardour/ardour/midi_model.h
@@ -148,6 +148,8 @@ public:
InsertMergePolicy insert_merge_policy () const;
void set_insert_merge_policy (InsertMergePolicy);
+ boost::shared_ptr<Evoral::Control> control_factory(const Evoral::Parameter& id);
+
protected:
int resolve_overlaps_unlocked (const NotePtr, void* arg = 0);
@@ -170,6 +172,11 @@ public:
private:
friend class DeltaCommand;
+ void source_interpolation_changed (Evoral::Parameter, Evoral::ControlList::InterpolationStyle);
+ void control_list_interpolation_changed (Evoral::Parameter, Evoral::ControlList::InterpolationStyle);
+
+ PBD::ScopedConnectionList _midi_source_connections;
+
// We cannot use a boost::shared_ptr here to avoid a retain cycle
MidiSource* _midi_source;
InsertMergePolicy _insert_merge_policy;