Revert "[Summary] Eliminated redundant marker update notification which lead to creat...
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 18 Feb 2015 16:50:52 +0000 (11:50 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 18 Feb 2015 17:00:36 +0000 (12:00 -0500)
This reverts commit 3dde9e969c1a775c04487501dee974d261a3f955.

libs/ardour/ardour/location.h
libs/ardour/location.cc
libs/ardour/session.cc

index 7d51f6a7f3c58e4c3be40c04b1a1ddbbd55ac75f..f809dbf280b649ccb91d8ae9706537bc63252835 100644 (file)
@@ -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.
index 1332259c3a25e70eaa748e3fc7dec353ee44c430..2e9125126b4c69ea2e617abebdeb489a87a95e53 100644 (file)
@@ -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);
                                }
index 9fa3a904b12177f7f9b0b6b163050d08cf4aff9e..9e1400b99564b119956943f66f7ebfc4e8bfcef6 100644 (file)
@@ -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