diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2014-12-03 13:31:49 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2015-06-29 14:18:13 -0400 |
commit | a47cacfcc6213674ac5e8b40474f5a513c4e99e9 (patch) | |
tree | 08e9969fbf9493f10d6c7814575874f0de5ac6cd /libs | |
parent | 8367b7cab344e75908744a95fda860c7fadff420 (diff) |
add signal to indicate absence of removal of scene change from Location
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/ardour/location.h | 5 | ||||
-rw-r--r-- | libs/ardour/location.cc | 9 |
2 files changed, 9 insertions, 5 deletions
diff --git a/libs/ardour/ardour/location.h b/libs/ardour/ardour/location.h index 7a6832eb2d..6b1f89dab3 100644 --- a/libs/ardour/ardour/location.h +++ b/libs/ardour/ardour/location.h @@ -144,8 +144,9 @@ class LIBARDOUR_API Location : public SessionHandleRef, public PBD::StatefulDest void set_position_lock_style (PositionLockStyle ps); void recompute_frames_from_bbt (); - static PBD::Signal0<void> scene_changed; - + static PBD::Signal0<void> scene_changed; /* for use by backend scene change management, class level */ + PBD::Signal0<void> SceneChangeChanged; /* for use by objects interested in this object */ + private: std::string _name; framepos_t _start; diff --git a/libs/ardour/location.cc b/libs/ardour/location.cc index 73978ae15c..9d7e7c3e57 100644 --- a/libs/ardour/location.cc +++ b/libs/ardour/location.cc @@ -759,9 +759,12 @@ Location::unlock () void Location::set_scene_change (boost::shared_ptr<SceneChange> sc) { - _scene_change = sc; - - scene_changed (); /* EMIT SIGNAL */ + if (_scene_change != sc) { + _scene_change = sc; + + scene_changed (); /* EMIT SIGNAL */ + SceneChangeChanged (); /* EMIT SIGNAL */ + } } /*---------------------------------------------------------------------- */ |