21#include <base/source/timer.h>
22#include <public.sdk/source/vst/vstaudioeffect.h>
29using namespace Steinberg;
30using namespace Steinberg::Vst;
40 explicit RTProcessor(Steinberg::FUID
const &iControllerUID);
50 tresult PLUGIN_API
initialize(FUnknown *context)
override;
53 tresult PLUGIN_API
setActive(TBool state)
override;
56 tresult PLUGIN_API
process(ProcessData &data)
override;
62 tresult PLUGIN_API
setState(IBStream *state)
override;
65 tresult PLUGIN_API
getState(IBStream *state)
override;
68 tresult PLUGIN_API
notify(IMessage *message) SMTG_OVERRIDE;
113 template<
typename Rep,
typename Period>
116 enableGUITimer(std::chrono::duration_cast<std::chrono::milliseconds>(iUIFrameRate).count());
132 tresult
sendMessage(IPtr<IMessage> iMessage)
override;
167#ifdef JAMBA_DEBUG_LOGGING
168 int32 fSymbolicSampleSize = -1;
Abstraction for allocating and sending a message.
Definition MessageProducer.h:34
Definition RTProcessor.h:139
void onTimer(Timer *timer) override
Definition RTProcessor.h:144
RTProcessor * fProcessor
Definition RTProcessor.h:149
GUITimerCallback(RTProcessor *iProcessor, RTProcessorCallback iCallback)
Definition RTProcessor.h:141
RTProcessorCallback fCallback
Definition RTProcessor.h:150
tresult PLUGIN_API setState(IBStream *state) override
Restore the state (ex: after loading preset or project).
Definition RTProcessor.cpp:165
tresult PLUGIN_API process(ProcessData &data) override
Here we go...the process call.
Definition RTProcessor.cpp:85
GUITimerCallback fGUIMessageTimerCallback
Definition RTProcessor.h:162
tresult PLUGIN_API initialize(FUnknown *context) override
Called at first after constructor (setup input/output).
Definition RTProcessor.cpp:189
virtual void sendPendingMessages()
Called (from a GUI timer) to send the messages to the GUI (JmbParam for the moment).
Definition RTProcessor.h:121
std::unique_ptr< AutoReleaseTimer > fGUITimer
Definition RTProcessor.h:159
bool fActive
Definition RTProcessor.h:165
tresult PLUGIN_API getState(IBStream *state) override
Called to save the state (before saving a preset or project).
Definition RTProcessor.cpp:177
std::unique_ptr< AutoReleaseTimer > fGUIMessageTimer
Definition RTProcessor.h:163
virtual RTState * getRTState()=0
Subclasses must implement this method to return the state.
virtual void onGUITimer()
Subclass will implement this method to respond to the GUI timer firing /////// WARNING !
Definition RTProcessor.h:101
tresult PLUGIN_API notify(IMessage *message) SMTG_OVERRIDE
Called to handle a message (coming from GUI).
Definition RTProcessor.cpp:72
uint32 fGUITimerIntervalMs
Definition RTProcessor.h:158
tresult PLUGIN_API setActive(TBool state) override
Switch the Plug-in on/off.
Definition RTProcessor.cpp:40
tresult PLUGIN_API canProcessSampleSize(int32 symbolicSampleSize) override
Asks if a given sample size is supported see SymbolicSampleSizes.
Definition RTProcessor.cpp:142
RTProcessor(Steinberg::FUID const &iControllerUID)
Definition RTProcessor.cpp:26
void enableGUITimer(std::chrono::duration< Rep, Period > iUIFrameRate)
Call this method to enable the GUI timer (onGUITimer will be called at the specified frequency) Shoul...
Definition RTProcessor.h:114
virtual tresult processInputs32Bits(ProcessData &data)
Processes inputs (step 2 always called after processing the parameters) for 32 bits.
Definition RTProcessor.h:88
virtual bool canProcess32Bits() const
Definition RTProcessor.h:73
virtual bool canProcess64Bits() const
Definition RTProcessor.h:77
virtual tresult processInputs(ProcessData &data)
Processes inputs (step 2 always called after processing the parameters) Delegate to processInputs32Bi...
Definition RTProcessor.cpp:110
void(RTProcessor::*)() RTProcessorCallback
Definition RTProcessor.h:135
~RTProcessor() override=default
IPtr< IMessage > allocateMessage() override
Allocates a message instance.
Definition RTProcessor.cpp:202
GUITimerCallback fGUITimerCallback
Definition RTProcessor.h:157
void enableGUITimer(uint32 iUIFrameRateMs)
Call this method to enable the GUI timer (onGUITimer will be called at the specified frequency) Shoul...
Definition RTProcessor.cpp:157
virtual tresult processInputs64Bits(ProcessData &data)
Processes inputs (step 2 always called after processing the parameters) for 64 bits.
Definition RTProcessor.h:93
uint32 fGUIMessageTimerIntervalMs
Definition RTProcessor.h:125
tresult sendMessage(IPtr< IMessage > iMessage) override
Sends the given message to the peer.
Definition RTProcessor.cpp:210
Manages the state used by the processor: you add all the parameters that the state manages using the ...
Definition RTState.h:45
virtual tresult sendPendingMessages(IMessageProducer *iMessageProducer)
Called (from a GUI timer) to send the messages to the GUI (JmbParam for the moment).
Definition RTState.cpp:334
Definition RTJmbInParameter.h:26