summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2015-02-18 11:50:52 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2015-02-18 12:00:36 -0500
commit8c812a6df4052f40723ab4e36ea591c32430463b (patch)
treebb7a84e6d0c78b56a0572ef82b6b11a2acb75a24 /libs
parent2067163f7a037029c557f2d6e79bb3a06f26a688 (diff)
Revert "[Summary] Eliminated redundant marker update notification which lead to creation of huge amount of redundant session events"
This reverts commit 3dde9e969c1a775c04487501dee974d261a3f955.
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/location.h10
-rw-r--r--libs/ardour/location.cc26
-rw-r--r--libs/ardour/session.cc16
3 files changed, 11 insertions, 41 deletions
diff --git a/libs/ardour/ardour/location.h b/libs/ardour/ardour/location.h
index 7d51f6a7f3..f809dbf280 100644
--- a/libs/ardour/ardour/location.h
+++ b/libs/ardour/ardour/location.h
@@ -123,13 +123,11 @@ class LIBARDOUR_API Location : public SessionHandleRef, public PBD::StatefulDest
changes to this object
*/
- PBD::Signal0<void> Changed;
- void set_block_change_notifications (bool yn) {_block_change_notifications = yn;}
-
PBD::Signal0<void> NameChanged;
PBD::Signal0<void> EndChanged;
PBD::Signal0<void> StartChanged;
- PBD::Signal0<void> FlagsChanged;
+ PBD::Signal0<void> Changed;
+ PBD::Signal0<void> FlagsChanged;
PBD::Signal0<void> LockChanged;
PBD::Signal0<void> PositionLockStyleChanged;
@@ -157,8 +155,6 @@ class LIBARDOUR_API Location : public SessionHandleRef, public PBD::StatefulDest
bool _locked;
PositionLockStyle _position_lock_style;
boost::shared_ptr<SceneChange> _scene_change;
-
- bool _block_change_notifications; // required for group operations
void set_mark (bool yn);
bool set_flag_internal (bool yn, Flags flag);
@@ -203,7 +199,7 @@ class LIBARDOUR_API Locations : public SessionHandleRef, public PBD::StatefulDes
void marks_either_side (framepos_t const, framepos_t &, framepos_t &) const;
void find_all_between (framepos_t start, framepos_t, LocationList&, Location::Flags);
-
+
PBD::Signal1<void,Location*> current_changed;
/* Objects that care about individual addition and removal of Locations should connect to added/removed.
diff --git a/libs/ardour/location.cc b/libs/ardour/location.cc
index 1332259c3a..2e9125126b 100644
--- a/libs/ardour/location.cc
+++ b/libs/ardour/location.cc
@@ -58,7 +58,6 @@ Location::Location (Session& s)
, _flags (Flags (0))
, _locked (false)
, _position_lock_style (AudioTime)
- , _block_change_notifications (false)
{
assert (_start >= 0);
assert (_end >= 0);
@@ -73,8 +72,6 @@ Location::Location (Session& s, framepos_t sample_start, framepos_t sample_end,
, _flags (bits)
, _locked (false)
, _position_lock_style (s.config.get_glue_new_markers_to_bars_and_beats() ? MusicTime : AudioTime)
- , _block_change_notifications (false)
-
{
recompute_bbt_from_frames ();
@@ -92,8 +89,6 @@ Location::Location (const Location& other)
, _bbt_end (other._bbt_end)
, _flags (other._flags)
, _position_lock_style (other._position_lock_style)
- , _block_change_notifications (false)
-
{
/* copy is not locked even if original was */
@@ -410,10 +405,7 @@ Location::set (framepos_t s, framepos_t e, bool allow_bbt_recompute)
if (start_change && end_change) {
changed (this);
-
- if (!_block_change_notifications) {
Changed ();
- }
}
return 0;
@@ -435,11 +427,8 @@ Location::move_to (framepos_t pos)
_end = _start + length();
recompute_bbt_from_frames ();
- changed (this); /* EMIT SIGNAL */
-
- if (!_block_change_notifications) {
- Changed (); /* EMIT SIGNAL */
- }
+ changed (this); /* EMIT SIGNAL */
+ Changed (); /* EMIT SIGNAL */
}
assert (_start >= 0);
@@ -698,11 +687,8 @@ Location::set_state (const XMLNode& node, int version)
recompute_bbt_from_frames ();
- changed (this); /* EMIT SIGNAL */
-
- if (!_block_change_notifications) {
- Changed (); /* EMIT SIGNAL */
- }
+ changed (this); /* EMIT SIGNAL */
+ Changed (); /* EMIT SIGNAL */
assert (_start >= 0);
assert (_end >= 0);
@@ -1083,11 +1069,7 @@ Locations::set_state (const XMLNode& node, int version)
if (i != locations.end()) {
/* we can re-use an old Location object */
loc = *i;
-
- // changed locations will be updated by Locations::changed signal
- loc->set_block_change_notifications (true);
loc->set_state (**niter, version);
- loc->set_block_change_notifications (false);
} else {
loc = new Location (_session, **niter);
}
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 9fa3a904b1..9e1400b995 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -1481,18 +1481,10 @@ Session::_locations_changed (const Locations::LocationList& locations)
We might be re-adding a location here but it doesn't actually matter
for all the locations that the Session takes an interest in.
*/
- loop_update_connections.drop_connections ();
- mark_update_connections.drop_connections ();
- skip_update_connections.drop_connections ();
-
- {
- PBD::Unwinder<bool> protect_ignore_skip_updates (_ignore_skips_updates, true);
- for (Locations::LocationList::const_iterator i = locations.begin(); i != locations.end(); ++i) {
- location_added (*i);
- }
- }
-
- update_skips (NULL, false);
+
+ for (Locations::LocationList::const_iterator i = locations.begin(); i != locations.end(); ++i) {
+ location_added (*i);
+ }
}
void