Add polarity-invert processor
[ardour.git] / libs / ardour / ardour / delivery.h
index 4a6d4368a6d4f52306a43a9d7452cfd60f425eda..451d7bdd0ceb8635007020c2b3e62d0240b6706f 100644 (file)
@@ -21,6 +21,7 @@
 
 #include <string>
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/chan_count.h"
 #include "ardour/io_processor.h"
@@ -34,7 +35,7 @@ class PannerShell;
 class Panner;
 class Pannable;
 
-class Delivery : public IOProcessor
+class LIBARDOUR_API Delivery : public IOProcessor
 {
 public:
        enum Role {
@@ -70,20 +71,19 @@ public:
        bool can_support_io_configuration (const ChanCount& in, ChanCount& out);
        bool configure_io (ChanCount in, ChanCount out);
 
-       void run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame, pframes_t nframes, bool);
+       void run (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_sample, double speed, pframes_t nframes, bool);
 
        /* supplemental method used with MIDI */
 
-       void flush_buffers (framecnt_t nframes);
+       void flush_buffers (samplecnt_t nframes);
        void no_outs_cuz_we_no_monitor(bool);
-       void transport_stopped (framepos_t frame);
+       void non_realtime_transport_stop (samplepos_t now, bool flush);
        void realtime_locate ();
 
        BufferSet& output_buffers() { return *_output_buffers; }
 
        PBD::Signal0<void> MuteChange;
 
-       XMLNode& state (bool full);
        int set_state (const XMLNode&, int version);
 
        /* Panning */
@@ -102,7 +102,9 @@ public:
        uint32_t pans_required() const { return _configured_input.n_audio(); }
        virtual uint32_t pan_outs() const;
 
-  protected:
+protected:
+       XMLNode& state ();
+
        Role        _role;
        BufferSet*  _output_buffers;
        gain_t      _current_gain;
@@ -110,10 +112,10 @@ public:
 
        gain_t target_gain ();
 
-  private:
+private:
        bool        _no_outs_cuz_we_no_monitor;
        boost::shared_ptr<MuteMaster> _mute_master;
-       
+
        static bool panners_legal;
        static PBD::Signal0<void> PannersLegal;