Panner (boost::shared_ptr<Pannable>);
~Panner ();
+ virtual boost::shared_ptr<Speakers> get_speakers() const { return boost::shared_ptr<Speakers>(); }
+
virtual ChanCount in() const = 0;
virtual ChanCount out() const = 0;
virtual double width () const { return 0.0; }
virtual double elevation () const { return 0.0; }
- virtual void reset() {}
+ virtual PBD::AngularVector signal_position (uint32_t) const { return PBD::AngularVector(); }
+ virtual void reset() {}
+
virtual bool bypassed() const { return _bypassed; }
virtual void set_bypassed (bool yn);
- virtual bool is_mono () const { return _mono; }
- virtual void set_mono (bool);
-
void set_automation_state (AutoState);
AutoState automation_state() const;
void set_automation_style (AutoStyle);
* @param nframes Number of frames in the input.
*
* Derived panners can choose to implement these if they need to gain more control over the panning algorithm.
- * the default is to (1) check if _mono is true, and if so, just deliver .. (2) otherwise, call
- * distribute_one() or distribute_one_automated() on each input buffer to deliver it to each output
+ * the default is to call distribute_one() or distribute_one_automated() on each input buffer to deliver it to each output
* buffer.
*
* If a panner does not need to override this default behaviour, it can just implement
framepos_t start, framepos_t end, pframes_t nframes,
pan_t** buffers);
- PBD::Signal0<void> Changed; /* for positional info */
- PBD::Signal0<void> StateChanged; /* for mute, mono */
+ PBD::Signal0<void> StateChanged;
int set_state (const XMLNode&, int version);
virtual XMLNode& state (bool full_state) = 0;
protected:
boost::shared_ptr<Pannable> _pannable;
- bool _mono;
bool _bypassed;
XMLNode& get_state ();
-
virtual void distribute_one (AudioBuffer&, BufferSet& obufs, gain_t gain_coeff, pframes_t nframes, uint32_t which) = 0;
virtual void distribute_one_automated (AudioBuffer&, BufferSet& obufs,
framepos_t start, framepos_t end, pframes_t nframes,
std::string name;
int32_t in;
int32_t out;
- ARDOUR::Panner* (*factory)(boost::shared_ptr<ARDOUR::Pannable>, ARDOUR::Speakers&);
+ ARDOUR::Panner* (*factory)(boost::shared_ptr<ARDOUR::Pannable>, boost::shared_ptr<ARDOUR::Speakers>);
};
}