diff options
author | Carl Hetherington <carl@carlh.net> | 2010-07-14 00:58:15 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-07-14 00:58:15 +0000 |
commit | 593b421180290f46f39efcb21ed8192b624bbc73 (patch) | |
tree | f8a81aad5fae8683818103b192d3c53a26110728 /libs/evoral/evoral/Sequence.hpp | |
parent | b75977920e7cb02ae31bca0379dd3aa4d82f9cbc (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/evoral/evoral/Sequence.hpp')
-rw-r--r-- | libs/evoral/evoral/Sequence.hpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libs/evoral/evoral/Sequence.hpp b/libs/evoral/evoral/Sequence.hpp index 3cddeb38ca..24a3c44625 100644 --- a/libs/evoral/evoral/Sequence.hpp +++ b/libs/evoral/evoral/Sequence.hpp @@ -185,7 +185,7 @@ public: class const_iterator { public: const_iterator(); - const_iterator(const Sequence<Time>& seq, Time t, std::set<Evoral::Parameter> const &); + const_iterator(const Sequence<Time>& seq, Time t, bool, std::set<Evoral::Parameter> const &); ~const_iterator(); inline bool valid() const { return !_is_end && _event; } @@ -220,10 +220,11 @@ public: typename SysExes::const_iterator _sysex_iter; ControlIterators _control_iters; ControlIterators::iterator _control_iter; + bool _force_discrete; }; - const_iterator begin (Time t=0, std::set<Evoral::Parameter> const & f = std::set<Evoral::Parameter> ()) const { - return const_iterator (*this, t, f); + const_iterator begin (Time t = 0, bool force_discrete = false, std::set<Evoral::Parameter> const & f = std::set<Evoral::Parameter> ()) const { + return const_iterator (*this, t, force_discrete, f); } const const_iterator& end() const { return _end_iter; } |