LMMS
Loading...
Searching...
No Matches
Steinberg::Vst::Component Class Reference

#include <vstcomponent.h>

Inheritance diagram for Steinberg::Vst::Component:
Steinberg::Vst::ComponentBase Steinberg::Vst::IComponent Steinberg::FObject Steinberg::IPluginBase Steinberg::Vst::IConnectionPoint Steinberg::IPluginBase Steinberg::IDependent Steinberg::FUnknown Steinberg::FUnknown Steinberg::FUnknown Steinberg::FUnknown

Public Member Functions

 Component ()
void setControllerClass (const FUID &cid)
tresult removeAudioBusses ()
tresult removeEventBusses ()
tresult renameBus (MediaType type, BusDirection dir, int32 index, const String128 newName)
tresult PLUGIN_API getControllerClassId (TUID classID) SMTG_OVERRIDE
tresult PLUGIN_API setIoMode (IoMode mode) SMTG_OVERRIDE
int32 PLUGIN_API getBusCount (MediaType type, BusDirection dir) SMTG_OVERRIDE
tresult PLUGIN_API getBusInfo (MediaType type, BusDirection dir, int32 index, BusInfo &info) SMTG_OVERRIDE
tresult PLUGIN_API getRoutingInfo (RoutingInfo &inInfo, RoutingInfo &outInfo) SMTG_OVERRIDE
tresult PLUGIN_API activateBus (MediaType type, BusDirection dir, int32 index, TBool state) SMTG_OVERRIDE
tresult PLUGIN_API setActive (TBool state) SMTG_OVERRIDE
tresult PLUGIN_API setState (IBStream *state) SMTG_OVERRIDE
tresult PLUGIN_API getState (IBStream *state) SMTG_OVERRIDE
tresult PLUGIN_API initialize (FUnknown *context) SMTG_OVERRIDE
tresult PLUGIN_API terminate () SMTG_OVERRIDE
Public Member Functions inherited from Steinberg::Vst::ComponentBase
 ComponentBase ()
 ~ComponentBase () override
FUnknowngetHostContext () const
IConnectionPointgetPeer () const
IMessageallocateMessage () const
tresult sendMessage (IMessage *message) const
tresult sendTextMessage (const char8 *text) const
tresult sendMessageID (const char8 *messageID) const
virtual tresult receiveText (const char8 *text)
tresult PLUGIN_API initialize (FUnknown *context) SMTG_OVERRIDE
tresult PLUGIN_API terminate () SMTG_OVERRIDE
tresult PLUGIN_API connect (IConnectionPoint *other) SMTG_OVERRIDE
tresult PLUGIN_API disconnect (IConnectionPoint *other) SMTG_OVERRIDE
tresult PLUGIN_API notify (IMessage *message) SMTG_OVERRIDE
Public Member Functions inherited from Steinberg::FObject
 FObject ()
 default constructor...
 FObject (const FObject &)
 overloaded constructor...
virtual ~FObject ()
 destructor...
FObjectoperator= (const FObject &)
 overloads operator "=" as the reference assignment
virtual FClassID isA () const
 a local alternative to getFClassID ()
virtual bool isA (FClassID s) const
 evaluates if the passed ID is of the FObject type
virtual bool isTypeOf (FClassID s, bool=true) const
 evaluates if the passed ID is of the FObject type
int32 getRefCount ()
 returns the current interface reference count
FUnknownunknownCast ()
 get FUnknown interface from object
tresult PLUGIN_API queryInterface (const TUID _iid, void **obj) SMTG_OVERRIDE
 please refer to FUnknown::queryInterface ()
uint32 PLUGIN_API addRef () SMTG_OVERRIDE
 please refer to FUnknown::addref ()
uint32 PLUGIN_API release () SMTG_OVERRIDE
 please refer to FUnknown::release ()
void PLUGIN_API update (FUnknown *, int32) SMTG_OVERRIDE
 empty virtual method that should be overridden by derived classes for data updates upon changes
virtual void addDependent (IDependent *dep)
 adds dependency to the object
virtual void removeDependent (IDependent *dep)
 removes dependency from the object
virtual void changed (int32 msg=kChanged)
 Inform all dependents, that the object has changed.
virtual void deferUpdate (int32 msg=kChanged)
 Similar to triggerUpdates, except only delivered in idle (usefull in collecting updates).
virtual void updateDone (int32)
 empty virtual method that should be overridden by derived classes
virtual bool isEqualInstance (FUnknown *d)

Protected Member Functions

BusListgetBusList (MediaType type, BusDirection dir)
tresult removeAllBusses ()

Protected Attributes

FUID controllerClass
BusList audioInputs
BusList audioOutputs
BusList eventInputs
BusList eventOutputs
Protected Attributes inherited from Steinberg::Vst::ComponentBase
IPtr< FUnknownhostContext
IPtr< IConnectionPointpeerConnection
Protected Attributes inherited from Steinberg::FObject
int32 refCount
 COM-model local reference count.

Additional Inherited Members

Public Types inherited from Steinberg::IDependent
enum  ChangeMessage {
  kWillChange , kChanged , kDestroyed , kWillDestroy ,
  kStdChangeMessageLast = kWillDestroy
}
Static Public Member Functions inherited from Steinberg::FObject
static FClassID getFClassID ()
 return Class ID as an ASCII string (statically)
static void setUpdateHandler (IUpdateHandler *handler)
 set method for the local attribute
static IUpdateHandlergetUpdateHandler ()
 get method for the local attribute
static bool classIDsEqual (FClassID ci1, FClassID ci2)
 compares (evaluates) 2 class IDs
static FObjectunknownToObject (FUnknown *unknown)
 pointer conversion from FUnknown to FObject
Static Public Attributes inherited from Steinberg::FObject
static const FUID iid
Static Public Attributes inherited from Steinberg::IDependent
static const FUID iid
Static Public Attributes inherited from Steinberg::FUnknown
static const FUID iid
Static Public Attributes inherited from Steinberg::IPluginBase
static const FUID iid
Static Public Attributes inherited from Steinberg::Vst::IConnectionPoint
static const FUID iid
Static Public Attributes inherited from Steinberg::Vst::IComponent
static const FUID iid
Static Protected Attributes inherited from Steinberg::FObject
static IUpdateHandlergUpdateHandler = nullptr

Detailed Description

Default implementation for a VST 3 Component.

Can be used as base class for a VST 3 component implementation.

Constructor & Destructor Documentation

◆ Component()

Steinberg::Vst::Component::Component ( )

Constructor

Member Function Documentation

◆ activateBus()

tresult PLUGIN_API Steinberg::Vst::Component::activateBus ( MediaType type,
BusDirection dir,
int32 index,
TBool state )
virtual

Called upon (de-)activating a bus in the host application. The plug-in should only processed an activated bus, the host could provide less see AudioBusBuffers in the process call (see IAudioProcessor::process) if last busses are not activated. An already activated bus does not need to be reactivated after a IAudioProcessor::setBusArrangements call.

Implements Steinberg::Vst::IComponent.

◆ getBusCount()

int32 PLUGIN_API Steinberg::Vst::Component::getBusCount ( MediaType type,
BusDirection dir )
virtual

Called after the plug-in is initialized. See MediaTypes, BusDirections

Implements Steinberg::Vst::IComponent.

◆ getBusInfo()

tresult PLUGIN_API Steinberg::Vst::Component::getBusInfo ( MediaType type,
BusDirection dir,
int32 index,
BusInfo & bus )
virtual

Called after the plug-in is initialized. See MediaTypes, BusDirections

Implements Steinberg::Vst::IComponent.

◆ getBusList()

BusList * Steinberg::Vst::Component::getBusList ( MediaType type,
BusDirection dir )
protected

◆ getControllerClassId()

tresult PLUGIN_API Steinberg::Vst::Component::getControllerClassId ( TUID classId)
virtual

Called before initializing the component to get information about the controller class.

Implements Steinberg::Vst::IComponent.

◆ getRoutingInfo()

tresult PLUGIN_API Steinberg::Vst::Component::getRoutingInfo ( RoutingInfo & inInfo,
RoutingInfo & outInfo )
virtual

Retrieves routing information (to be implemented when more than one regular input or output bus exists). The inInfo always refers to an input bus while the returned outInfo must refer to an output bus!

Implements Steinberg::Vst::IComponent.

◆ getState()

tresult PLUGIN_API Steinberg::Vst::Component::getState ( IBStream * state)
virtual

Retrieves complete state of component.

Implements Steinberg::Vst::IComponent.

◆ initialize()

tresult PLUGIN_API Steinberg::Vst::Component::initialize ( FUnknown * context)
virtual

The host passes a number of interfaces as context to initialize the plug-in class.

Note
Extensive memory allocations etc. should be performed in this method rather than in the class' constructor! If the method does NOT return kResultOk, the object is released immediately. In this case terminate is not called!

Implements Steinberg::IPluginBase.

◆ removeAllBusses()

tresult Steinberg::Vst::Component::removeAllBusses ( )
protected

◆ removeAudioBusses()

tresult Steinberg::Vst::Component::removeAudioBusses ( )

Removes all Audio Busses.

◆ removeEventBusses()

tresult Steinberg::Vst::Component::removeEventBusses ( )

Removes all Event Busses.

◆ renameBus()

tresult Steinberg::Vst::Component::renameBus ( MediaType type,
BusDirection dir,
int32 index,
const String128 newName )

Renames a specific bus. Do not forget to inform the host about this (see IComponentHandler::restartComponent (kIoTitlesChanged)).

◆ setActive()

tresult PLUGIN_API Steinberg::Vst::Component::setActive ( TBool state)
virtual

Activates / deactivates the component.

Implements Steinberg::Vst::IComponent.

◆ setControllerClass()

void Steinberg::Vst::Component::setControllerClass ( const FUID & cid)
inline

Sets the controller Class ID associated to its component.

◆ setIoMode()

tresult PLUGIN_API Steinberg::Vst::Component::setIoMode ( IoMode mode)
virtual

Called before 'initialize' to set the component usage (optional). See IoModes

Implements Steinberg::Vst::IComponent.

◆ setState()

tresult PLUGIN_API Steinberg::Vst::Component::setState ( IBStream * state)
virtual

Sets complete state of component.

Implements Steinberg::Vst::IComponent.

◆ terminate()

tresult PLUGIN_API Steinberg::Vst::Component::terminate ( )
virtual

This function is called before the plug-in is unloaded and can be used for cleanups. You have to release all references to any host application interfaces.

Implements Steinberg::IPluginBase.

Member Data Documentation

◆ audioInputs

BusList Steinberg::Vst::Component::audioInputs
protected

◆ audioOutputs

BusList Steinberg::Vst::Component::audioOutputs
protected

◆ controllerClass

FUID Steinberg::Vst::Component::controllerClass
protected

◆ eventInputs

BusList Steinberg::Vst::Component::eventInputs
protected

◆ eventOutputs

BusList Steinberg::Vst::Component::eventOutputs
protected

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