Selection of visible note range (full range vs fit contents, selectable from midi...
[ardour.git] / libs / ardour / ardour / send.h
index 0a068e8af02d4706446c2456224ef0531d1c9d86..018df96be4afd51cffa196a4b81661abbef8ec1a 100644 (file)
@@ -15,7 +15,6 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id$
 */
 
 #ifndef __ardour_send_h__
 #include <ardour/ardour.h>
 #include <ardour/audioengine.h>
 #include <ardour/io.h>
-#include <ardour/redirect.h>
+#include <ardour/io_processor.h>
 
 namespace ARDOUR {
 
-class Send : public Redirect {
+class Send : public IOProcessor 
+{
   public:      
        Send (Session&, Placement);
        Send (Session&, const XMLNode&);
        Send (const Send&);
-       ~Send ();
+       virtual ~Send ();
+
+       uint32_t bit_slot() const { return bitslot; }
+       
+       ChanCount output_streams() const;
+       ChanCount input_streams () const;
+       
+       void run_in_place (BufferSet& bufs, nframes_t start_frame, nframes_t end_frame, nframes_t nframes, nframes_t offset);
        
-       void run (vector<Sample *> &bufs, uint32_t nbufs, jack_nframes_t nframes, jack_nframes_t offset);
        void activate() {}
        void deactivate () {}
 
@@ -50,12 +56,18 @@ class Send : public Redirect {
        XMLNode& get_state(void);
        int set_state(const XMLNode& node);
 
-       uint32_t pans_required() const { return expected_inputs; }
-       void expect_inputs (uint32_t);
+       uint32_t pans_required() const { return _expected_inputs.n_audio(); }
+       
+       virtual bool      can_support_input_configuration (ChanCount in) const;
+       virtual ChanCount output_for_input_configuration (ChanCount in) const;
+       virtual bool      configure_io (ChanCount in, ChanCount out);
+
+       static uint32_t how_many_sends();
 
   private:
-       bool _metering;
-       uint32_t expected_inputs;
+       bool      _metering;
+       ChanCount _expected_inputs;
+       uint32_t bitslot;
 };
 
 } // namespace ARDOUR