summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-12-03 13:31:49 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2015-06-29 14:18:13 -0400
commita47cacfcc6213674ac5e8b40474f5a513c4e99e9 (patch)
tree08e9969fbf9493f10d6c7814575874f0de5ac6cd /libs
parent8367b7cab344e75908744a95fda860c7fadff420 (diff)
add signal to indicate absence of removal of scene change from Location
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/location.h5
-rw-r--r--libs/ardour/location.cc9
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 */
+ }
}
/*---------------------------------------------------------------------- */