X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fparameter_descriptor.h;h=749ed109734c65bd618d4f5b3d505f0c9ed6d068;hb=b7a711e385a6a8cbd4d170bae449b4785f890b23;hp=8916f081a38be3c4cc3f9fc1683e4c6b62aee271;hpb=8a128b33d38172ae525ac798c53bc105bc4e2c64;p=ardour.git diff --git a/libs/ardour/ardour/parameter_descriptor.h b/libs/ardour/ardour/parameter_descriptor.h index 8916f081a3..749ed10973 100644 --- a/libs/ardour/ardour/parameter_descriptor.h +++ b/libs/ardour/ardour/parameter_descriptor.h @@ -21,7 +21,9 @@ #define __ardour_parameter_descriptor_h__ #include "ardour/variant.h" + #include "evoral/Parameter.hpp" +#include "evoral/ParameterDescriptor.hpp" namespace ARDOUR { @@ -31,64 +33,38 @@ typedef std::map ScalePoints; * * Essentially a union of LADSPA, VST and LV2 info. */ -struct ParameterDescriptor +struct LIBARDOUR_API ParameterDescriptor : public Evoral::ParameterDescriptor { - ParameterDescriptor(const Evoral::Parameter& parameter) - : key((uint32_t)-1) - , datatype(Variant::VOID) - , normal(parameter.normal()) - , lower(parameter.min()) - , upper(parameter.max()) - , step(0) - , smallstep((upper - lower) / 100.0) - , largestep((upper - lower) / 10.0) - , integer_step(false) - , toggled(parameter.toggled()) - , logarithmic(false) - , sr_dependent(false) - , min_unbound(0) - , max_unbound(0) - , enumeration(false) - , midinote(false) - {} + enum Unit { + NONE, ///< No unit + DB, ///< Decibels + MIDI_NOTE, ///< MIDI note number + HZ, ///< Frequency in Hertz + }; + + ParameterDescriptor(const Evoral::Parameter& parameter); + + ParameterDescriptor(); - ParameterDescriptor() - : key((uint32_t)-1) - , datatype(Variant::VOID) - , normal(0) - , lower(0) - , upper(0) - , step(0) - , smallstep(0) - , largestep(0) - , integer_step(false) - , toggled(false) - , logarithmic(false) - , sr_dependent(false) - , min_unbound(0) - , max_unbound(0) - , enumeration(false) - , midinote(false) - {} + /** Set step, smallstep, and largestep, based on current description. */ + void update_steps(); std::string label; + std::string print_fmt; ///< format string for pretty printing boost::shared_ptr scale_points; uint32_t key; ///< for properties Variant::Type datatype; ///< for properties - float normal; - float lower; ///< for frequencies, this is in Hz (not a fraction of the sample rate) - float upper; ///< for frequencies, this is in Hz (not a fraction of the sample rate) + AutomationType type; + Unit unit; float step; float smallstep; float largestep; bool integer_step; - bool toggled; bool logarithmic; bool sr_dependent; bool min_unbound; bool max_unbound; bool enumeration; - bool midinote; ///< only used if integer_step is also true }; } // namespace ARDOUR