VST 3 SDK: EditControllerEx1 Class Reference
Author: Steinberg

VST 3 SDK VST 3.7 SDK for developing VST plug-in

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups Pages
Public Types | Public Member Functions | Public Attributes | List of all members
EditControllerEx1 Class Reference
VST Implementation Helper Classes

Advanced implementation (support IUnitInfo) for a VST 3 edit controller. More...

`#include <vsteditcontroller.h>`

Inheritance diagram for EditControllerEx1:

## Public Types
using | ProgramIndexMap = (EditControllerEx1, EditController) DEFINE_INTERFACES DEF_INTERFACE(IUnitInfo) END_DEFINE_INTERFACES(EditController) REFCOUNT_METHODS(EditController) protected std::map< ProgramListID, ProgramListVector::size_type >
using | UnitVector = std::vector< IPtr< Unit >>

## Public Member Functions
| EditControllerEx1 ()
| ~EditControllerEx1 () override
tresult | terminate () SMTG_OVERRIDE
bool | addUnit (Unit *unit)
| Adds a given unit.
bool | addProgramList (ProgramList *list)
| Adds a given program list.
ProgramList * | getProgramList (ProgramListID listId) const
| Returns the ProgramList associated to a given listId.
tresult | notifyProgramListChange (ProgramListID listId, int32 programIndex=kAllProgramInvalid)
| Notifies the host about program list changes.
int32 | getUnitCount () SMTG_OVERRIDE
tresult | getUnitInfo (int32 unitIndex, UnitInfo &info) SMTG_OVERRIDE
int32 | getProgramListCount () SMTG_OVERRIDE
tresult | getProgramListInfo (int32 listIndex, ProgramListInfo &info) SMTG_OVERRIDE
tresult | getProgramName (ProgramListID listId, int32 programIndex, String128 name) SMTG_OVERRIDE
tresult | getProgramInfo (ProgramListID listId, int32 programIndex, CString attributeId, String128 attributeValue) SMTG_OVERRIDE
tresult | hasProgramPitchNames (ProgramListID listId, int32 programIndex) SMTG_OVERRIDE
tresult | getProgramPitchName (ProgramListID listId, int32 programIndex, int16 midiPitch, String128 name) SMTG_OVERRIDE
virtual tresult | setProgramName (ProgramListID listId, int32 programIndex, const String128 name)
UnitID | getSelectedUnit () SMTG_OVERRIDE
tresult | selectUnit (UnitID unitId) SMTG_OVERRIDE
tresult | getUnitByBus (MediaType, BusDirection, int32, int32, UnitID &) SMTG_OVERRIDE
tresult | setUnitProgramData (int32, int32, IBStream *) SMTG_OVERRIDE
virtual tresult | notifyUnitSelection ()
| Notifies the host about the selected Unit.
void | update (FUnknown *changedUnknown, int32 message) SMTG_OVERRIDE
Public Member Functions inherited from EditController
| EditController ()
tresult | setComponentState (IBStream *state) SMTG_OVERRIDE
tresult | setState (IBStream *state) SMTG_OVERRIDE
tresult | getState (IBStream *state) SMTG_OVERRIDE
int32 | getParameterCount () SMTG_OVERRIDE
tresult | getParameterInfo (int32 paramIndex, ParameterInfo &info) SMTG_OVERRIDE
tresult | getParamStringByValue (ParamID tag, ParamValue valueNormalized, String128 string) SMTG_OVERRIDE
tresult | getParamValueByString (ParamID tag, TChar *string, ParamValue &valueNormalized) SMTG_OVERRIDE
ParamValue | normalizedParamToPlain (ParamID tag, ParamValue valueNormalized) SMTG_OVERRIDE
ParamValue | plainParamToNormalized (ParamID tag, ParamValue plainValue) SMTG_OVERRIDE
ParamValue | getParamNormalized (ParamID tag) SMTG_OVERRIDE
tresult | setParamNormalized (ParamID tag, ParamValue value) SMTG_OVERRIDE
tresult | setComponentHandler (IComponentHandler *handler) SMTG_OVERRIDE
IPlugView * | createView (FIDString) SMTG_OVERRIDE
tresult | setKnobMode (KnobMode mode) SMTG_OVERRIDE
tresult | openHelp (TBool) SMTG_OVERRIDE
tresult | openAboutBox (TBool) SMTG_OVERRIDE
tresult | initialize (FUnknown *context) SMTG_OVERRIDE
virtual tresult | beginEdit (ParamID tag)
| to be called before a serie of performEdit
virtual tresult | performEdit (ParamID tag, ParamValue valueNormalized)
| will inform the host about the value change
virtual tresult | endEdit (ParamID tag)
| to be called after a serie of performEdit
virtual tresult | startGroupEdit ()
| calls IComponentHandler2::startGroupEdit() if host supports it
virtual tresult | finishGroupEdit ()
| calls IComponentHandler2::finishGroupEdit() if host supports it
virtual void | editorDestroyed (EditorView *)
| called from EditorView if it was destroyed
virtual void | editorAttached (EditorView *)
| called from EditorView if it was attached to a parent
virtual void | editorRemoved (EditorView *)
| called from EditorView if it was removed from a parent
virtual Parameter * | getParameterObject (ParamID tag)
| Gets for a given tag the parameter object.
virtual tresult | getParameterInfoByTag (ParamID tag, ParameterInfo &info)
| Gets for a given tag the parameter information.
virtual tresult | setDirty (TBool state)
| Calls IComponentHandler2::setDirty (state) if host supports it.
virtual tresult | requestOpenEditor (FIDString name=ViewType::kEditor)
| Calls IComponentHandler2::requestOpenEditor (name) if host supports it.
IComponentHandler * | getComponentHandler () const
Public Member Functions inherited from ComponentBase
| ComponentBase ()
| ~ComponentBase () override
FUnknown * | getHostContext () const
| Returns the hostContext (set by the host during initialize call).
IConnectionPoint * | getPeer () const
| Returns the peer for the messaging communication (you can only use IConnectionPoint::notify for communicate between peers, do not try to cast peerConnection.
IMessage * | allocateMessage () const
| Allocates a message instance (do not forget to release it).
tresult | sendMessage (IMessage *message) const
| Sends the given message to the peer.
tresult | sendTextMessage (const char8 *text) const
| Sends a simple text message to the peer (max 255 characters).
tresult | sendMessageID (const char8 *messageID) const
| Sends a message with a given ID without any other payload.
virtual tresult | receiveText (const char8 *text)
| Receives a simple text message from the peer (max 255 characters).
tresult | connect (IConnectionPoint *other) SMTG_OVERRIDE
tresult | disconnect (IConnectionPoint *other) SMTG_OVERRIDE
tresult | notify (IMessage *message) SMTG_OVERRIDE

## Public Attributes
UnitVector | units
ProgramListVector | programLists
ProgramIndexMap | programIndexMap
UnitID | selectedUnit {kRootUnitId}
Public Attributes inherited from EditController
OBJ_METHODS(EditController, ComponentBase) DEFINE_INTERFACES DEF_INTERFACE(IEditController) DEF_INTERFACE(IEditController2) END_DEFINE_INTERFACES(ComponentBase) REFCOUNT_METHODS(ComponentBase) protected IPtr < IComponentHandler2 > | componentHandler2
ParameterContainer | parameters
Public Attributes inherited from ComponentBase
OBJ_METHODS(ComponentBase, FObject) DEFINE_INTERFACES DEF_INTERFACE(IPluginBase) DEF_INTERFACE(IConnectionPoint) END_DEFINE_INTERFACES(FObject) REFCOUNT_METHODS(FObject) protected IPtr < IConnectionPoint > | peerConnection

## Additional Inherited Members
Static Public Member Functions inherited from EditController
static KnobMode | getHostKnobMode ()
| return host knob mode
Static Public Attributes inherited from EditController
static KnobMode | hostKnobMode = kCircularMode
Static Public Attributes inherited from IUnitInfo
static const FUID | iid

## Detailed Description

Advanced implementation (support IUnitInfo) for a VST 3 edit controller.

- [extends EditController]

## Member Typedef Documentation

using ProgramIndexMap = (EditControllerEx1, EditController) DEFINE_INTERFACES DEF_INTERFACE (IUnitInfo) END_DEFINE_INTERFACES (EditController) REFCOUNT_METHODS (EditController) protected std::map<ProgramListID, ProgramListVector::size_type>

using UnitVector = std::vector<IPtr<Unit>>

## Constructor & Destructor Documentation

EditControllerEx1 | ( |  | ) |

~EditControllerEx1 | ( |  | ) |
| override

## Member Function Documentation

tresult terminate | ( |  | ) |
| virtual

Reimplemented from EditController.

Reimplemented in SingleComponentEffect.

bool addUnit | ( | Unit * | unit | ) |

Adds a given unit.

bool addProgramList | ( | ProgramList * | list | ) |

Adds a given program list.

ProgramList * getProgramList | ( | ProgramListID | listId | ) | const

Returns the ProgramList associated to a given listId.

tresult notifyProgramListChange | ( | ProgramListID | listId,
|  | int32 | programIndex = `kAllProgramInvalid`
| ) |  |

Notifies the host about program list changes.

int32 getUnitCount | ( |  | ) |
| inlinevirtual

Implements IUnitInfo.

tresult getUnitInfo | ( | int32 | unitIndex,
|  | UnitInfo & | info
| ) |  |
| virtual

Implements IUnitInfo.

int32 getProgramListCount | ( |  | ) |
| virtual

Implements IUnitInfo.

tresult getProgramListInfo | ( | int32 | listIndex,
|  | ProgramListInfo & | info
| ) |  |
| virtual

Implements IUnitInfo.

tresult getProgramName | ( | ProgramListID | listId,
|  | int32 | programIndex,
|  | String128 | name
| ) |  |
| virtual

Implements IUnitInfo.

tresult getProgramInfo | ( | ProgramListID | listId,
|  | int32 | programIndex,
|  | CString | attributeId,
|  | String128 | attributeValue
| ) |  |
| virtual

Implements IUnitInfo.

tresult hasProgramPitchNames | ( | ProgramListID | listId,
|  | int32 | programIndex
| ) |  |
| virtual

Implements IUnitInfo.

tresult getProgramPitchName | ( | ProgramListID | listId,
|  | int32 | programIndex,
|  | int16 | midiPitch,
|  | String128 | name
| ) |  |
| virtual

Implements IUnitInfo.

tresult setProgramName | ( | ProgramListID | listId,
|  | int32 | programIndex,
|  | const String128 | name
| ) |  |
| virtual

UnitID getSelectedUnit | ( |  | ) |
| inlinevirtual

Implements IUnitInfo.

tresult selectUnit | ( | UnitID | unitId | ) |
| inlinevirtual

Implements IUnitInfo.

tresult getUnitByBus | ( | MediaType | ,
|  | BusDirection | ,
|  | int32 | ,
|  | int32 | ,
|  | UnitID & |
| ) |  |
| inlinevirtual

Implements IUnitInfo.

tresult setUnitProgramData | ( | int32 | ,
|  | int32 | ,
|  | IBStream * |
| ) |  |
| inlinevirtual

Implements IUnitInfo.

tresult notifyUnitSelection | ( |  | ) |
| virtual

Notifies the host about the selected Unit.

void update | ( | FUnknown * | changedUnknown,
|  | int32 | message
| ) |  |

## Member Data Documentation

UnitVector units

ProgramListVector programLists

ProgramIndexMap programIndexMap

UnitID selectedUnit {kRootUnitId}

Empty

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