void start_touch(double when);
void stop_touch(bool mark, double when);
+ /* inherited from PBD::Controllable.
+ * Derived classes MUST call ::writable() to verify
+ * that writing to the parameter is legal at that time.
+ */
void set_value (double);
double get_value () const;
+ /* automation related value setting */
+ virtual bool writable () const;
+ /* Call to ::set_value() with no test for writable() because
+ * this is only used by automation playback. We would like
+ * to make it pure virtual
+ */
+ virtual void set_value_unchecked (double val) {}
+
double lower() const { return _desc.lower; }
double upper() const { return _desc.upper; }
double normal() const { return _desc.normal; }