23 #ifndef __pbd_controllable_h__
24 #define __pbd_controllable_h__
32 #include <glibmm/threads.h>
79 NotAutomatable = 0x08,
82 MonitorControl = 0x40,
128 return (i-lower())/(upper() - lower());
132 return lower() + i*(upper() - lower());
136 virtual float get_interface(
bool rotary=
false)
const {
return (internal_to_interface(get_value(), rotary)); }
145 static PBD::Signal1<void, std::weak_ptr<PBD::Controllable> >
StopLearning;
150 PBD::Signal2<void,bool,PBD::Controllable::GroupControlDisposition>
Changed;
155 std::string
name()
const {
return _name; }
163 virtual double lower()
const {
return 0.0; }
164 virtual double upper()
const {
return 1.0; }
165 virtual double normal()
const {
return 0.0; }
181 if (_touching == yn) {
return; }
PBD::Signal2< void, bool, PBD::Controllable::GroupControlDisposition > Changed
PBD::Signal0< void > LearningFinished
void set_touching(bool yn)
virtual XMLNode & get_state() const
static void dump_registry()
Controllable(const std::string &name, Flag f=Flag(0))
void clear_flag(Flag f)
_flags &= ~f;
virtual double interface_to_internal(double i, bool rotary=false) const
static ScopedConnectionList registry_connections
static void remove(Controllable *)
static PBD::Signal1< bool, std::weak_ptr< PBD::Controllable > > StartLearning
static std::shared_ptr< Controllable > by_id(const PBD::ID &)
virtual double get_save_value() const
bool is_gain_like() const
virtual std::string get_user_string() const
std::set< PBD::Controllable * > Controllables
static ControllableSet registered_controllables()
virtual void set_value(double value, GroupControlDisposition group_override)=0
virtual double lower() const
virtual double normal() const
virtual double get_value(void) const =0
virtual float get_interface(bool rotary=false) const
int set_state(const XMLNode &, int version)
virtual double internal_to_interface(double i, bool rotary=false) const
virtual void set_interface(float fraction, bool rotary=false, GroupControlDisposition gcd=NoGroup)
static const std::string xml_node_name
static PBD::Signal1< void, std::weak_ptr< PBD::Controllable > > StopLearning
static PBD::Signal1< void, std::weak_ptr< PBD::Controllable > > GUIFocusChanged
static void add(Controllable &)
static PBD::Signal1< void, std::weak_ptr< PBD::Controllable > > ControlTouched
static Controllables registry
static Glib::Threads::RWLock registry_lock
void set_flag(Flag f)
_flags |= f;
virtual double upper() const
PBD::Signal0< void > TouchChanged
GtkImageIconNameData name
std::shared_ptr< PBD::Controllable > Controllable
std::set< std::shared_ptr< Controllable > > ControllableSet