JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
Steinberg::Vst::INoteExpressionPhysicalUIMapping Class Referenceabstract

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

#include "ivstphysicalui.h"

Inheritance diagram for Steinberg::Vst::INoteExpressionPhysicalUIMapping:
Steinberg::FUnknown

Public Member Functions

virtual tresult PLUGIN_API 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.
 
- Public Member Functions inherited from Steinberg::FUnknown
virtual tresult PLUGIN_API queryInterface (const TUID _iid, void **obj)=0
 Query for a pointer to the specified interface.
 
virtual uint32 PLUGIN_API addRef ()=0
 Adds a reference and returns the new reference count.
 
virtual uint32 PLUGIN_API release ()=0
 Releases a reference and returns the new reference count.
 

Static Public Attributes

static const FUID iid
 
- Static Public Attributes inherited from Steinberg::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
{
// ...
//--- INoteExpressionPhysicalUIMapping ---------------------------------
tresult PLUGIN_API getPhysicalUIMapping (int32 busIndex, int16 channel, PhysicalUIMapList& list) SMTG_OVERRIDE;
// ...
OBJ_METHODS (MyController, Vst::EditController)
// ...
//...
}
// In mycontroller.cpp
namespace Steinberg {
namespace Vst {
}
}
//------------------------------------------------------------------------
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;
}
Default implementation for a VST 3 edit controller.
Extended plug-in interface IEditController for note expression event support: Vst::INoteExpressionPhy...
#define DEFINE_INTERFACES
Start defining interfaces.
Definition fobject.h:387
#define DEF_INTERFACE(InterfaceName)
Add a interfaces.
Definition fobject.h:394
#define END_DEFINE_INTERFACES(BaseClass)
End defining interfaces.
Definition fobject.h:400
@ kInvalidTypeID
indicates an invalid note expression type
@ kCustomStart
start of custom note expression type ids
uint32 NoteExpressionTypeID
Note Expression Types.
@ kPUIXMovement
absolute X position when touching keys of PUIs.
@ kPUIYMovement
absolute Y position when touching keys of PUIs.
PhysicalUIMapList describes a list of PhysicalUIMap.

Definition at line 149 of file ivstphysicalui.h.

Member Data Documentation

◆ iid

const FUID Steinberg::Vst::INoteExpressionPhysicalUIMapping::iid
static

Definition at line 158 of file ivstphysicalui.h.


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