48Parameter::Parameter ()
53Parameter::Parameter (
const ParameterInfo& info)
54: info (info), valueNormalized (info.defaultNormalizedValue)
59Parameter::Parameter (
const TChar* title, ParamID tag,
const TChar* units,
60 ParamValue defaultValueNormalized, int32 stepCount, int32 flags,
61 UnitID unitID,
const TChar* shortTitle)
63 UString (info.title, str16BufferSize (String128)).assign (title);
65 UString (info.units, str16BufferSize (String128)).assign (units);
67 UString (info.shortTitle, str16BufferSize (String128)).assign (shortTitle);
69 info.stepCount = stepCount;
70 info.defaultNormalizedValue = valueNormalized = defaultValueNormalized;
77Parameter::~Parameter ()
88 else if (normValue < 0.)
93 if (normValue != valueNormalized)
95 valueNormalized = normValue;
103void Parameter::toString (
ParamValue normValue, String128
string)
const
106 if (info.stepCount == 1)
119 if (!wrapper.
printFloat (normValue, precision))
127 UString wrapper (
const_cast<TChar*
> (
string), tstrlen (
string));
146RangeParameter::RangeParameter () : minPlain (0), maxPlain (1)
152: Parameter (paramInfo), minPlain (min), maxPlain (max)
157RangeParameter::RangeParameter (
const TChar* title,
ParamID tag,
const TChar* units,
159 ParamValue defaultValuePlain, int32 stepCount, int32 flags,
161: minPlain (minPlain), maxPlain (maxPlain)
182 int64 plain =
static_cast<int64
> (
toPlain (_valueNormalized));
195 UString wrapper (
const_cast<TChar*
> (
string), tstrlen (
string));
199 if (wrapper.
scanInt (plainValue))
206 if (wrapper.
scanFloat (_valueNormalized))
208 if (_valueNormalized <
getMin ())
209 _valueNormalized =
getMin ();
210 else if (_valueNormalized >
getMax ())
211 _valueNormalized =
getMax ();
222 return FromNormalized<ParamValue> (_valueNormalized, info.
stepCount) +
getMin ();
230 return ToNormalized <ParamValue>(plainValue -
getMin (), info.
stepCount);
242StringListParameter::StringListParameter (
const TChar* title,
ParamID tag,
const TChar* units,
243 int32 flags,
UnitID unitID,
const TChar* shortTitle)
259StringListParameter::~StringListParameter ()
261 for (
auto&
string : strings)
268 int32 length = strlen16 (
string);
282 TChar* str = strings.
at (index);
286 int32 length = strlen16 (
string);
293 strings[index] = buffer;
301 int32 index =
static_cast<int32
> (
toPlain (_valueNormalized));
302 if (
const TChar* valueString = strings.
at (index))
314 for (
auto it = strings.
begin (), end = strings.
end (); it != end; ++it, ++index)
316 if (strcmp16 (*it,
string) == 0)
330 return FromNormalized<ParamValue> (_valueNormalized, info.
stepCount);
338 return ToNormalized<ParamValue> (plainValue, info.
stepCount);
344ParameterContainer::ParameterContainer ()
349ParameterContainer::~ParameterContainer ()
391 if (!params || index < 0 || index >=
static_cast<int32
> (params->
size ()))
393 return params->
at (index);
401 auto it = id2index.
find (tag);
402 if (it != id2index.
end ())
403 return params->
at (it->second);
414 IndexMap::const_iterator it = id2index.
find (tag);
415 if (it != id2index.
end ())
417 params->
erase (params->
begin () + it->second);
425 int32 stepCount,
ParamValue defaultNormalizedValue,
426 int32 flags, int32 tag,
UnitID unitID,
const TChar* shortTitle)
IPtr - Smart pointer template class.
UTF-16 string class without buffer management.
bool printInt(int64 value)
Print integer to string.
bool scanInt(int64 &value) const
Scan integer from string.
bool scanFloat(double &value) const
Scan float from string.
UString & assign(const char16 *src, int32 srcSize=-1)
Copy from UTF-16 buffer (srcSize is in code unit (count of char16)).
bool printFloat(double value, int32 precision=4)
Print float to string.
int32 getParameterCount() const
Returns the count of parameters.
void init(int32 initialSize=10, int32 resizeDelta=100)
Init param array.
bool removeParameter(ParamID tag)
Remove a specific parameter by ID.
Parameter * getParameter(ParamID tag) const
Gets parameter by ID.
Parameter * addParameter(const ParameterInfo &info)
Creates and adds a new parameter from a ParameterInfo.
Parameter * getParameterByIndex(int32 index) const
Gets parameter by index.
Description of a Parameter.
virtual ParamValue toNormalized(ParamValue plainValue) const
Converts a plain value to a normalized value (e.g.
virtual void toString(ParamValue valueNormalized, String128 string) const
Converts a normalized value to a string.
virtual const ParameterInfo & getInfo() const
Returns its read only info.
ParamValue toPlain(ParamValue _valueNormalized) const SMTG_OVERRIDE
Converts a normalized value to plain value (e.g.
virtual ParamValue getMin() const
Gets the minimum plain value, same as toPlain (0).
void toString(ParamValue _valueNormalized, String128 string) const SMTG_OVERRIDE
Converts a normalized value to a string.
ParamValue toNormalized(ParamValue plainValue) const SMTG_OVERRIDE
Converts a plain value to a normalized value (e.g.
virtual ParamValue getMax() const
Gets the maximum plain value, same as toPlain (1).
bool fromString(const TChar *string, ParamValue &_valueNormalized) const SMTG_OVERRIDE
Converts a string to a normalized value.
void toString(ParamValue _valueNormalized, String128 string) const SMTG_OVERRIDE
Converts a normalized value to a string.
virtual bool replaceString(int32 index, const String128 string)
Replaces the string at index.
ParamValue toNormalized(ParamValue plainValue) const SMTG_OVERRIDE
Converts a plain value to a normalized value (e.g.
virtual void appendString(const String128 string)
Appends a string and increases the stepCount.
bool fromString(const TChar *string, ParamValue &_valueNormalized) const SMTG_OVERRIDE
Converts a string to a normalized value.
ParamValue toPlain(ParamValue _valueNormalized) const SMTG_OVERRIDE
Converts a normalized value to plain value (e.g.
#define STR16(x)
string methods defines unicode / ASCII
uint32 ParamID
parameter identifier
TChar String128[128]
128 character UTF-16 string
char16 TChar
UTF-16 character.
double ParamValue
parameter value type
int32 UnitID
unit identifier
Controller Parameter Info.
int32 flags
ParameterFlags (see below)
ParamID id
unique identifier of this parameter (named tag too)
String128 title
parameter title (e.g. "Volume")
String128 units
parameter unit (e.g. "dB")
String128 shortTitle
parameter shortTitle (e.g. "Vol")
ParamValue defaultNormalizedValue
default normalized value [0,1] (in case of discrete value: defaultNormalizedValue = defDiscreteValue ...
int32 stepCount
number of discrete steps (0: continuous, 1: toggle, discrete value otherwise (corresponding to max - ...
UnitID unitId
id of unit this parameter belongs to (see vst3Units)