53 using namespace boost;
58 if (!registry_connections) {
72 for (Controllables::iterator i =
registry.begin(); i !=
registry.end(); ++i) {
85 for (Controllables::iterator i =
registry.begin(); i !=
registry.end(); ++i) {
86 if ((*i)->id() ==
id) {
98 for (Controllables::iterator i =
registry.begin(); i !=
registry.end(); ++i) {
99 if ((*i)->_name == str) {
114 id().
print (buf,
sizeof (buf));
117 snprintf (buf,
sizeof (buf),
"%2.12f",
get_value());
138 if ((prop = node.
property (
X_(
"flags"))) != 0) {
142 if ((prop = node.
property (
X_(
"value"))) != 0) {
145 if (sscanf (prop->
value().c_str(),
"%f", &val) == 1) {
static PBD::Signal3< void, PBD::Controllable *, int, int > CreateBinding
PBD::Signal0< void > DropReferences
const std::string & value() const
void save_extra_xml(const XMLNode &)
static Controllables registry
XMLNode * add_child_copy(const XMLNode &)
static PBD::Signal1< bool, PBD::Controllable * > StartLearning
static Controllable * by_id(const PBD::ID &)
static void add(Controllable &)
XMLProperty * property(const char *)
#define string_2_enum(str, e)
static PBD::Signal1< void, PBD::Controllable * > StopLearning
const PBD::ID & id() const
void print(char *buf, uint32_t bufsize) const
bool set_id(const XMLNode &)
static Glib::Threads::RWLock registry_lock
int set_state(const XMLNode &, int version)
static PBD::Signal1< void, Controllable * > Destroyed
virtual double get_value(void) const =0
static const std::string xml_node_name
XMLProperty * add_property(const char *name, const std::string &value)
virtual void set_value(double)=0
static void remove(Controllable *)
static Controllable * by_name(const std::string &)
std::set< PBD::Controllable * > Controllables
PBD::ScopedConnectionList * registry_connections
Controllable(const std::string &name, Flag f=Flag(0))
static PBD::Signal1< void, PBD::Controllable * > DeleteBinding