LMMS
Loading...
Searching...
No Matches
Steinberg::Vst::IParameterFunctionName Class Referenceabstract

#include <ivstparameterfunctionname.h>

Inheritance diagram for Steinberg::Vst::IParameterFunctionName:
Steinberg::FUnknown

Public Member Functions

virtual tresult PLUGIN_API getParameterIDFromFunctionName (UnitID unitID, FIDString functionName, ParamID &paramID)=0
Public Member Functions inherited from Steinberg::FUnknown
virtual tresult PLUGIN_API queryInterface (const TUID _iid, void **obj)=0
virtual uint32 PLUGIN_API addRef ()=0
virtual uint32 PLUGIN_API release ()=0

Static Public Attributes

static const FUID iid
Static Public Attributes inherited from Steinberg::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;
...
...
...
}
namespace Steinberg {
namespace Vst {
}
}
//------------------------------------------------------------------------
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 (Vst::FunctionNameType::kCompGainReduction, paramID) == kResultTrue)
{
// 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)
}
}
Definition vsteditcontroller.h:62
Definition ivstparameterfunctionname.h:124
virtual tresult PLUGIN_API getParameterIDFromFunctionName(UnitID unitID, FIDString functionName, ParamID &paramID)=0
#define DEFINE_INTERFACES
Definition fobject.h:378
#define DEF_INTERFACE(InterfaceName)
Definition fobject.h:385
#define OBJ_METHODS(className, baseClass)
Definition fobject.h:339
#define END_DEFINE_INTERFACES(BaseClass)
Definition fobject.h:391
#define DEF_CLASS_IID(ClassName)
Definition funknown.h:78
float in
Definition lilv_test.c:1460
Definition ivstattributes.h:28
uint32 ParamID
parameter identifier
Definition vsttypes.h:75
double ParamValue
parameter value type
Definition vsttypes.h:74
int32 UnitID
unit identifier
Definition vsttypes.h:73
Definition baseiids.cpp:43
const char8 * FIDString
Definition ftypes.h:117
int32 tresult
Definition ftypes.h:76

Member Function Documentation

◆ getParameterIDFromFunctionName()

virtual tresult PLUGIN_API Steinberg::Vst::IParameterFunctionName::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 Steinberg::Vst::IParameterFunctionName::iid
static

The documentation for this class was generated from the following file: