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

Extended plug-in interface IEditController for note expression event support: Vst::INoteExpressionPhysicalUIMapping. More...

#include <ivstphysicalui.h>

+ Inheritance diagram for INoteExpressionPhysicalUIMapping:

Public Member Functions

virtual tresult getPhysicalUIMapping (int32 busIndex, int16 channel, PhysicalUIMapList &list)=0
 Fills the list of mapped [physical UI (in) - note expression (out)] for a given bus index and channel. 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

Extended plug-in interface IEditController for note expression event support: Vst::INoteExpressionPhysicalUIMapping.

With this plug-in interface, the host can retrieve the preferred physical mapping associated to note expression supported by the plug-in. When the mapping changes (for example when switching presets) the plug-in needs to inform the host about it via IComponentHandler::restartComponent (kNoteExpressionChanged).

Example

//------------------------------------------------------------------------
// here an example of how a VST3 plug-in could support this INoteExpressionPhysicalUIMapping interface.
// we need to define somewhere the iids:
//in MyController class declaration
class MyController : public Vst::EditController, public Vst::INoteExpressionPhysicalUIMapping
{
// ...
//--- INoteExpressionPhysicalUIMapping ---------------------------------
tresult PLUGIN_API getPhysicalUIMapping (int32 busIndex, int16 channel, PhysicalUIMapList& list) SMTG_OVERRIDE;
// ...
OBJ_METHODS (MyController, Vst::EditController)
DEFINE_INTERFACES
// ...
DEF_INTERFACE (Vst::INoteExpressionPhysicalUIMapping)
END_DEFINE_INTERFACES (Vst::EditController)
//...
}
// In mycontroller.cpp
namespace Steinberg {
namespace Vst {
DEF_CLASS_IID (INoteExpressionPhysicalUIMapping)
}
}
//------------------------------------------------------------------------
tresult PLUGIN_API MyController::getPhysicalUIMapping (int32 busIndex, int16 channel, PhysicalUIMapList& list)
{
if (busIndex == 0 && channel == 0)
{
for (uint32 i = 0; i < list.count; ++i)
{
if (kPUIXMovement == list.map[i].physicalUITypeID)
list.map[i].noteExpressionTypeID = kCustomStart + 1;
else if (kPUIYMovement == list.map[i].physicalUITypeID)
list.map[i].noteExpressionTypeID = kCustomStart + 2;
}
return kResultTrue;
}
return kResultFalse;
}
virtual tresult getPhysicalUIMapping(int32 busIndex, int16 channel, PhysicalUIMapList &list)=0
Fills the list of mapped [physical UI (in) - note expression (out)] for a given bus index and channel...
#define SMTG_OVERRIDE
uint32 NoteExpressionTypeID
Note Expression Types.
Definition: ivstnoteexpression.h:35
@ kPUIYMovement
absolute Y position when touching keys of PUIs.
Definition: ivstphysicalui.h:47
@ kPUIXMovement
absolute X position when touching keys of PUIs.
Definition: ivstphysicalui.h:45
@ kCustomStart
start of custom note expression type ids
Definition: ivstnoteexpression.h:59
@ kInvalidTypeID
indicates an invalid note expression type
Definition: ivstnoteexpression.h:62
int32 tresult
int16_t int16
int32_t int32
DEF_CLASS_IID(ITest) DEF_CLASS_IID(ITestSuite) DEF_CLASS_IID(ITestFactory) namespace Vst
uint32_t uint32

Member Function Documentation

◆ getPhysicalUIMapping()

virtual tresult getPhysicalUIMapping ( int32  busIndex,
int16  channel,
PhysicalUIMapList list 
)
pure virtual

Fills the list of mapped [physical UI (in) - note expression (out)] for a given bus index and channel.

Member Data Documentation

◆ iid

const FUID iid
static
Empty

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