77 fUpdateQueue{std::make_unique<T>(iParamDef->fDefaultValue), true}
101 template<ElementModifier<T> Modifier>
113 template<ElementPredicate<T> Modifier>
141 tresult res =
getParamDefT()->writeToMessage(*update, oMessage);
145 disposable->dispose();
175 DCHECK_F(
fPtr !=
nullptr);
191 template<ElementModifier<T> Modifier>
192 void broadcast(Modifier
const &iElementModifier) {
fPtr->broadcast(iElementModifier); }
199 template<ElementPredicate<T> Modifier>
200 bool broadcastIf(Modifier
const &iElementModifier) {
return fPtr->broadcastIf(iElementModifier); }
207template<
typename T,
size_t N>
This is the lock free version of the SingleElementQueue.
Definition Concurrent.h:162
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:43
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
bool broadcastIf(Modifier const &iElementModifier)
Enqueues the value to be delivered to the GUI (or whoever is listening to messages).
Definition RTJmbOutParameter.h:200
RTJmbOutParameter< T > * fPtr
Definition RTJmbOutParameter.h:203
ParamID getParamID() const
Definition RTJmbOutParameter.h:179
void broadcast(Modifier const &iElementModifier)
Enqueues the value to be delivered to the GUI (or whoever is listening to messages).
Definition RTJmbOutParameter.h:192
void broadcast(T const &iValue)
Enqueues the value to be delivered to the GUI (or whoever is listening to messages).
Definition RTJmbOutParameter.h:185
RTJmbOutParam(RTJmbOutParameter< T > *iPtr)
Definition RTJmbOutParameter.h:173
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
bool broadcastIf(Modifier const &iElementModifier)
Enqueues the value to be delivered to the GUI (or whoever is listening to messages).
Definition RTJmbOutParameter.h:114
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
T ParamType
Definition RTJmbOutParameter.h:73
void broadcast(Modifier const &iElementModifier)
Enqueues the value to be delivered to the GUI (or whoever is listening to messages).
Definition RTJmbOutParameter.h:102
void writeToStream(std::ostream &oStream) const override
Definition RTJmbOutParameter.h:157
constexpr To safe_dynamic_cast(From *p) noexcept
dynamic_cast<U *>(x) does not compile if x is not polymorphic.
Definition Metaprogramming.h:41
Definition RTJmbInParameter.h:26
std::array< RTJmbOutParam< T >, N > RTJmbOutParams
An array of RTJmbOutParam.
Definition RTJmbOutParameter.h:208