merge from trunk
[ardour.git] / libs / ardour / ardour / redirect.h
index fc7de9d814b1c812f2a678bf849b07545cbbf876..658cab5d3b509e633bbb29f24b11988771829e67 100644 (file)
 #include <vector>
 #include <set>
 #include <map>
+#include <boost/shared_ptr.hpp>
 #include <sigc++/signal.h>
 
-#include <pbd/lockmonitor.h>
+#include <glibmm/thread.h>
+
 #include <pbd/undo.h>
 
 #include <ardour/ardour.h>
@@ -63,7 +65,7 @@ class Redirect : public IO
        Redirect (const Redirect&);
        virtual ~Redirect ();
 
-       static Redirect *clone (const Redirect&);
+       static boost::shared_ptr<Redirect> clone (boost::shared_ptr<const Redirect>);
 
        bool active () const { return _active; }
        void set_active (bool yn, void *src);
@@ -74,7 +76,7 @@ class Redirect : public IO
        virtual uint32_t natural_input_streams () const { return n_inputs(); }
 
        uint32_t sort_key() const { return _sort_key; }
-       void set_sort_key (uint32_t sk,void *src) { _sort_key = sk; sort_key_changed (this, src); }
+       void set_sort_key (uint32_t key);
 
        Placement placement() const { return _placement; }
        void set_placement (Placement, void *src);
@@ -87,7 +89,6 @@ class Redirect : public IO
        virtual void set_block_size (jack_nframes_t nframes) {}
 
        sigc::signal<void,Redirect*,void*> active_changed;
-       sigc::signal<void,Redirect*,void*> sort_key_changed;
        sigc::signal<void,Redirect*,void*> placement_changed;
        sigc::signal<void,Redirect*,bool>  AutomationPlaybackChanged;
        sigc::signal<void,Redirect*,uint32_t> AutomationChanged;
@@ -132,7 +133,7 @@ class Redirect : public IO
        map<uint32_t,AutomationList*> parameter_automation;
        set<uint32_t> visible_parameter_automation;
 
-       mutable PBD::NonBlockingLock _automation_lock;
+       mutable Glib::Mutex _automation_lock;
 
        void can_automate (uint32_t);
        set<uint32_t> can_automate_list;
@@ -148,6 +149,6 @@ class Redirect : public IO
        void* _gui;  /* generic, we don't know or care what this is */
 };
 
-}; /* namespace ARDOUR */
+} // namespace ARDOUR
 
 #endif /* __ardour_redirect_h__ */