(Messy merge fixes)
[ardour.git] / libs / ardour / ardour / diskstream.h
index 69ade5b170fb76f537578fb9a915a8a3f5dbeccb..316daba52f7708190d050117e2176da6d7eff9dc 100644 (file)
@@ -33,7 +33,7 @@
 
 #include <pbd/fastlog.h>
 #include <pbd/ringbufferNPT.h>
-#include <pbd/atomic.h>
 
 #include <ardour/ardour.h>
 #include <ardour/configuration.h>
@@ -100,7 +100,7 @@ class DiskStream : public Stateful, public sigc::trackable
        jack_nframes_t roll_delay() const { return _roll_delay; }
        void set_roll_delay (jack_nframes_t);
 
-       void set_name (string str, void* src);
+       int set_name (string str, void* src);
 
        string input_source (uint32_t n=0) const {
                if (n < channels.size()) {
@@ -115,7 +115,7 @@ class DiskStream : public Stateful, public sigc::trackable
        }
 
        void set_record_enabled (bool yn, void *src);
-       bool record_enabled() const { return atomic_read (&_record_enabled); }
+       bool record_enabled() const { return g_atomic_int_get (&_record_enabled); }
        void punch_in ();
        void punch_out ();
 
@@ -185,7 +185,6 @@ class DiskStream : public Stateful, public sigc::trackable
        static sigc::signal<void> DiskOverrun;
        static sigc::signal<void> DiskUnderrun;
        static sigc::signal<void,DiskStream*> DiskStreamCreated;   // XXX use a ref with sigc2
-       static sigc::signal<void,DiskStream*> CannotRecordNoInput; // XXX use a ref with sigc2
        static sigc::signal<void,list<Source*>*> DeleteSources;
 
        /* stateful */
@@ -244,6 +243,7 @@ class DiskStream : public Stateful, public sigc::trackable
        void set_block_size (jack_nframes_t);
        int  internal_playback_seek (jack_nframes_t distance);
        int  can_internal_playback_seek (jack_nframes_t distance);
+       int  rename_write_sources ();
        void reset_write_sources (bool, bool force = false);
        void non_realtime_input_change ();
 
@@ -320,7 +320,7 @@ class DiskStream : public Stateful, public sigc::trackable
        uint32_t      _n_channels;
        id_t              _id;
 
-       atomic_t                 _record_enabled;
+       mutable gint             _record_enabled;
        AudioPlaylist*           _playlist;
        double                   _visible_speed;
        double                   _actual_speed;
@@ -365,7 +365,7 @@ class DiskStream : public Stateful, public sigc::trackable
        AlignStyle               _persistent_alignment_style;
        bool                      first_input_change;
 
-       PBD::NonBlockingLock  state_lock;
+       Glib::Mutex  state_lock;
 
        jack_nframes_t scrub_start;
        jack_nframes_t scrub_buffer_size;
@@ -404,7 +404,7 @@ class DiskStream : public Stateful, public sigc::trackable
        };
 
        vector<CaptureInfo*> capture_info;
-       PBD::Lock  capture_info_lock;
+       Glib::Mutex  capture_info_lock;
        
        void init (Flag);
 
@@ -439,6 +439,7 @@ class DiskStream : public Stateful, public sigc::trackable
        void check_record_status (jack_nframes_t transport_frame, jack_nframes_t nframes, bool can_record);
        void set_align_style_from_io();
        void setup_destructive_playlist ();
+       void use_destructive_playlist ();
 };
 
 }; /* namespace ARDOUR */