Jamba C++ API  5.1.1
RTJmbOutParameter< T > Class Template Reference

Templated class for RT Jamba parameter. More...

#include <RTJmbOutParameter.h>

Inherits IRTJmbOutParameter.

Public Types

using ParamType = T
 

Public Member Functions

template<class ElementModifier >
void broadcast (ElementModifier const &iElementModifier)
 Enqueues the value to be delivered to the GUI (or whoever is listening to messages). More...
 
template<class ElementModifier >
bool broadcastIf (ElementModifier const &iElementModifier)
 Enqueues the value to be delivered to the GUI (or whoever is listening to messages). More...
 
void broadcastValue (ParamType const &iValue)
 Enqueues the value to be delivered to the GUI (or whoever is listening to messages). More...
 
JmbParamDef< T > const * getParamDefT () const
 
bool hasUpdate () const override
 
 RTJmbOutParameter (std::shared_ptr< JmbParamDef< T >> iParamDef)
 
tresult writeToMessage (Message &oMessage) override
 
void writeToStream (std::ostream &oStream) const override
 
- Public Member Functions inherited from IRTJmbOutParameter
IJmbParamDef const * getParamDef () const
 
ParamID getParamID () const
 
 IRTJmbOutParameter (std::shared_ptr< IJmbParamDef > iParamDef)
 
virtual ~IRTJmbOutParameter ()=default
 

Private Attributes

Concurrent::LockFree::SingleElementQueue< T > fUpdateQueue {}
 

Additional Inherited Members

- Protected Attributes inherited from IRTJmbOutParameter
std::shared_ptr< IJmbParamDef > fParamDef
 

Detailed Description

template<typename T>
class pongasoft::VST::RT::RTJmbOutParameter< T >

Templated class for RT Jamba parameter.

The RT code calls enqueueUpdate when a new value needs to be propagated to its peer (GUI). A GUI timer will then pop the value from the queue, serialize it, wrap it in a message and send it to the GUI.

Template Parameters
T

Member Typedef Documentation

◆ ParamType

using ParamType = T

Constructor & Destructor Documentation

◆ RTJmbOutParameter()

RTJmbOutParameter ( std::shared_ptr< JmbParamDef< T >>  iParamDef)
inlineexplicit

Member Function Documentation

◆ broadcast()

void broadcast ( ElementModifier const &  iElementModifier)
inline

Enqueues the value to be delivered to the GUI (or whoever is listening to messages).

Note that this call returns right away. The packaging and delivery will happen in a GUI thread. This method is called by RT thread. Use this flavor to avoid copy.

◆ broadcastIf()

bool broadcastIf ( ElementModifier const &  iElementModifier)
inline

Enqueues the value to be delivered to the GUI (or whoever is listening to messages).

Note that this call returns right away. The packaging and delivery will happen in a GUI thread. This method is called by RT thread. Use this flavor to avoid copy. This flavor uses a callback that returns true when the broadcast should happen and false otherwise.

◆ broadcastValue()

void broadcastValue ( ParamType const &  iValue)
inline

Enqueues the value to be delivered to the GUI (or whoever is listening to messages).

Note that this call returns right away. The packaging and delivery will happen in a GUI thread. This method is called by RT thread.

◆ getParamDefT()

JmbParamDef<T> const* getParamDefT ( ) const
inline

◆ hasUpdate()

bool hasUpdate ( ) const
inlineoverridevirtual

Implements IRTJmbOutParameter.

◆ writeToMessage()

tresult writeToMessage ( Message oMessage)
overridevirtual

Implements IRTJmbOutParameter.

◆ writeToStream()

void writeToStream ( std::ostream &  oStream) const
overridevirtual

Implements IRTJmbOutParameter.

Member Data Documentation

◆ fUpdateQueue

Concurrent::LockFree::SingleElementQueue<T> fUpdateQueue {}
private

The documentation for this class was generated from the following file: