diff options
author | Carl Hetherington <carl@carlh.net> | 2010-07-12 00:41:45 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-07-12 00:41:45 +0000 |
commit | d1b4599725abda6b8697151fd4a1bd3740ad2f2a (patch) | |
tree | a6c7035d9316f8a1c1fef9aa079a76a210b643a5 /libs/evoral/src/Control.cpp | |
parent | 6f5ee7c4293c43486d48bac00fdcdba90dabb17d (diff) |
Mark Sequence as edited when one of its parent ControlSet's ControlLists is changed.
git-svn-id: svn://localhost/ardour2/branches/3.0@7404 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/evoral/src/Control.cpp')
-rw-r--r-- | libs/evoral/src/Control.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/libs/evoral/src/Control.cpp b/libs/evoral/src/Control.cpp index 56277678ba..985c7b1352 100644 --- a/libs/evoral/src/Control.cpp +++ b/libs/evoral/src/Control.cpp @@ -26,9 +26,9 @@ Parameter::TypeMetadata Parameter::_type_metadata; Control::Control(const Parameter& parameter, boost::shared_ptr<ControlList> list) : _parameter(parameter) - , _list(list) , _user_value(list ? list->default_value() : parameter.normal()) { + set_list (list); } @@ -59,7 +59,19 @@ Control::set_float(float value, bool to_list, FrameTime frame) void Control::set_list(boost::shared_ptr<ControlList> list) { + _list_marked_dirty_connection.disconnect (); + _list = list; + + if (_list) { + _list->Dirty.connect_same_thread (_list_marked_dirty_connection, boost::bind (&Control::list_marked_dirty, this)); + } +} + +void +Control::list_marked_dirty () +{ + ListMarkedDirty (); /* EMIT SIGNAL */ } } // namespace Evoral |