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::IComponentHandler2 Class Referenceabstract

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

#include "ivsteditcontroller.h"

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

Public Member Functions

virtual tresult PLUGIN_API setDirty (TBool state)=0
 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.
 
virtual tresult PLUGIN_API requestOpenEditor (FIDString name=ViewType::kEditor)=0
 Tells host that it should open the plug-in editor the next time it's possible.
 
virtual tresult PLUGIN_API startGroupEdit ()=0
 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 ().
 
virtual tresult PLUGIN_API finishGroupEdit ()=0
 Finishes the group editing started by a startGroupEdit (call after a IComponentHandler::endEdit).
 
- 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 host callback interface for an edit controller: Vst::IComponentHandler2.

One part handles:

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 ();
See also
IComponentHandler, IEditController

Definition at line 255 of file ivsteditcontroller.h.

Member Function Documentation

◆ 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).

Member Data Documentation

◆ iid

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

Definition at line 277 of file ivsteditcontroller.h.


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