20 #ifndef __pbd_controllable_h__
21 #define __pbd_controllable_h__
29 #include <glibmm/threads.h>
67 virtual void set_value (
double) = 0;
68 virtual double get_value (
void)
const = 0;
78 virtual void set_interface (
float percent) { percent = min( max(0.0
f, percent), 1.0
f); set_value(interface_to_internal(percent)); }
82 virtual void set_user (
float user_v) { set_value(user_to_internal(user_v)); }
96 int set_state (
const XMLNode&,
int version);
99 std::string
name()
const {
return _name; }
107 virtual double lower()
const {
return 0.0; }
108 virtual double upper()
const {
return 1.0; }
109 virtual double normal()
const {
return 0.0; }
112 void set_flags (Flag
f);
virtual float get_interface() const
static PBD::Signal3< void, PBD::Controllable *, int, int > CreateBinding
virtual float get_user() const
static Controllables registry
virtual void set_interface(float percent)
void set_touching(bool yn)
static PBD::Signal1< bool, PBD::Controllable * > StartLearning
virtual std::string get_user_string() const
virtual double upper() const
bool is_gain_like() const
virtual double internal_to_interface(double i) const
virtual void set_user(float user_v)
static PBD::Signal1< void, PBD::Controllable * > StopLearning
static Glib::Threads::RWLock registry_lock
virtual double normal() const
virtual double lower() const
static PBD::Signal1< void, Controllable * > Destroyed
static const std::string xml_node_name
PBD::Signal0< void > LearningFinished
virtual double user_to_internal(double i) const
PBD::Signal0< void > Changed
virtual double interface_to_internal(double i) const
std::set< PBD::Controllable * > Controllables
static PBD::Signal1< void, PBD::Controllable * > DeleteBinding
static LilvNode * get_value(LilvWorld *world, const LilvNode *subject, const LilvNode *predicate)
virtual double internal_to_user(double i) const