Jamba C++ API 7.5.0
Loading...
Searching...
No Matches
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).
template<class ElementModifier>
bool broadcastIf (ElementModifier const &iElementModifier)
 Enqueues the value to be delivered to the GUI (or whoever is listening to messages).
void broadcastValue (ParamType const &iValue)
 Enqueues the value to be delivered to the GUI (or whoever is listening to messages).
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< IJmbParamDeffParamDef

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

template<typename T>
using ParamType = T

Constructor & Destructor Documentation

◆ RTJmbOutParameter()

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

Member Function Documentation

◆ broadcast()

template<typename T>
template<class ElementModifier>
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()

template<typename T>
template<class ElementModifier>
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()

template<typename T>
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()

template<typename T>
JmbParamDef< T > const * getParamDefT ( ) const
inline

◆ hasUpdate()

template<typename T>
bool hasUpdate ( ) const
inlineoverridevirtual

Implements IRTJmbOutParameter.

◆ writeToMessage()

template<typename T>
tresult writeToMessage ( Message & oMessage)
overridevirtual

Implements IRTJmbOutParameter.

◆ writeToStream()

template<typename T>
void writeToStream ( std::ostream & oStream) const
overridevirtual

Implements IRTJmbOutParameter.

Member Data Documentation

◆ fUpdateQueue

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

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