77 fUpdateQueue{std::make_unique<T>(iParamDef->fDefaultValue), true}
101 template<
class ElementModifier>
113 template<
class ElementModifier>
141 tresult res =
getParamDefT()->writeToMessage(*update, oMessage);
146 disposable->dispose();
176 DCHECK_F(
fPtr !=
nullptr);
192 template<
class ElementModifier>
193 void broadcast(ElementModifier
const &iElementModifier) {
fPtr->broadcast(iElementModifier); }
200 template<
class ElementModifier>
201 bool broadcastIf(ElementModifier
const &iElementModifier) {
return fPtr->broadcastIf(iElementModifier); }
207template<
typename T,
size_t N>
static U dynamic(T *iPtr)
Definition Metaprogramming.h:38
This is the lock free version of the SingleElementQueue.
Definition Concurrent.h:150
Base class for jamba parameters (non templated).
Definition ParamDef.h:281
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
IJmbParamDef const * getParamDef() const
Definition RTJmbOutParameter.h:41
virtual void writeToStream(std::ostream &oStream) const =0
ParamID getParamID() const
Definition RTJmbOutParameter.h:44
std::shared_ptr< IJmbParamDef > fParamDef
Definition RTJmbOutParameter.h:59
virtual ~IRTJmbOutParameter()=default
virtual bool hasUpdate() const =0
IRTJmbOutParameter(std::shared_ptr< IJmbParamDef > iParamDef)
Definition RTJmbOutParameter.h:38
virtual tresult writeToMessage(Message &oMessage)=0
RTJmbOutParameter< T > * fPtr
Definition RTJmbOutParameter.h:204
ParamID getParamID() const
Definition RTJmbOutParameter.h:180
void broadcast(ElementModifier const &iElementModifier)
Enqueues the value to be delivered to the GUI (or whoever is listening to messages).
Definition RTJmbOutParameter.h:193
bool broadcastIf(ElementModifier const &iElementModifier)
Enqueues the value to be delivered to the GUI (or whoever is listening to messages).
Definition RTJmbOutParameter.h:201
void broadcast(T const &iValue)
Enqueues the value to be delivered to the GUI (or whoever is listening to messages).
Definition RTJmbOutParameter.h:186
RTJmbOutParam(RTJmbOutParameter< T > *iPtr)
Definition RTJmbOutParameter.h:174
Templated class for RT Jamba parameter.
Definition RTJmbOutParameter.h:71
tresult writeToMessage(Message &oMessage) override
Definition RTJmbOutParameter.h:136
bool hasUpdate() const override
Definition RTJmbOutParameter.h:120
void broadcastValue(ParamType const &iValue)
Enqueues the value to be delivered to the GUI (or whoever is listening to messages).
Definition RTJmbOutParameter.h:91
Concurrent::LockFree::SingleElementQueue< T > fUpdateQueue
Definition RTJmbOutParameter.h:129
RTJmbOutParameter(std::shared_ptr< JmbParamDef< T > > iParamDef)
Definition RTJmbOutParameter.h:75
JmbParamDef< T > const * getParamDefT() const
Definition RTJmbOutParameter.h:81
void broadcast(ElementModifier const &iElementModifier)
Enqueues the value to be delivered to the GUI (or whoever is listening to messages).
Definition RTJmbOutParameter.h:102
T ParamType
Definition RTJmbOutParameter.h:73
bool broadcastIf(ElementModifier const &iElementModifier)
Enqueues the value to be delivered to the GUI (or whoever is listening to messages).
Definition RTJmbOutParameter.h:114
void writeToStream(std::ostream &oStream) const override
Definition RTJmbOutParameter.h:158
Definition RTJmbInParameter.h:26
std::array< RTJmbOutParam< T >, N > RTJmbOutParams
Definition RTJmbOutParameter.h:208