gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

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 }