VST 3 Interfaces VST 3.7
SDK for developing VST plug-in
IParameterFunctionName Class Referenceabstract

Edit controller component interface extension: Vst::IParameterFunctionName. More...

#include <ivstparameterfunctionname.h>

+ Inheritance diagram for IParameterFunctionName:

Public Member Functions

virtual tresult getParameterIDFromFunctionName (UnitID unitID, FIDString functionName, ParamID &paramID)=0
 Gets for the given unitID the associated paramID to a function Name. More...
 
- Public Member Functions inherited from FUnknown
virtual tresult queryInterface (const TUID _iid, void **obj)=0
 
virtual uint32 addRef ()=0
 
virtual uint32 release ()=0
 

Static Public Attributes

static const FUID iid
 
- Static Public Attributes inherited from FUnknown
static const FUID iid
 

Detailed Description

Edit controller component interface extension: Vst::IParameterFunctionName.

This interface allows the host to get a parameter associated to a specific meaning (a functionName) for a given unit. The host can use this information, for example, for drawing a Gain Reduction meter in its own UI. In order to get the plain value of this parameter, the host should use the IEditController::normalizedParamToPlain. The host can automatically map parameters to dedicated UI controls, such as the wet-dry mix knob or Randomize button.

Example

//------------------------------------------------------------------------
// here an example of how a VST3 plug-in could support this IParameterFunctionName interface.
// we need to define somewhere the iids:
in MyController class declaration
class MyController : public Vst::EditController, public Vst::IParameterFunctionName
{
...
tresult PLUGIN_API getParameterIDFromFunctionName (UnitID unitID, FIDString functionName,
Vst::ParamID& paramID) override;
...
OBJ_METHODS (MyController, Vst::EditController)
DEFINE_INTERFACES
...
DEF_INTERFACE (Vst::IParameterFunctionName)
END_DEFINE_INTERFACES (Vst::EditController)
DELEGATE_REFCOUNT (Vst::EditController)
...
}
namespace Steinberg {
namespace Vst {
DEF_CLASS_IID (IParameterFunctionName)
}
}
//------------------------------------------------------------------------
tresult PLUGIN_API MyController::getParameterIDFromFunctionName (UnitID unitID, FIDString
functionName, Vst::ParamID& paramID)
{
using namespace Vst;
paramID = kNoParamId;
if (unitID == kRootUnitId && FIDStringsEqual (functionName, kCompGainReduction))
paramID = kMyGainReductionId;
return (paramID != kNoParamId) ? kResultOk : kResultFalse;
}
//--- a host implementation example: --------------------
...
FUnknownPtr<Vst::IParameterFunctionName> functionName (mEditController->getIEditController ());
if (functionName)
{
Vst::ParamID paramID;
if (functionName->getParameterIDFromFunctionName (kRootUnitId,
{
// paramID could be cached for performance issue
ParamValue norm = mEditController->getIEditController ()->getParamNormalized (paramID);
ParamValue plain = mEditController->getIEditController ()->normalizedParamToPlain (paramID, norm);
// plain is something like -6 (-6dB)
}
}
virtual tresult getParameterIDFromFunctionName(UnitID unitID, FIDString functionName, ParamID &paramID)=0
Gets for the given unitID the associated paramID to a function Name.
#define DELEGATE_REFCOUNT(ClassName)
const CString kCompGainReduction
Definition: ivstparameterfunctionname.h:31
double ParamValue
parameter value type: normalized value => [0.0, 1.0]
Definition: vsttypes.h:85
uint32 ParamID
parameter identifier: value in range [0, 0x7FFFFFFF].
Definition: vsttypes.h:86
int32 UnitID
unit identifier
Definition: vsttypes.h:83
int32 tresult
DEF_CLASS_IID(ITest) DEF_CLASS_IID(ITestSuite) DEF_CLASS_IID(ITestFactory) namespace Vst
const char8 * FIDString
bool FIDStringsEqual(FIDString id1, FIDString id2)

Member Function Documentation

◆ getParameterIDFromFunctionName()

virtual tresult getParameterIDFromFunctionName ( UnitID  unitID,
FIDString  functionName,
ParamID paramID 
)
pure virtual

Gets for the given unitID the associated paramID to a function Name.

Returns kResultFalse when no found parameter (paramID is set to kNoParamId in this case).

Member Data Documentation

◆ iid

const FUID iid
static
Empty

Copyright © Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.