ardour
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
ARDOUR::Panner Class Referenceabstract

#include <panner.h>

Inheritance diagram for ARDOUR::Panner:
PBD::Stateful PBD::ScopedConnectionList

Public Member Functions

 Panner (boost::shared_ptr< Pannable >)
 
 ~Panner ()
 
virtual boost::shared_ptr
< Speakers
get_speakers () const
 
virtual ChanCount in () const =0
 
virtual ChanCount out () const =0
 
virtual void configure_io (ARDOUR::ChanCount, ARDOUR::ChanCount)
 
virtual bool clamp_position (double &)
 
virtual bool clamp_width (double &)
 
virtual bool clamp_elevation (double &)
 
virtual std::pair< double, double > position_range () const
 
virtual std::pair< double, double > width_range () const
 
virtual std::pair< double, double > elevation_range () const
 
virtual void set_position (double)
 
virtual void set_width (double)
 
virtual void set_elevation (double)
 
virtual double position () const
 
virtual double width () const
 
virtual double elevation () const
 
virtual PBD::AngularVector signal_position (uint32_t) const
 
virtual void reset ()=0
 
void set_automation_state (AutoState)
 
AutoState automation_state () const
 
void set_automation_style (AutoStyle)
 
AutoStyle automation_style () const
 
virtual std::set
< Evoral::Parameter
what_can_be_automated () const
 
virtual std::string describe_parameter (Evoral::Parameter)
 
virtual std::string value_as_string (boost::shared_ptr< AutomationControl >) const
 
bool touching () const
 
virtual void distribute (BufferSet &ibufs, BufferSet &obufs, gain_t gain_coeff, pframes_t nframes)
 
virtual void distribute_automated (BufferSet &ibufs, BufferSet &obufs, framepos_t start, framepos_t end, pframes_t nframes, pan_t **buffers)
 
int set_state (const XMLNode &, int version)
 
XMLNodeget_state ()
 
boost::shared_ptr< Pannablepannable () const
 
virtual void freeze ()
 
virtual void thaw ()
 
- Public Member Functions inherited from PBD::Stateful
 Stateful ()
 
virtual ~Stateful ()
 
virtual bool apply_changes (PropertyBase const &)
 
PropertyChange apply_changes (PropertyList const &)
 
const OwnedPropertyListproperties () const
 
void add_property (PropertyBase &s)
 
void add_extra_xml (XMLNode &)
 
XMLNodeextra_xml (const std::string &str, bool add_if_missing=false)
 
void save_extra_xml (const XMLNode &)
 
const PBD::IDid () const
 
bool set_id (const XMLNode &)
 
void set_id (const std::string &)
 
void reset_id ()
 
void clear_changes ()
 
virtual void clear_owned_changes ()
 
PropertyListget_changes_as_properties (Command *) const
 
virtual void rdiff (std::vector< Command * > &) const
 
bool changed () const
 
virtual PropertyListproperty_factory (const XMLNode &) const
 
virtual void suspend_property_changes ()
 
virtual void resume_property_changes ()
 
bool property_changes_suspended () const
 
- Public Member Functions inherited from PBD::ScopedConnectionList
 ScopedConnectionList ()
 
virtual ~ScopedConnectionList ()
 
void add_connection (const UnscopedConnection &c)
 
void drop_connections ()
 

Static Public Member Functions

static double azimuth_to_lr_fract (double azi)
 
static double lr_fract_to_azimuth (double fract)
 
static bool equivalent (pan_t a, pan_t b)
 
static bool equivalent (const PBD::AngularVector &a, const PBD::AngularVector &b)
 

Public Attributes

PBD::Signal0< void > SignalPositionChanged
 
- Public Attributes inherited from PBD::Stateful
PBD::Signal1< void, const
PropertyChange & > 
PropertyChanged
 

Protected Member Functions

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, pan_t **buffers, uint32_t which)=0
 
- Protected Member Functions inherited from PBD::Stateful
void add_instant_xml (XMLNode &, const std::string &directory_path)
 
XMLNodeinstant_xml (const std::string &str, const std::string &directory_path)
 
void add_properties (XMLNode &)
 
PropertyChange set_values (XMLNode const &)
 
virtual void post_set (const PropertyChange &)
 
virtual void send_change (const PropertyChange &)
 
virtual void mid_thaw (const PropertyChange &)
 

Protected Attributes

boost::shared_ptr< Pannable_pannable
 
int32_t _frozen
 
- Protected Attributes inherited from PBD::Stateful
XMLNode_extra_xml
 
XMLNode_instant_xml
 
PBD::PropertyChange _pending_changed
 
Glib::Threads::Mutex _lock
 
std::string _xml_node_name
 name of node to use for this object in XML More...
 
OwnedPropertyList_properties
 

Additional Inherited Members

- Static Public Attributes inherited from PBD::Stateful
static int current_state_version = 0
 
static int loading_state_version = 0
 

Detailed Description

Definition at line 58 of file panner.h.

Constructor & Destructor Documentation

Panner::Panner ( boost::shared_ptr< Pannable p)

Definition at line 30 of file panner.cc.

Panner::~Panner ( )

Definition at line 37 of file panner.cc.

Member Function Documentation

AutoState Panner::automation_state ( ) const

Definition at line 82 of file panner.cc.

AutoStyle Panner::automation_style ( ) const

Definition at line 88 of file panner.cc.

static double ARDOUR::Panner::azimuth_to_lr_fract ( double  azi)
inlinestatic

Definition at line 117 of file panner.h.

virtual bool ARDOUR::Panner::clamp_elevation ( double &  )
inlinevirtual

Definition at line 85 of file panner.h.

virtual bool ARDOUR::Panner::clamp_position ( double &  )
inlinevirtual

Definition at line 83 of file panner.h.

virtual bool ARDOUR::Panner::clamp_width ( double &  )
inlinevirtual

Definition at line 84 of file panner.h.

virtual void ARDOUR::Panner::configure_io ( ARDOUR::ChanCount  ,
ARDOUR::ChanCount   
)
inlinevirtual

Definition at line 69 of file panner.h.

string Panner::describe_parameter ( Evoral::Parameter  p)
virtual

Definition at line 106 of file panner.cc.

void Panner::distribute ( BufferSet ibufs,
BufferSet obufs,
gain_t  gain_coeff,
pframes_t  nframes 
)
virtual

Pan some input buffers to a number of output buffers.

Parameters
ibufsInput buffers (one per panner input)
obufsOutput buffers (one per panner output).
gain_coefffixed, additional gain coefficient to apply to output samples.
nframesNumber 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 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 distribute_one() and distribute_one_automated() (below).

Definition at line 49 of file panner.cc.

void Panner::distribute_automated ( BufferSet ibufs,
BufferSet obufs,
framepos_t  start,
framepos_t  end,
pframes_t  nframes,
pan_t **  buffers 
)
virtual

Definition at line 59 of file panner.cc.

virtual void ARDOUR::Panner::distribute_one ( AudioBuffer ,
BufferSet obufs,
gain_t  gain_coeff,
pframes_t  nframes,
uint32_t  which 
)
protectedpure virtual
virtual void ARDOUR::Panner::distribute_one_automated ( AudioBuffer ,
BufferSet obufs,
framepos_t  start,
framepos_t  end,
pframes_t  nframes,
pan_t **  buffers,
uint32_t  which 
)
protectedpure virtual
virtual double ARDOUR::Panner::elevation ( ) const
inlinevirtual

Definition at line 97 of file panner.h.

virtual std::pair<double, double> ARDOUR::Panner::elevation_range ( ) const
inlinevirtual

Definition at line 89 of file panner.h.

static bool ARDOUR::Panner::equivalent ( pan_t  a,
pan_t  b 
)
inlinestatic

Definition at line 165 of file panner.h.

static bool ARDOUR::Panner::equivalent ( const PBD::AngularVector a,
const PBD::AngularVector b 
)
inlinestatic

Definition at line 169 of file panner.h.

void Panner::freeze ( )
virtual

Definition at line 124 of file panner.cc.

virtual boost::shared_ptr<Speakers> ARDOUR::Panner::get_speakers ( ) const
inlinevirtual

Definition at line 64 of file panner.h.

XMLNode & Panner::get_state ( void  )
virtual

Implements PBD::Stateful.

Definition at line 43 of file panner.cc.

virtual ChanCount ARDOUR::Panner::in ( ) const
pure virtual
static double ARDOUR::Panner::lr_fract_to_azimuth ( double  fract)
inlinestatic

Definition at line 128 of file panner.h.

virtual ChanCount ARDOUR::Panner::out ( ) const
pure virtual
boost::shared_ptr<Pannable> ARDOUR::Panner::pannable ( ) const
inline

Definition at line 163 of file panner.h.

virtual double ARDOUR::Panner::position ( ) const
inlinevirtual

Definition at line 95 of file panner.h.

virtual std::pair<double, double> ARDOUR::Panner::position_range ( ) const
inlinevirtual

Definition at line 87 of file panner.h.

virtual void ARDOUR::Panner::reset ( )
pure virtual
void Panner::set_automation_state ( AutoState  state)

Definition at line 76 of file panner.cc.

void Panner::set_automation_style ( AutoStyle  style)

Definition at line 70 of file panner.cc.

virtual void ARDOUR::Panner::set_elevation ( double  )
inlinevirtual

Definition at line 93 of file panner.h.

virtual void ARDOUR::Panner::set_position ( double  )
inlinevirtual

Definition at line 91 of file panner.h.

int Panner::set_state ( const XMLNode ,
int  version 
)
virtual

Implements PBD::Stateful.

Definition at line 118 of file panner.cc.

virtual void ARDOUR::Panner::set_width ( double  )
inlinevirtual

Definition at line 92 of file panner.h.

virtual PBD::AngularVector ARDOUR::Panner::signal_position ( uint32_t  ) const
inlinevirtual

Definition at line 99 of file panner.h.

void Panner::thaw ( )
virtual

Definition at line 130 of file panner.cc.

bool Panner::touching ( ) const

Definition at line 94 of file panner.cc.

string Panner::value_as_string ( boost::shared_ptr< AutomationControl ac) const
virtual

Definition at line 112 of file panner.cc.

set< Evoral::Parameter > Panner::what_can_be_automated ( ) const
virtual

Definition at line 100 of file panner.cc.

virtual double ARDOUR::Panner::width ( ) const
inlinevirtual

Definition at line 96 of file panner.h.

virtual std::pair<double, double> ARDOUR::Panner::width_range ( ) const
inlinevirtual

Definition at line 88 of file panner.h.

Member Data Documentation

int32_t ARDOUR::Panner::_frozen
protected

Definition at line 185 of file panner.h.

boost::shared_ptr<Pannable> ARDOUR::Panner::_pannable
protected

Definition at line 178 of file panner.h.

PBD::Signal0<void> ARDOUR::Panner::SignalPositionChanged

Definition at line 104 of file panner.h.


The documentation for this class was generated from the following files: