- boost::shared_ptr<const AutomationControl>
- automation_control (const Evoral::Parameter& id) const;
+ We could theoretically just overload the above method with an extra
+ "bool recurse = default", but the rules of name hiding for C++ mean
+ that making a method virtual will hide other overloaded versions of
+ the same name. This means that virtual automation_control (PBD::ID
+ const &) would hide automation_control (Evoral::Parameter const &
+ id).
+
+ So, skip around all that with a different name.
+ */
+ virtual boost::shared_ptr<AutomationControl> automation_control_recurse (PBD::ID const & id) const {
+ return automation_control (id);
+ }
+
+ boost::shared_ptr<AutomationControl> automation_control (const Evoral::Parameter& id) {
+ return automation_control (id, false);
+ }
+ boost::shared_ptr<AutomationControl> automation_control (const Evoral::Parameter& id, bool create_if_missing);
+ boost::shared_ptr<const AutomationControl> automation_control (const Evoral::Parameter& id) const;