VST 3 SDK VST 3.8
SDK for developing VST plug-in
Loading...
Searching...
No Matches
EditControllerEx1 Class Reference

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

#include <vsteditcontroller.h>

+ Inheritance diagram for EditControllerEx1:

Public Types

using ProgramIndexMap = 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 Member Functions inherited from FUnknown
virtual tresult queryInterface (const TUID _iid, void **obj)=0
 
virtual uint32 addRef ()=0
 
virtual uint32 release ()=0
 

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 IPluginBase
static const FUID iid
 
- Static Public Attributes inherited from FUnknown
static const FUID iid
 
- Static Public Attributes inherited from IConnectionPoint
static const FUID iid
 
- Static Public Attributes inherited from IEditController
static const FUID iid
 
- Static Public Attributes inherited from IEditController2
static const FUID iid
 
- Static Public Attributes inherited from IUnitInfo
static const FUID iid
 

Detailed Description

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

Member Typedef Documentation

◆ ProgramIndexMap

using ProgramIndexMap = std::map<ProgramListID, ProgramListVector::size_type>

◆ UnitVector

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

Constructor & Destructor Documentation

◆ EditControllerEx1()

◆ ~EditControllerEx1()

~EditControllerEx1 ( )
override

Member Function Documentation

◆ terminate()

tresult terminate ( )
virtual

Reimplemented from EditController.

Reimplemented in SingleComponentEffect.

◆ addUnit()

bool addUnit ( Unit * unit)

Adds a given unit.

◆ addProgramList()

bool addProgramList ( ProgramList * list)

Adds a given program list.

◆ getProgramList()

ProgramList * getProgramList ( ProgramListID listId) const

Returns the ProgramList associated to a given listId.

◆ notifyProgramListChange()

tresult notifyProgramListChange ( ProgramListID listId,
int32 programIndex = kAllProgramInvalid )

Notifies the host about program list changes.

◆ getUnitCount()

int32 getUnitCount ( )
inlinevirtual

Implements IUnitInfo.

◆ getUnitInfo()

tresult getUnitInfo ( int32 unitIndex,
UnitInfo & info )
virtual

Implements IUnitInfo.

◆ getProgramListCount()

int32 getProgramListCount ( )
virtual

Implements IUnitInfo.

◆ getProgramListInfo()

tresult getProgramListInfo ( int32 listIndex,
ProgramListInfo & info )
virtual

Implements IUnitInfo.

◆ getProgramName()

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

Implements IUnitInfo.

◆ getProgramInfo()

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

Implements IUnitInfo.

◆ hasProgramPitchNames()

tresult hasProgramPitchNames ( ProgramListID listId,
int32 programIndex )
virtual

Implements IUnitInfo.

◆ getProgramPitchName()

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

Implements IUnitInfo.

◆ setProgramName()

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

◆ getSelectedUnit()

UnitID getSelectedUnit ( )
inlinevirtual

Implements IUnitInfo.

◆ selectUnit()

tresult selectUnit ( UnitID unitId)
inlinevirtual

Implements IUnitInfo.

◆ getUnitByBus()

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

Implements IUnitInfo.

◆ setUnitProgramData()

tresult setUnitProgramData ( int32 ,
int32 ,
IBStream *  )
inlinevirtual

Implements IUnitInfo.

◆ notifyUnitSelection()

tresult notifyUnitSelection ( )
virtual

Notifies the host about the selected Unit.

◆ update()

void update ( FUnknown * changedUnknown,
int32 message )

Member Data Documentation

◆ units

UnitVector units

◆ programLists

ProgramListVector programLists

◆ programIndexMap

ProgramIndexMap programIndexMap

◆ selectedUnit

UnitID selectedUnit {kRootUnitId}
Empty

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