Merged with trunk (painfully)
[ardour.git] / libs / ardour / ardour / playlist.h
index b0ac956d5c013884ef03eda3118ef69ca5d8fbc0..d322f564eed7be4245a1678ebe45935882767879 100644 (file)
@@ -28,8 +28,9 @@
 
 #include <sys/stat.h>
 
+#include <glib.h>
+
 #include <sigc++/signal.h>
-#include <pbd/atomic.h>
 #include <pbd/undo.h>
 
 #include <ardour/ardour.h>
@@ -169,9 +170,9 @@ class Playlist : public Stateful, public StateManager {
        RegionList       regions;
        string          _name;
        Session&        _session;
-       atomic_t         block_notifications;
-       atomic_t         ignore_state_changes;
-       mutable PBD::NonBlockingLock region_lock;
+       mutable gint    block_notifications;
+       mutable gint    ignore_state_changes;
+       mutable Glib::Mutex region_lock;
        RegionList       pending_removals;
        RegionList       pending_adds;
        RegionList       pending_bounds;
@@ -197,8 +198,8 @@ class Playlist : public Stateful, public StateManager {
        void init (bool hide);
 
        bool holding_state () const { 
-               return atomic_read (&block_notifications) != 0 ||
-                       atomic_read (&ignore_state_changes) != 0;
+               return g_atomic_int_get (&block_notifications) != 0 ||
+                       g_atomic_int_get (&ignore_state_changes) != 0;
        }
 
        /* prevent the compiler from ever generating these */
@@ -233,6 +234,9 @@ class Playlist : public Stateful, public StateManager {
        void splice_locked ();
        void splice_unlocked ();
 
+
+       virtual void finalize_split_region (Region *original, Region *left, Region *right) {}
+       
        virtual void check_dependents (Region& region, bool norefresh) {}
        virtual void refresh_dependents (Region& region) {}
        virtual void remove_dependents (Region& region) {}