20 #ifndef __ardour_panner_h__
21 #define __ardour_panner_h__
43 #ifdef ARDOURPANNER_DLL_EXPORTS // defined if we are building a panner implementation
44 #define ARDOURPANNER_API LIBARDOUR_DLL_EXPORT
46 #define ARDOURPANNER_API LIBARDOUR_DLL_IMPORT
48 #define ARDOURPANNER_LOCAL LIBARDOUR_DLL_LOCAL
87 virtual std::pair<double, double>
position_range ()
const {
return std::make_pair (-DBL_MAX, DBL_MAX); }
88 virtual std::pair<double, double>
width_range ()
const {
return std::make_pair (-DBL_MAX, DBL_MAX); }
89 virtual std::pair<double, double>
elevation_range ()
const {
return std::make_pair (-DBL_MAX, DBL_MAX); }
95 virtual double position ()
const {
return 0.0; }
96 virtual double width ()
const {
return 0.0; }
101 virtual void reset () = 0;
111 virtual std::set<Evoral::Parameter> what_can_be_automated()
const;
115 bool touching()
const;
125 return 1.0 - (rint(azi)/180.0);
136 return rint (180.0 - (fract * 180.0));
160 int set_state (
const XMLNode&,
int version);
166 return fabsf (a - b) < 0.002;
171 return fabs (a.
azi - b.
azi) < 1.0;
174 virtual void freeze ();
175 virtual void thaw ();
183 pan_t** buffers, uint32_t which) = 0;
virtual void set_position(double)
boost::shared_ptr< Pannable > pannable() const
static bool equivalent(pan_t a, pan_t b)
virtual bool clamp_elevation(double &)
virtual std::pair< double, double > elevation_range() const
virtual void set_width(double)
virtual void configure_io(ARDOUR::ChanCount, ARDOUR::ChanCount)
std::string value_as_string(const ARDOUR::ParameterDescriptor &desc, double v)
PBD::Signal0< void > SignalPositionChanged
virtual boost::shared_ptr< Speakers > get_speakers() const
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > start
boost::shared_ptr< Pannable > _pannable
virtual double elevation() const
static double lr_fract_to_azimuth(double fract)
virtual double width() const
static bool equivalent(const PBD::AngularVector &a, const PBD::AngularVector &b)
virtual bool clamp_width(double &)
virtual std::pair< double, double > width_range() const
virtual void set_elevation(double)
virtual bool clamp_position(double &)
virtual std::pair< double, double > position_range() const
static double azimuth_to_lr_fract(double azi)
virtual double position() const
virtual PBD::AngularVector signal_position(uint32_t) const