-void
-Automatable::what_has_automation (set<Parameter>& s) const
-{
- Glib::Mutex::Lock lm (_automation_lock);
- Controls::const_iterator li;
-
- // FIXME: correct semantics?
- for (li = _controls.begin(); li != _controls.end(); ++li) {
- s.insert ((*li).first);
- }
-}
-
-void
-Automatable::what_has_visible_automation (set<Parameter>& s) const
-{
- Glib::Mutex::Lock lm (_automation_lock);
- set<Parameter>::const_iterator li;
-
- for (li = _visible_controls.begin(); li != _visible_controls.end(); ++li) {
- s.insert (*li);
- }
-}
-
-/** Returns NULL if we don't have an AutomationList for \a parameter.
- */
-boost::shared_ptr<AutomationControl>
-Automatable::control (Parameter parameter, bool create_if_missing)
-{
- Controls::iterator i = _controls.find(parameter);
-
- if (i != _controls.end()) {
- return i->second;
-
- } else if (create_if_missing) {
- boost::shared_ptr<AutomationList> al (new AutomationList (
- parameter, FLT_MIN, FLT_MAX, default_parameter_value (parameter)));
- boost::shared_ptr<AutomationControl> ac(control_factory(al));
- add_control(ac);
- return ac;
-
- } else {
- //warning << "AutomationList " << parameter.to_string() << " not found for " << _name << endmsg;
- return boost::shared_ptr<AutomationControl>();
- }