13#include "pluginterfaces/base/ustring.h"
14#include "public.sdk/source/vst/vstparameters.h"
15#include "base/source/fstring.h"
22class IPlugVST3Parameter :
public Steinberg::Vst::Parameter
25 IPlugVST3Parameter(
IParam* pParam, Steinberg::Vst::ParamID tag, Steinberg::Vst::UnitID unitID)
28 Steinberg::UString(info.title, str16BufferSize(Steinberg::Vst::String128)).assign(pParam->
GetName());
29 Steinberg::UString(info.units, str16BufferSize(Steinberg::Vst::String128)).assign(pParam->
GetLabel());
33 if (pParam->
Type() != IParam::kTypeDouble)
38 Steinberg::int32 flags = 0;
40 if (pParam->
GetCanAutomate()) flags |= Steinberg::Vst::ParameterInfo::kCanAutomate;
41 if (pParam->
Type() == IParam::kTypeEnum) flags |= Steinberg::Vst::ParameterInfo::kIsList;
49 void toString(Steinberg::Vst::ParamValue valueNormalized, Steinberg::Vst::String128
string)
const override
52 mIPlugParam->GetDisplay(valueNormalized,
true, display);
53 Steinberg::UString(
string, 128).fromAscii(display.Get());
56 bool fromString(
const Steinberg::Vst::TChar*
string, Steinberg::Vst::ParamValue& valueNormalized)
const override
58 Steinberg::String str((Steinberg::Vst::TChar*)
string);
59 valueNormalized = mIPlugParam->ToNormalized(mIPlugParam->StringToValue(str.text8()));
64 Steinberg::Vst::ParamValue toPlain(Steinberg::Vst::ParamValue normValue)
const override
66 return mIPlugParam->FromNormalized(normValue);
69 Steinberg::Vst::ParamValue toNormalized(Steinberg::Vst::ParamValue plainValue)
const override
71 return mIPlugParam->ToNormalized(plainValue);
74 OBJ_METHODS(IPlugVST3Parameter, Parameter)
77 IParam* mIPlugParam =
nullptr;
85 : Steinberg::Vst::Parameter(STR16(
"Preset"), kPresetParam, STR16(
""), 0, nPresets - 1, Steinberg::Vst::ParameterInfo::kIsProgramChange)
88 Steinberg::Vst::ParamValue toPlain(Steinberg::Vst::ParamValue valueNormalized)
const override
90 return std::round(valueNormalized * info.stepCount);
93 Steinberg::Vst::ParamValue toNormalized(Steinberg::Vst::ParamValue plainValue)
const override
95 return plainValue / info.stepCount;
106 : Steinberg::Vst::StringListParameter(STR16(
"Bypass"), kBypassParam, 0, Steinberg::Vst::ParameterInfo::kCanAutomate | Steinberg::Vst::ParameterInfo::kIsBypass | Steinberg::Vst::ParameterInfo::kIsList)
108 appendString(STR16(
"off"));
109 appendString(STR16(
"on"));
double GetDefault(bool normalized=false) const
Returns the parameter's default value.
EParamType Type() const
Get the parameter's type.
double ToNormalized(double nonNormalizedValue) const
Convert a real value to normalized value for this parameter.
int GetDisplayPrecision() const
Returns the parameter's precision.
bool GetCanAutomate() const
const char * GetLabel() const
Returns the parameter's label.
const char * GetName() const
Returns the parameter's name.
double GetRange() const
Returns the parameter's range.
VST3 bypass parameter helper.
VST3 preset parameter helper.