Ardour  9.0-pre0-582-g084a23a80d
ARDOUR::ProxyControllable Class Reference

#include <proxy_controllable.h>

Inheritance diagram for ARDOUR::ProxyControllable:
[legend]

Public Member Functions

 ProxyControllable (const std::string &name, PBD::Controllable::Flag flags, std::function< bool(double)> setter, std::function< double()> getter)
 
void set_value (double v, PBD::Controllable::GroupControlDisposition gcd)
 
double get_value () const
 
std::string get_user_string () const
 
- Public Member Functions inherited from PBD::Controllable
 Controllable (const std::string &name, Flag f=Flag(0))
 
virtual double get_save_value () const
 
virtual double internal_to_interface (double i, bool rotary=false) const
 
virtual double interface_to_internal (double i, bool rotary=false) const
 
virtual float get_interface (bool rotary=false) const
 
virtual void set_interface (float fraction, bool rotary=false, GroupControlDisposition gcd=NoGroup)
 
int set_state (const XMLNode &, int version)
 
virtual XMLNodeget_state () const
 
std::string name () const
 
bool touching () const
 
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)
 
void set_flag (Flag f)
 _flags |= f; More...
 
void clear_flag (Flag f)
 _flags &= ~f; More...
 
- 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::Destructible
virtual ~Destructible ()
 
virtual void drop_references ()
 

Private Attributes

std::function< bool(double)> _setter
 
std::function< double()> _getter
 

Additional Inherited Members

- Public Types inherited from PBD::Controllable
enum  Flag {
  Toggle = 0x01 , GainLike = 0x02 , RealTime = 0x04 , NotAutomatable = 0x08 ,
  InlineControl = 0x10 , HiddenControl = 0x20 , MonitorControl = 0x40
}
 
enum  GroupControlDisposition { InverseGroup , NoGroup , UseGroup , ForGroup }
 
- Static Public Member Functions inherited from PBD::Controllable
static std::shared_ptr< Controllableby_id (const PBD::ID &)
 
static void dump_registry ()
 
static ControllableSet registered_controllables ()
 
- Public Attributes inherited from PBD::Controllable
PBD::Signal< void()> LearningFinished
 
PBD::Signal< void(bool, PBD::Controllable::GroupControlDisposition)> Changed
 
PBD::Signal< void()> TouchChanged
 
- Public Attributes inherited from PBD::Stateful
PBD::Signal< void(const PropertyChange &)> PropertyChanged
 
- Public Attributes inherited from PBD::Destructible
PBD::Signal< void()> Destroyed
 
PBD::Signal< void()> DropReferences
 
- Static Public Attributes inherited from PBD::Controllable
static PBD::Signal< bool(std::weak_ptr< PBD::Controllable >)> StartLearning
 
static PBD::Signal< void(std::weak_ptr< PBD::Controllable >)> StopLearning
 
static PBD::Signal< void(std::weak_ptr< PBD::Controllable >)> GUIFocusChanged
 
static PBD::Signal< void(std::weak_ptr< PBD::Controllable >)> ControlTouched
 
static const std::string xml_node_name
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version
 
static int loading_state_version
 
- Protected Member Functions inherited from PBD::Controllable
void set_touching (bool yn)
 
- 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 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

this class converts a pair of setter/getter functors into a Controllable so that it can be used like a regular Controllable, bound to MIDI, OSC etc.

Definition at line 36 of file proxy_controllable.h.

Constructor & Destructor Documentation

◆ ProxyControllable()

ARDOUR::ProxyControllable::ProxyControllable ( const std::string &  name,
PBD::Controllable::Flag  flags,
std::function< bool(double)>  setter,
std::function< double()>  getter 
)
inline

Definition at line 38 of file proxy_controllable.h.

Member Function Documentation

◆ get_user_string()

std::string ARDOUR::ProxyControllable::get_user_string ( ) const
inlinevirtual

Reimplemented from PBD::Controllable.

Definition at line 49 of file proxy_controllable.h.

◆ get_value()

double ARDOUR::ProxyControllable::get_value ( ) const
inlinevirtual

Get ‘internal’ value

Returns
raw value as used for the plugin/processor control port

Implements PBD::Controllable.

Definition at line 47 of file proxy_controllable.h.

◆ set_value()

void ARDOUR::ProxyControllable::set_value ( double  value,
PBD::Controllable::GroupControlDisposition  group_override 
)
inlinevirtual

Set ‘internal’ value

All derived classes must implement this.

Basic derived classes will ignore group_override but more sophisticated children, notably those that proxy the value setting logic via an object that is aware of group relationships between this control and others, will find it useful.

Parameters
valueraw numeric value to set
group_overrideif and how to propagate value to grouped controls

Implements PBD::Controllable.

Definition at line 46 of file proxy_controllable.h.

Member Data Documentation

◆ _getter

std::function<double ()> ARDOUR::ProxyControllable::_getter
private

Definition at line 56 of file proxy_controllable.h.

◆ _setter

std::function<bool (double)> ARDOUR::ProxyControllable::_setter
private

Definition at line 55 of file proxy_controllable.h.


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