Jamba C++ API  5.0.0
RTProcessor Class Referenceabstract

Base class from which the actual processor inherits from. More...

#include <RTProcessor.h>

Inherits AudioEffect, and IMessageProducer.

Classes

class  GUITimerCallback
 

Public Member Functions

IPtr< IMessage > allocateMessage () override
 Allocates a message instance. More...
 
tresult PLUGIN_API canProcessSampleSize (int32 symbolicSampleSize) override
 Asks if a given sample size is supported see SymbolicSampleSizes. More...
 
virtual RTStategetRTState ()=0
 Subclasses must implement this method to return the state. More...
 
tresult PLUGIN_API getState (IBStream *state) override
 Called to save the state (before saving a preset or project) More...
 
tresult PLUGIN_API initialize (FUnknown *context) override
 Called at first after constructor (setup input/output) More...
 
tresult PLUGIN_API notify (IMessage *message) SMTG_OVERRIDE
 Called to handle a message (coming from GUI) More...
 
tresult PLUGIN_API process (ProcessData &data) override
 Here we go...the process call. More...
 
 RTProcessor (Steinberg::FUID const &iControllerUID)
 
tresult sendMessage (IPtr< IMessage > iMessage) override
 Sends the given message to the peer. More...
 
tresult PLUGIN_API setActive (TBool state) override
 Switch the Plug-in on/off. More...
 
tresult PLUGIN_API setState (IBStream *state) override
 Restore the state (ex: after loading preset or project) More...
 
 ~RTProcessor () override=default
 
- Public Member Functions inherited from IMessageProducer
virtual ~IMessageProducer ()=default
 

Protected Member Functions

virtual bool canProcess32Bits () const
 
virtual bool canProcess64Bits () const
 
void enableGUITimer (uint32 iUIFrameRateMs)
 Call this method to enable the GUI timer (onGUITimer will be called at the specified frequency) Should be called in the constructor or setupProcessing method as it will take effect in setActive. More...
 
virtual void onGUITimer ()
 Subclass will implement this method to respond to the GUI timer firing /////// WARNING !!!!! WARNING !!!!! WARNING !!!!! WARNING !!!!! WARNING !!!!! WARNING !!!!! ////// /////// this method WILL be called from the UI thread so do not modify the processor state ////// /////// WARNING !!!!! WARNING !!!!! WARNING !!!!! WARNING !!!!! WARNING !!!!! WARNING !!!!! //////. More...
 
virtual tresult processInputs (ProcessData &data)
 Processes inputs (step 2 always called after processing the parameters) Delegate to processInputs32Bits or processInputs64Bits accordingly. More...
 
virtual tresult processInputs32Bits (ProcessData &data)
 Processes inputs (step 2 always called after processing the parameters) for 32 bits. More...
 
virtual tresult processInputs64Bits (ProcessData &data)
 Processes inputs (step 2 always called after processing the parameters) for 64 bits. More...
 
virtual void sendPendingMessages ()
 Called (from a GUI timer) to send the messages to the GUI (JmbParam for the moment) More...
 

Protected Attributes

uint32 fGUIMessageTimerIntervalMs
 

Private Types

using RTProcessorCallback = void(RTProcessor::*)()
 

Private Attributes

bool fActive
 
std::unique_ptr< AutoReleaseTimerfGUIMessageTimer
 
GUITimerCallback fGUIMessageTimerCallback {this, &RTProcessor::sendPendingMessages}
 
std::unique_ptr< AutoReleaseTimerfGUITimer
 
GUITimerCallback fGUITimerCallback {this, &RTProcessor::onGUITimer}
 
uint32 fGUITimerIntervalMs
 

Detailed Description

Base class from which the actual processor inherits from.

Handles most of the "framework" logic, (state loading/saving in a thread safe manner, setting up GUI thread if messaging to the GUI is required, etc...) so that the actual processor code deals mostly with business logic.

Member Typedef Documentation

◆ RTProcessorCallback

using RTProcessorCallback = void (RTProcessor::*)()
private

Constructor & Destructor Documentation

◆ RTProcessor()

RTProcessor ( Steinberg::FUID const &  iControllerUID)
explicit

◆ ~RTProcessor()

~RTProcessor ( )
overridedefault

Member Function Documentation

◆ allocateMessage()

IPtr< IMessage > allocateMessage ( )
overridevirtual

Allocates a message instance.

Implements IMessageProducer.

◆ canProcess32Bits()

virtual bool canProcess32Bits ( ) const
inlineprotectedvirtual
Returns
true if you can handle 32 bits (true buy default)

◆ canProcess64Bits()

virtual bool canProcess64Bits ( ) const
inlineprotectedvirtual
Returns
true if you can handle 64 bits (true buy default)

◆ canProcessSampleSize()

tresult canProcessSampleSize ( int32  symbolicSampleSize)
override

Asks if a given sample size is supported see SymbolicSampleSizes.

◆ enableGUITimer()

void enableGUITimer ( uint32  iUIFrameRateMs)
protected

Call this method to enable the GUI timer (onGUITimer will be called at the specified frequency) Should be called in the constructor or setupProcessing method as it will take effect in setActive.

◆ getRTState()

virtual RTState* getRTState ( )
pure virtual

Subclasses must implement this method to return the state.

◆ getState()

tresult getState ( IBStream *  state)
override

Called to save the state (before saving a preset or project)

◆ initialize()

tresult initialize ( FUnknown *  context)
override

Called at first after constructor (setup input/output)

◆ notify()

tresult notify ( IMessage *  message)

Called to handle a message (coming from GUI)

◆ onGUITimer()

virtual void onGUITimer ( )
inlineprotectedvirtual

Subclass will implement this method to respond to the GUI timer firing /////// WARNING !!!!! WARNING !!!!! WARNING !!!!! WARNING !!!!! WARNING !!!!! WARNING !!!!! ////// /////// this method WILL be called from the UI thread so do not modify the processor state ////// /////// WARNING !!!!! WARNING !!!!! WARNING !!!!! WARNING !!!!! WARNING !!!!! WARNING !!!!! //////.

◆ process()

tresult process ( ProcessData &  data)
override

Here we go...the process call.

◆ processInputs()

tresult processInputs ( ProcessData &  data)
protectedvirtual

Processes inputs (step 2 always called after processing the parameters) Delegate to processInputs32Bits or processInputs64Bits accordingly.

◆ processInputs32Bits()

virtual tresult processInputs32Bits ( ProcessData &  data)
inlineprotectedvirtual

Processes inputs (step 2 always called after processing the parameters) for 32 bits.

◆ processInputs64Bits()

virtual tresult processInputs64Bits ( ProcessData &  data)
inlineprotectedvirtual

Processes inputs (step 2 always called after processing the parameters) for 64 bits.

◆ sendMessage()

tresult sendMessage ( IPtr< IMessage >  iMessage)
overridevirtual

Sends the given message to the peer.

Implements IMessageProducer.

◆ sendPendingMessages()

virtual void sendPendingMessages ( )
inlineprotectedvirtual

Called (from a GUI timer) to send the messages to the GUI (JmbParam for the moment)

◆ setActive()

tresult setActive ( TBool  state)
override

Switch the Plug-in on/off.

◆ setState()

tresult setState ( IBStream *  state)
override

Restore the state (ex: after loading preset or project)

Member Data Documentation

◆ fActive

bool fActive
private

◆ fGUIMessageTimer

std::unique_ptr<AutoReleaseTimer> fGUIMessageTimer
private

◆ fGUIMessageTimerCallback

GUITimerCallback fGUIMessageTimerCallback {this, &RTProcessor::sendPendingMessages}
private

◆ fGUIMessageTimerIntervalMs

uint32 fGUIMessageTimerIntervalMs
protected

◆ fGUITimer

std::unique_ptr<AutoReleaseTimer> fGUITimer
private

◆ fGUITimerCallback

GUITimerCallback fGUITimerCallback {this, &RTProcessor::onGUITimer}
private

◆ fGUITimerIntervalMs

uint32 fGUITimerIntervalMs
private

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