Use shared_ptr for Port in the AudioEngine; improves thread-safety of the audio engin...
[ardour.git] / libs / ardour / ardour / return.h
index 3232e932955370d4ed6f7fcb955cb2105700dc78..3d9fb9a9bda61d7917cddd19dbe554800d683f2a 100644 (file)
@@ -1,6 +1,6 @@
 /*
     Copyright (C) 2009 Paul Davis
-    Author: Dave Robillard
+    Author: David Robillard
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 #ifndef __ardour_return_h__
 #define __ardour_return_h__
 
-#include <sigc++/signal.h>
 #include <string>
 
 
 #include "pbd/stateful.h"
 #include "ardour/ardour.h"
-#include "ardour/audioengine.h"
 #include "ardour/io_processor.h"
 
 namespace ARDOUR {
@@ -39,12 +37,11 @@ class Return : public IOProcessor
 {
 public:
        Return (Session&, bool internal = false);
-       Return (Session&, const XMLNode&, bool internal = false);
        virtual ~Return ();
 
        uint32_t bit_slot() const { return _bitslot; }
 
-       void run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nframes_t nframes);
+       void run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame, pframes_t nframes, bool);
 
        boost::shared_ptr<Amp> amp() const { return _amp; }
        boost::shared_ptr<PeakMeter> meter() const { return _meter; }
@@ -54,7 +51,7 @@ public:
 
        XMLNode& state(bool full);
        XMLNode& get_state(void);
-       int      set_state(const XMLNode&, int version = 3000);
+       int      set_state(const XMLNode&, int version);
 
        uint32_t pans_required() const { return _configured_input.n_audio(); }
 
@@ -73,10 +70,10 @@ private:
        /* disallow copy construction */
        Return (const Return&);
 
-       uint32_t  _bitslot;
+       uint32_t _bitslot;
 
-       void collect_input  (BufferSet& bufs, nframes_t nframes, ChanCount offset=ChanCount::ZERO);
-       void just_meter_input (sframes_t start_frame, sframes_t end_frame, nframes_t nframes);
+       void collect_input (BufferSet& bufs, pframes_t nframes, ChanCount offset = ChanCount::ZERO);
+       void just_meter_input (framepos_t start_frame, framepos_t end_frame, pframes_t nframes);
 };
 
 } // namespace ARDOUR