- public:
- StreamPanner (Panner& p, Evoral::Parameter param);
- ~StreamPanner ();
-
- void set_muted (bool yn);
- bool muted() const { return _muted; }
- void set_mono (bool);
-
- void set_position (float x, bool link_call = false);
- void set_position (float x, float y, bool link_call = false);
- void set_position (float x, float y, float z, bool link_call = false);
-
- void get_position (float& xpos) const { xpos = x; }
- void get_position (float& xpos, float& ypos) const { xpos = x; ypos = y; }
- void get_position (float& xpos, float& ypos, float& zpos) const { xpos = x; ypos = y; zpos = z; }
-
- void get_effective_position (float& xpos) const { xpos = effective_x; }
- void get_effective_position (float& xpos, float& ypos) const { xpos = effective_x; ypos = effective_y; }
- void get_effective_position (float& xpos, float& ypos, float& zpos) const { xpos = effective_x; ypos = effective_y; zpos = effective_z; }
-
- void distribute (AudioBuffer &, BufferSet &, gain_t, nframes_t);
- void distribute_automated (AudioBuffer &, BufferSet &, nframes_t, nframes_t, nframes_t, pan_t **);
-
- /* the basic StreamPanner API */
-
- /**
- * Pan some input samples to a number of output buffers.
- *
- * @param src Input buffer.
- * @param obufs Output buffers (one per panner output).
- * @param gain_coeff Gain coefficient to apply to output samples.
- * @param nframes Numbner of frames in the input.
- */
- virtual void do_distribute (AudioBuffer& src, BufferSet& obufs, gain_t gain_coeff, nframes_t nframes) = 0;
- virtual void do_distribute_automated (AudioBuffer& src, BufferSet& obufs,
- nframes_t start, nframes_t end, nframes_t nframes, pan_t** buffers) = 0;
-
- boost::shared_ptr<AutomationControl> pan_control() { return _control; }
-
- boost::signals2::signal<void()> Changed; /* for position */
- boost::signals2::signal<void()> StateChanged; /* for mute */
-
- int set_state (const XMLNode&, int version);
- virtual XMLNode& state (bool full_state) = 0;