Jamba  3.0.2
pongasoft::VST::RT::RTJmbOutParameter< T > Class Template Reference

#include <RTJmbOutParameter.h>

Inherits pongasoft::VST::RT::IRTJmbOutParameter.

Public Types

using ParamType = T
 

Public Member Functions

template<class ElementModifier >
void broadcast (ElementModifier const &iElementModifier)
 
template<class ElementModifier >
bool broadcastIf (ElementModifier const &iElementModifier)
 
void broadcastValue (ParamType const &iValue)
 
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 pongasoft::VST::RT::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 pongasoft::VST::RT::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 pongasoft::VST::RT::RTJmbOutParameter< T >::ParamType = T

Constructor & Destructor Documentation

◆ RTJmbOutParameter()

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

Member Function Documentation

◆ broadcast()

template<typename T>
template<class ElementModifier >
void pongasoft::VST::RT::RTJmbOutParameter< T >::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 pongasoft::VST::RT::RTJmbOutParameter< T >::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 pongasoft::VST::RT::RTJmbOutParameter< T >::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* pongasoft::VST::RT::RTJmbOutParameter< T >::getParamDefT ( ) const
inline

◆ hasUpdate()

template<typename T>
bool pongasoft::VST::RT::RTJmbOutParameter< T >::hasUpdate ( ) const
inlineoverridevirtual

◆ writeToMessage()

template<typename T >
tresult pongasoft::VST::RT::RTJmbOutParameter< T >::writeToMessage ( Message oMessage)
overridevirtual

◆ writeToStream()

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

Member Data Documentation

◆ fUpdateQueue

template<typename T>
Concurrent::LockFree::SingleElementQueue<T> pongasoft::VST::RT::RTJmbOutParameter< T >::fUpdateQueue {}
private

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