+
+ /* old school automation */
+
+ int load ();
+
+ struct PanControllable : public AutomationControl {
+ PanControllable (Session& s, std::string name, Panner& p, Evoral::Parameter param)
+ : AutomationControl (s, param,
+ boost::shared_ptr<AutomationList>(new AutomationList(param)), name)
+ , panner (p)
+ { assert(param.type() != NullAutomation); }
+
+ AutomationList* alist() { return (AutomationList*)_list.get(); }
+ Panner& panner;
+
+ void set_value (double);
+ double get_value (void) const;
+ };
+
+ boost::shared_ptr<AutomationControl> pan_control (int id, int chan=0) {
+ return automation_control (Evoral::Parameter (PanAutomation, chan, id));
+ }
+
+ boost::shared_ptr<const AutomationControl> pan_control (int id, int chan=0) const {
+ return automation_control (Evoral::Parameter (PanAutomation, chan, id));
+ }
+
+ static std::string value_as_string (double);
+