13 #include "pluginterfaces/base/ustring.h" 14 #include "public.sdk/source/vst/vstparameters.h" 15 #include "base/source/fstring.h" 22 class 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"));
const char * GetName() const
Returns the parameter's name.
IPlug's parameter class.
int GetDisplayPrecision() const
Returns the parameter's precision.
IPlug's parameter class.
double GetRange() const
Returns the parameter's range.
bool GetCanAutomate() const
double GetDefault(bool normalized=false) const
Returns the parameter's default value.
const char * GetLabel() const
Returns the parameter's label.
VST3 preset parameter helper.
double ToNormalized(double nonNormalizedValue) const
Convert a real value to normalized value for this parameter.
VST3 bypass parameter helper.
EParamType Type() const
Get the parameter's type.