78 fUpdateQueue{std::make_unique<T>(iParamDef->fDefaultValue), true}
115 bool res =
fUpdateQueue.updateAndPushIf([
this, &iMessage](
auto oUpdate) ->
bool {
116 return getParamDefT()->readFromMessage(iMessage, *oUpdate) == kResultOk;
119 return res ? kResultOk : kResultFalse;
146 DCHECK_F(
fPtr !=
nullptr);
156 inline T
const *
last()
const {
return fPtr->last(); }
171 inline operator T
const &()
const {
return *
fPtr->last(); }
180template<
typename T,
size_t N>
This is the lock free version of the SingleElementQueue.
Definition Concurrent.h:150
Base class for jamba parameters (non templated).
Definition ParamDef.h:281
Interface defining a message handler.
Definition MessageHandler.h:32
Base class for all non vst parameters (need to provide serialization/deserialization).
Definition ParamDef.h:318
Simple wrapper class with better api.
Definition Messaging.h:46
tresult handleMessage(Message const &iMessage) override
Definition RTJmbInParameter.h:55
IJmbParamDef const * getParamDef() const
Definition RTJmbInParameter.h:40
virtual tresult readFromMessage(Message const &iMessage)=0
virtual void writeToStream(std::ostream &oStream) const =0
~IRTJmbInParameter() override=default
ParamID getParamID() const
Definition RTJmbInParameter.h:43
std::shared_ptr< IJmbParamDef > fParamDef
Definition RTJmbInParameter.h:61
IRTJmbInParameter(std::shared_ptr< IJmbParamDef > iParamDef)
Definition RTJmbInParameter.h:37
virtual bool hasUpdate() const =0
RTJmbInParameter< T > * fPtr
Definition RTJmbInParameter.h:177
bool hasUpdate() const
Definition RTJmbInParameter.h:162
T const * popOrLast()
Definition RTJmbInParameter.h:159
T * pop()
Definition RTJmbInParameter.h:153
RTJmbInParam(RTJmbInParameter< T > *iPtr)
Definition RTJmbInParameter.h:144
ParamID getParamID() const
Definition RTJmbInParameter.h:150
T const * operator->() const
Definition RTJmbInParameter.h:174
T const * last() const
Definition RTJmbInParameter.h:156
T const & value() const
Definition RTJmbInParameter.h:168
T const & getValue() const
Definition RTJmbInParameter.h:165
Templated class for RT Jamba Inbound parameter.
Definition RTJmbInParameter.h:72
ParamType const * last() const
Definition RTJmbInParameter.h:91
bool hasUpdate() const override
Definition RTJmbInParameter.h:97
ParamType * pop()
Definition RTJmbInParameter.h:88
ParamType const * popOrLast()
Definition RTJmbInParameter.h:94
Concurrent::LockFree::SingleElementQueue< T > fUpdateQueue
Definition RTJmbInParameter.h:106
JmbParamDef< T > const * getParamDefT() const
Definition RTJmbInParameter.h:82
T ParamType
Definition RTJmbInParameter.h:74
RTJmbInParameter(std::shared_ptr< JmbParamDef< T > > iParamDef)
Definition RTJmbInParameter.h:76
tresult readFromMessage(Message const &iMessage) override
Definition RTJmbInParameter.h:113
void writeToStream(std::ostream &oStream) const override
Definition RTJmbInParameter.h:126
Definition CircularBuffer.h:26
Definition RTJmbInParameter.h:26
std::array< RTJmbInParam< T >, N > RTJmbInParams
Definition RTJmbInParameter.h:181