ardour
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Private Types | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
PBD::Controllable Class Referenceabstract

#include <controllable.h>

Inheritance diagram for PBD::Controllable:
PBD::StatefulDestructible PBD::Stateful PBD::Destructible ARDOUR::AutomationControl ARDOUR::MPControl< T > ARDOUR::ProxyControllable ARDOUR_UI::TransportControllable ARDOUR::MPControl< bool > ARDOUR::MPControl< gain_t > ARDOUR::MPControl< volatile gain_t > PBD::IgnorableControllable ShuttleControl::ShuttleControllable

Public Types

enum  Flag { Toggle = 0x1, GainLike = 0x2 }
 

Public Member Functions

 Controllable (const std::string &name, Flag f=Flag(0))
 
virtual ~Controllable ()
 
virtual void set_value (double)=0
 
virtual double get_value (void) const =0
 
virtual double internal_to_interface (double i) const
 
virtual double interface_to_internal (double i) const
 
virtual double internal_to_user (double i) const
 
virtual double user_to_internal (double i) const
 
virtual float get_interface () const
 
virtual void set_interface (float percent)
 
virtual float get_user () const
 
virtual void set_user (float user_v)
 
virtual std::string get_user_string () const
 
int set_state (const XMLNode &, int version)
 
XMLNodeget_state ()
 
std::string name () const
 
bool touching () const
 
void set_touching (bool yn)
 
bool is_toggle () const
 
bool is_gain_like () const
 
virtual double lower () const
 
virtual double upper () const
 
virtual double normal () const
 
Flag flags () const
 
void set_flags (Flag f)
 
- 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::Destructible
 Destructible ()
 
virtual ~Destructible ()
 
void drop_references ()
 

Static Public Member Functions

static Controllableby_id (const PBD::ID &)
 
static Controllableby_name (const std::string &)
 

Public Attributes

PBD::Signal0< void > LearningFinished
 
PBD::Signal0< void > Changed
 
- Public Attributes inherited from PBD::Stateful
PBD::Signal1< void, const
PropertyChange & > 
PropertyChanged
 
- Public Attributes inherited from PBD::Destructible
PBD::Signal0< void > Destroyed
 
PBD::Signal0< void > DropReferences
 

Static Public Attributes

static PBD::Signal3< void,
PBD::Controllable *, int, int > 
CreateBinding
 
static PBD::Signal1< void,
PBD::Controllable * > 
DeleteBinding
 
static PBD::Signal1< bool,
PBD::Controllable * > 
StartLearning
 
static PBD::Signal1< void,
PBD::Controllable * > 
StopLearning
 
static PBD::Signal1< void,
Controllable * > 
Destroyed
 
static const std::string xml_node_name = X_("Controllable")
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version = 0
 
static int loading_state_version = 0
 

Private Types

typedef std::set
< PBD::Controllable * > 
Controllables
 

Static Private Member Functions

static void add (Controllable &)
 
static void remove (Controllable *)
 

Private Attributes

std::string _name
 
std::string _units
 
Flag _flags
 
bool _touching
 

Static Private Attributes

static Glib::Threads::RWLock registry_lock
 
static Controllables registry
 

Additional Inherited Members

- 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 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
 

Detailed Description

Definition at line 40 of file controllable.h.

Member Typedef Documentation

Definition at line 128 of file controllable.h.

Member Enumeration Documentation

Enumerator
Toggle 
GainLike 

Definition at line 42 of file controllable.h.

Constructor & Destructor Documentation

Controllable::Controllable ( const std::string &  name,
Flag  f = Flag (0) 
)

Definition at line 42 of file controllable.cc.

virtual PBD::Controllable::~Controllable ( )
inlinevirtual

Definition at line 48 of file controllable.h.

Member Function Documentation

void Controllable::add ( Controllable ctl)
staticprivate

Definition at line 51 of file controllable.cc.

Controllable * Controllable::by_id ( const PBD::ID id)
static

Definition at line 81 of file controllable.cc.

Controllable * Controllable::by_name ( const std::string &  )
static

Definition at line 94 of file controllable.cc.

Flag PBD::Controllable::flags ( ) const
inline

Definition at line 111 of file controllable.h.

virtual float PBD::Controllable::get_interface ( ) const
inlinevirtual

Get and Set `interface' value (typically, percent of knob travel)

Definition at line 77 of file controllable.h.

XMLNode & Controllable::get_state ( void  )
virtual

Implements PBD::Stateful.

Definition at line 107 of file controllable.cc.

virtual float PBD::Controllable::get_user ( ) const
inlinevirtual

Get and Set `user' value ( dB or milliseconds, etc. This MIGHT be the same as the internal value, but in a few cases it is not )

Definition at line 81 of file controllable.h.

virtual std::string PBD::Controllable::get_user_string ( ) const
inlinevirtual
virtual double PBD::Controllable::get_value ( void  ) const
pure virtual
virtual double PBD::Controllable::interface_to_internal ( double  i) const
inlinevirtual

Reimplemented in ARDOUR::PluginInsert::PluginControl, and ARDOUR::Amp::GainControl.

Definition at line 72 of file controllable.h.

virtual double PBD::Controllable::internal_to_interface ( double  i) const
inlinevirtual

Conversions between `internal', 'interface', and 'user' values

Reimplemented in ARDOUR::PluginInsert::PluginControl, and ARDOUR::Amp::GainControl.

Definition at line 71 of file controllable.h.

virtual double PBD::Controllable::internal_to_user ( double  i) const
inlinevirtual
bool PBD::Controllable::is_gain_like ( ) const
inline

Definition at line 105 of file controllable.h.

bool PBD::Controllable::is_toggle ( ) const
inline

Definition at line 104 of file controllable.h.

virtual double PBD::Controllable::lower ( ) const
inlinevirtual
std::string PBD::Controllable::name ( ) const
inline

Definition at line 99 of file controllable.h.

virtual double PBD::Controllable::normal ( ) const
inlinevirtual
void Controllable::remove ( Controllable ctl)
staticprivate

Definition at line 68 of file controllable.cc.

void Controllable::set_flags ( Flag  f)

Definition at line 154 of file controllable.cc.

virtual void PBD::Controllable::set_interface ( float  percent)
inlinevirtual

Definition at line 78 of file controllable.h.

int Controllable::set_state ( const XMLNode node,
int  version 
)
virtual

Implements PBD::Stateful.

Definition at line 129 of file controllable.cc.

void PBD::Controllable::set_touching ( bool  yn)
inline

Definition at line 102 of file controllable.h.

virtual void PBD::Controllable::set_user ( float  user_v)
inlinevirtual

Definition at line 82 of file controllable.h.

virtual void PBD::Controllable::set_value ( double  )
pure virtual
bool PBD::Controllable::touching ( ) const
inline

Definition at line 101 of file controllable.h.

virtual double PBD::Controllable::upper ( ) const
inlinevirtual
virtual double PBD::Controllable::user_to_internal ( double  i) const
inlinevirtual

Member Data Documentation

Flag PBD::Controllable::_flags
private

Definition at line 122 of file controllable.h.

std::string PBD::Controllable::_name
private

Definition at line 118 of file controllable.h.

bool PBD::Controllable::_touching
private

Definition at line 123 of file controllable.h.

std::string PBD::Controllable::_units
private

Definition at line 120 of file controllable.h.

PBD::Signal0<void> PBD::Controllable::Changed

Definition at line 94 of file controllable.h.

PBD::Signal3< void, Controllable *, int, int > Controllable::CreateBinding
static

Definition at line 86 of file controllable.h.

PBD::Signal1< void, Controllable * > Controllable::DeleteBinding
static

Definition at line 87 of file controllable.h.

PBD::Signal1< void, Controllable * > Controllable::Destroyed
static

Definition at line 92 of file controllable.h.

PBD::Signal0<void> PBD::Controllable::LearningFinished

Definition at line 85 of file controllable.h.

Controllable::Controllables Controllable::registry
staticprivate

Definition at line 130 of file controllable.h.

Glib::Threads::RWLock Controllable::registry_lock
staticprivate

Definition at line 129 of file controllable.h.

PBD::Signal1< bool, Controllable * > Controllable::StartLearning
static

Definition at line 89 of file controllable.h.

PBD::Signal1< void, Controllable * > Controllable::StopLearning
static

Definition at line 90 of file controllable.h.

const std::string Controllable::xml_node_name = X_("Controllable")
static

Definition at line 116 of file controllable.h.


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