more DEBUG::Destruction messages
[ardour.git] / libs / ardour / ardour / disk_writer.h
index d0f3672cbd70cb45b70cfd91d232e27d5872fda8..f85eb26f11db8cc385ab1a6b6462fc887f8c33e9 100644 (file)
@@ -23,6 +23,8 @@
 #include <list>
 #include <vector>
 
+#include "pbd/i18n.h"
+
 #include "ardour/disk_io.h"
 #include "ardour/midi_buffer.h"
 
@@ -37,6 +39,10 @@ class LIBARDOUR_API DiskWriter : public DiskIOProcessor
 {
   public:
        DiskWriter (Session&, std::string const & name, DiskIOProcessor::Flag f = DiskIOProcessor::Flag (0));
+       ~DiskWriter ();
+
+       bool set_name (std::string const & str);
+       std::string display_name() const { return std::string (_("writer")); }
 
        virtual bool set_write_source_name (const std::string& str);
 
@@ -48,6 +54,7 @@ class LIBARDOUR_API DiskWriter : public DiskIOProcessor
 
        void run (BufferSet& /*bufs*/, framepos_t /*start_frame*/, framepos_t /*end_frame*/, double speed, pframes_t /*nframes*/, bool /*result_required*/);
        void non_realtime_locate (framepos_t);
+       void realtime_handle_transport_stopped ();
 
        virtual XMLNode& state (bool full);
        int set_state (const XMLNode&, int version);
@@ -71,7 +78,7 @@ class LIBARDOUR_API DiskWriter : public DiskIOProcessor
 
        boost::shared_ptr<SMFSource> midi_write_source () { return _midi_write_source; }
 
-       virtual std::string steal_write_source_name () { return std::string(); }
+       virtual std::string steal_write_source_name ();
        int use_new_write_source (DataType, uint32_t n = 0);
        void reset_write_sources (bool, bool force = false);
 
@@ -85,6 +92,8 @@ class LIBARDOUR_API DiskWriter : public DiskIOProcessor
        void set_input_latency (framecnt_t);
        framecnt_t input_latency () const { return _input_latency; }
 
+       bool configure_io (ChanCount in, ChanCount out);
+
        std::list<boost::shared_ptr<Source> >& last_capture_sources () { return _last_capture_sources; }
 
        bool         record_enabled() const { return g_atomic_int_get (const_cast<gint*>(&_record_enabled)); }
@@ -131,6 +140,8 @@ class LIBARDOUR_API DiskWriter : public DiskIOProcessor
        void transport_looped (framepos_t transport_frame);
        void transport_stopped_wallclock (struct tm&, time_t, bool abort);
 
+       void adjust_buffering ();
+
   protected:
        friend class Track;
        int do_flush (RunContext context, bool force = false);