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

#include <ivsteditcontroller.h>

Inheritance diagram for Steinberg::Vst::IComponentHandler2:
Steinberg::FUnknown

Public Member Functions

virtual tresult PLUGIN_API setDirty (TBool state)=0
virtual tresult PLUGIN_API requestOpenEditor (FIDString name=ViewType::kEditor)=0
virtual tresult PLUGIN_API startGroupEdit ()=0
virtual tresult PLUGIN_API finishGroupEdit ()=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

Extended host callback interface for an edit controller: Vst::IComponentHandler2

One part handles:

  • Setting dirty state of the plug-in
  • Requesting the host to open the editor

The other part handles parameter group editing from the plug-in UI. It wraps a set of IComponentHandler::beginEdit / Steinberg::Vst::IComponentHandler::performEdit / Steinberg::Vst::IComponentHandler::endEdit functions (see IComponentHandler) which should use the same timestamp in the host when writing automation. This allows for better synchronizing of multiple parameter changes at once.

Examples of different use cases

//--------------------------------------
// we are in the editcontroller...
// in case of multiple switch buttons (with associated ParamID 1 and 3)
// on mouse down :
hostHandler2->startGroupEdit ();
hostHandler->beginEdit (1);
hostHandler->beginEdit (3);
hostHandler->performEdit (1, 1.0);
hostHandler->performEdit (3, 0.0); // the opposite of paramID 1 for example
....
// on mouse up :
hostHandler->endEdit (1);
hostHandler->endEdit (3);
hostHandler2->finishGroupEdit ();
....
....
//--------------------------------------
// in case of multiple faders (with associated ParamID 1 and 3)
// on mouse down :
hostHandler2->startGroupEdit ();
hostHandler->beginEdit (1);
hostHandler->beginEdit (3);
hostHandler2->finishGroupEdit ();
....
// on mouse move :
hostHandler2->startGroupEdit ();
hostHandler->performEdit (1, x); // x the wanted value
hostHandler->performEdit (3, x);
hostHandler2->finishGroupEdit ();
....
// on mouse up :
hostHandler2->startGroupEdit ();
hostHandler->endEdit (1);
hostHandler->endEdit (3);
hostHandler2->finishGroupEdit ();
unsigned x[BMAX+1]
Definition inflate.c:1586
See also
IComponentHandler, IEditController

Member Function Documentation

◆ finishGroupEdit()

virtual tresult PLUGIN_API Steinberg::Vst::IComponentHandler2::finishGroupEdit ( )
pure virtual

Finishes the group editing started by a startGroupEdit (call after a IComponentHandler::endEdit).

◆ requestOpenEditor()

virtual tresult PLUGIN_API Steinberg::Vst::IComponentHandler2::requestOpenEditor ( FIDString name = ViewType::kEditor)
pure virtual

Tells host that it should open the plug-in editor the next time it's possible. You should use this instead of showing an alert and blocking the program flow (especially on loading projects).

◆ setDirty()

virtual tresult PLUGIN_API Steinberg::Vst::IComponentHandler2::setDirty ( TBool state)
pure virtual

Tells host that the plug-in is dirty (something besides parameters has changed since last save), if true the host should apply a save before quitting.

◆ startGroupEdit()

virtual tresult PLUGIN_API Steinberg::Vst::IComponentHandler2::startGroupEdit ( )
pure virtual

Starts the group editing (call before a IComponentHandler::beginEdit), the host will keep the current timestamp at this call and will use it for all IComponentHandler::beginEdit / IComponentHandler::performEdit / IComponentHandler::endEdit calls until a finishGroupEdit ().

Member Data Documentation

◆ iid

const FUID Steinberg::Vst::IComponentHandler2::iid
static

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