virtual void set_value (double, GroupControlDisposition group_override) = 0;
virtual double get_value (void) const = 0;
+ /** This is used when saving state. By default it just calls
+ * get_value(), but a class with more complex semantics might override
+ * this to save some value that differs from what get_value() would
+ * return.
+ */
+ virtual double get_save_value () const { return get_value(); }
+
/** Conversions between `internal', 'interface', and 'user' values */
virtual double internal_to_interface (double i) const {return (i-lower())/(upper() - lower());} //by default, the interface range is just a linear interpolation between lower and upper values
virtual double interface_to_internal (double i) const {return lower() + i*(upper() - lower());}