34 namespace Debug {
class ParamDisplay; }
37 using namespace Utils;
75 template<
typename T,
size_t N>
87 template<
typename T,
size_t N>
99 template<
typename T,
size_t N>
104 virtual tresult init();
113 virtual bool beforeProcessing();
118 virtual bool applyParameterChanges(IParameterChanges &inputParameterChanges);
126 virtual int32 getParamUpdateSampleOffset(ProcessData &iData, ParamID iParamID)
const;
132 virtual void afterProcessing();
138 virtual tresult readNewState(IBStreamer &iStreamer);
144 virtual tresult writeLatestState(IBStreamer &oStreamer);
157 tresult handleMessage(
Message const &iMessage)
override;
170 std::map<ParamID, std::unique_ptr<RTRawVstParameter>> fVstParameters{};
173 std::map<ParamID, std::unique_ptr<IRTJmbOutParameter>> fOutboundMessagingParameters{};
176 std::map<ParamID, std::unique_ptr<IRTJmbInParameter>> fInboundMessagingParameters{};
179 std::vector<ParamID> fAllRegistrationOrder{};
186 tresult addRawParameter(std::unique_ptr<RTRawVstParameter> iParameter);
189 tresult addOutboundMessagingParameter(std::unique_ptr<IRTJmbOutParameter> iParameter);
192 tresult addInboundMessagingParameter(std::unique_ptr<IRTJmbInParameter> iParameter);
205 virtual bool resetPreviousValues();
222 void computeLatestState();
246 std::unique_ptr<RTRawVstParameter> rtParam{rawPtr};
247 addRawParameter(std::move(rtParam));
257 return stl::transform<RTRawVstParam, RawVstParam>(iParamDefs, [
this](
auto &p) {
return add(p); });
263 template<
typename T,
size_t N>
266 return stl::transform<VstParam<T>,
RTVstParam<T>>(iParamDefs, [
this](
auto &p) {
return add(p); });
277 std::unique_ptr<IRTJmbOutParameter> rtParam{rawPtr};
278 addOutboundMessagingParameter(std::move(rtParam));
285 template<
typename T,
size_t N>
288 return stl::transform<RTJmbOutParam<T>, JmbParam<T>>(iParamDefs, [
this](
auto &p) {
return addJmbOut(p); });
299 std::unique_ptr<IRTJmbInParameter> rtParam{rawPtr};
300 addInboundMessagingParameter(std::move(rtParam));
301 fMessageHandler.registerHandler(iParamDef->fParamID, rawPtr);
308 template<
typename T,
size_t N>
311 return stl::transform<RTJmbInParam<T>, JmbParam<T>>(iParamDefs, [
this](
auto &p) {
return addJmbIn(p); });
std::array< RTJmbInParam< T >, N > RTJmbInParams
Definition: RTJmbInParameter.h:180
This is the main class that the plugin should use as it exposes only the necessary methods of the par...
Definition: RTJmbOutParameter.h:170
Templated class for RT Jamba parameter.
Definition: RTJmbOutParameter.h:69
This is the class which maintains all the registered parameters.
Definition: Parameters.h:37
This is the main class that the plugin should use as it exposes only the necessary methods of the par...
Definition: RTParameter.h:190
std::array< RTRawVstParam, N > RTRawVstParams
Definition: RTParameter.h:342
This is the lock free version of the AtomicValue.
Definition: Concurrent.h:317
RTJmbOutParam< T > addJmbOut(JmbParam< T > iParamDef)
This method should be called to add an rt outbound jmb parameter.
Definition: RTState.h:273
Abstraction for allocating and sending a message.
Definition: MessageProducer.h:33
This helper class is used to display the parameters (vst/jmb) WARNING: this class is allocating memor...
Definition: ParamDisplay.h:33
virtual void afterReadNewState(NormalizedState const *iState)
Gives a chance to subclasses to tweak and/or display the state after being read.
Definition: RTState.h:214
Simple wrapper class with better api.
Definition: Messaging.h:44
This is the main class that the plugin should use as it exposes only the necessary methods of the par...
Definition: RTJmbInParameter.h:140
Interface defining a message handler.
Definition: MessageHandler.h:30
std::shared_ptr< RawVstParamDef > RawVstParam
Definition: ParamDef.h:509
Manages the state used by the processor: you add all the parameters that the state manages using the ...
Definition: RTState.h:44
Used to communicate the state between the UI and the RT and read/write to stream.
Definition: NormalizedState.h:37
virtual void beforeWriteNewState(NormalizedState const *iState)
Gives a chance to subclasses to tweak and/or display the state before being written.
Definition: RTState.h:218
bool isMessagingEnabled() const
Definition: RTState.h:148
std::vector< ParamID > const & getAllRegistrationOrder() const
Definition: RTState.h:160
std::array< RTVstParam< T >, N > RTVstParams
Definition: RTParameter.h:266
Templated class for RT Jamba Inbound parameter.
Definition: RTJmbInParameter.h:70
std::array< RTJmbOutParam< T >, N > RTJmbOutParams
Definition: RTJmbOutParameter.h:207
RTRawVstParam add(RawVstParam iParamDef)
This method is called for each parameter managed by RTState.
Definition: RTState.cpp:35
Concurrent::LockFree::AtomicValue< NormalizedState > fLatestState
Definition: RTState.h:231
Simple implementation of IMessageHandler which will delegate the message handling based on MessageID.
Definition: MessageHandler.h:39
This is the main class that the plugin should use as it exposes only the necessary methods of the par...
Definition: RTParameter.h:275
Parameters const & fPluginParameters
Definition: RTState.h:167
RTJmbInParam< T > addJmbIn(JmbParam< T > iParamDef)
This method should be called to add an rt inbound jmb parameter.
Definition: RTState.h:295
The typed version.
Definition: RTParameter.h:91
Concurrent::LockFree::SingleElementQueue< NormalizedState > fStateUpdate
Definition: RTState.h:227
This is the lock free version of the SingleElementQueue.
Definition: Concurrent.h:148