parameterdescription.h (1137B)
1 #pragma once 2 3 #include <cstdint> 4 #include <string> 5 #include <functional> 6 #include <limits> 7 8 #include "parametervaluelist.h" 9 10 #include "juce_core/juce_core.h" 11 12 namespace pluginLib 13 { 14 enum class ParameterClass 15 { 16 None = 0x00, 17 Global = 0x01, 18 MultiOrSingle = 0x02, 19 NonPartSensitive = 0x04, 20 }; 21 22 struct Description 23 { 24 static constexpr int NoDefaultValue = std::numeric_limits<int>::max(); 25 26 Description() = default; 27 Description(const Description&) = delete; 28 Description(Description&&) noexcept = default; 29 Description& operator = (const Description&) = delete; 30 Description& operator = (Description&&) noexcept = default; 31 ~Description() = default; 32 33 uint8_t page; 34 uint8_t index; 35 int classFlags; 36 std::string name; 37 std::string displayName; 38 juce::Range<int> range; 39 int defaultValue = NoDefaultValue; 40 ValueList valueList; 41 bool isPublic; 42 bool isDiscrete; 43 bool isBool; 44 bool isBipolar; 45 int step = 0; 46 std::string toText; 47 std::string softKnobTargetSelect; 48 std::string softKnobTargetList; 49 50 bool isNonPartSensitive() const; 51 bool isSoftKnob() const; 52 }; 53 }