Ardour  9.0-pre0-582-g084a23a80d
ARDOUR::Panner Class Referenceabstract

#include <panner.h>

Inheritance diagram for ARDOUR::Panner:
[legend]

Public Member Functions

 Panner (std::shared_ptr< Pannable >)
 
 ~Panner ()
 
virtual std::shared_ptr< Speakersget_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
 
virtual void distribute (BufferSet &ibufs, BufferSet &obufs, gain_t gain_coeff, pframes_t nframes)
 
virtual void distribute_automated (BufferSet &ibufs, BufferSet &obufs, samplepos_t start, samplepos_t end, pframes_t nframes, pan_t **buffers)
 
int set_state (const XMLNode &, int version)
 
XMLNodeget_state () const
 
std::shared_ptr< Pannablepannable () const
 
virtual void freeze ()
 
virtual void thaw ()
 
const std::set< Evoral::Parameter > & what_can_be_automated () const
 
virtual std::string value_as_string (std::shared_ptr< const AutomationControl >) const =0
 
- Public Member Functions inherited from PBD::Stateful
 Stateful ()
 
virtual ~Stateful ()
 
virtual bool apply_change (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 (PBD::Command *) const
 
virtual void rdiff (std::vector< PBD::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 ()
 
 ScopedConnectionList (const ScopedConnectionList &)=delete
 
ScopedConnectionListoperator= (const ScopedConnectionList &)=delete
 
virtual ~ScopedConnectionList ()
 
void add_connection (const UnscopedConnection &c)
 
void drop_connections ()
 

Public Attributes

PBD::Signal< void()> SignalPositionChanged
 
- Public Attributes inherited from PBD::Stateful
PBD::Signal< 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, samplepos_t start, samplepos_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 &) const
 
PropertyChange set_values (XMLNode const &)
 
virtual void post_set (const PropertyChange &)
 
virtual void send_change (const PropertyChange &)
 
virtual void mid_thaw (const PropertyChange &)
 
bool regenerate_xml_or_string_ids () const
 

Protected Attributes

std::shared_ptr< Pannable_pannable
 
std::set< Evoral::Parameter_can_automate_list
 
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
 
static int loading_state_version
 

Detailed Description

Definition at line 60 of file panner.h.

Constructor & Destructor Documentation

◆ Panner()

ARDOUR::Panner::Panner ( std::shared_ptr< Pannable )

◆ ~Panner()

ARDOUR::Panner::~Panner ( )

Member Function Documentation

◆ clamp_elevation()

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

Definition at line 87 of file panner.h.

◆ clamp_position()

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

Reimplemented in ARDOUR::Pannerbalance, ARDOUR::Panner2in2out, and ARDOUR::Panner1in2out.

Definition at line 85 of file panner.h.

◆ clamp_width()

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

Reimplemented in ARDOUR::Panner2in2out.

Definition at line 86 of file panner.h.

◆ configure_io()

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

Reimplemented in ARDOUR::VBAPanner.

Definition at line 71 of file panner.h.

◆ distribute()

virtual void ARDOUR::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 samples 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).

Reimplemented in ARDOUR::VBAPanner.

◆ distribute_automated()

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

◆ distribute_one()

virtual void ARDOUR::Panner::distribute_one ( AudioBuffer ,
BufferSet obufs,
gain_t  gain_coeff,
pframes_t  nframes,
uint32_t  which 
)
protectedpure virtual

◆ distribute_one_automated()

virtual void ARDOUR::Panner::distribute_one_automated ( AudioBuffer ,
BufferSet obufs,
samplepos_t  start,
samplepos_t  end,
pframes_t  nframes,
pan_t **  buffers,
uint32_t  which 
)
protectedpure virtual

◆ elevation()

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

Definition at line 99 of file panner.h.

◆ elevation_range()

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

Definition at line 91 of file panner.h.

◆ freeze()

virtual void ARDOUR::Panner::freeze ( )
virtual

◆ get_speakers()

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

Reimplemented in ARDOUR::VBAPanner.

Definition at line 66 of file panner.h.

◆ get_state()

XMLNode& ARDOUR::Panner::get_state ( ) const
virtual

◆ in()

virtual ChanCount ARDOUR::Panner::in ( ) const
pure virtual

◆ out()

virtual ChanCount ARDOUR::Panner::out ( ) const
pure virtual

◆ pannable()

std::shared_ptr<Pannable> ARDOUR::Panner::pannable ( ) const
inline

Definition at line 132 of file panner.h.

◆ position()

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

Reimplemented in ARDOUR::Pannerbalance, ARDOUR::Panner2in2out, and ARDOUR::Panner1in2out.

Definition at line 97 of file panner.h.

◆ position_range()

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

Reimplemented in ARDOUR::Pannerbalance, ARDOUR::Panner2in2out, and ARDOUR::Panner1in2out.

Definition at line 89 of file panner.h.

◆ reset()

virtual void ARDOUR::Panner::reset ( )
pure virtual

◆ set_elevation()

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

Reimplemented in ARDOUR::VBAPanner.

Definition at line 95 of file panner.h.

◆ set_position()

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

Reimplemented in ARDOUR::VBAPanner, ARDOUR::Pannerbalance, ARDOUR::Panner2in2out, and ARDOUR::Panner1in2out.

Definition at line 93 of file panner.h.

◆ set_state()

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

Implements PBD::Stateful.

◆ set_width()

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

Reimplemented in ARDOUR::VBAPanner, and ARDOUR::Panner2in2out.

Definition at line 94 of file panner.h.

◆ signal_position()

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

Reimplemented in ARDOUR::VBAPanner.

Definition at line 101 of file panner.h.

◆ thaw()

virtual void ARDOUR::Panner::thaw ( )
virtual

◆ value_as_string()

virtual std::string ARDOUR::Panner::value_as_string ( std::shared_ptr< const AutomationControl ) const
pure virtual

◆ what_can_be_automated()

const std::set<Evoral::Parameter>& ARDOUR::Panner::what_can_be_automated ( ) const
inline

Definition at line 137 of file panner.h.

◆ width()

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

Reimplemented in ARDOUR::Panner2in2out.

Definition at line 98 of file panner.h.

◆ width_range()

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

Reimplemented in ARDOUR::Panner2in2out.

Definition at line 90 of file panner.h.

Member Data Documentation

◆ _can_automate_list

std::set<Evoral::Parameter> ARDOUR::Panner::_can_automate_list
protected

Definition at line 150 of file panner.h.

◆ _frozen

int32_t ARDOUR::Panner::_frozen
protected

Definition at line 152 of file panner.h.

◆ _pannable

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

Definition at line 149 of file panner.h.

◆ SignalPositionChanged

PBD::Signal<void()> ARDOUR::Panner::SignalPositionChanged

Definition at line 106 of file panner.h.


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