Jamba  3.0.2
pongasoft::VST::GUI::Params::GUIParamCxAware Class Reference

#include <GUIParamCxAware.h>

Inherits pongasoft::VST::Parameters::IChangeListener.

Inherited by pongasoft::VST::GUI::Views::CustomViewAdapter< CTextButton >, pongasoft::VST::GUI::Views::CustomViewAdapter< TextEdit >, pongasoft::VST::GUI::Params::ViewGUIParamCxAware< TView >, pongasoft::VST::GUI::Views::CustomController, pongasoft::VST::GUI::Views::CustomView, and pongasoft::VST::GUI::Views::CustomViewAdapter< TView >.

Public Member Functions

bool __internal__registerRawVstControl (int32_t iParamID, ParamValue &oControlValue, GUIRawVstParam &oGUIRawVstParam)
 
template<typename T >
bool __internal__registerVstControl (int32_t iParamID, T &oControlValue, GUIVstParam< T > &oGUIVstParam)
 
virtual void initState (GUIState *iGUIState)
 
void invokeAll ()
 
void onParameterChange (ParamID iParamID) override
 
GUIRawVstParam registerCallback (RawVstParam const &iParamDef, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
 
template<typename T >
GUIVstParam< T > registerCallback (VstParam< T > const &iParamDef, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
 
template<typename T >
bool registerCallback (VstParam< T > const &iParamDef, Parameters::ChangeCallback1< GUIVstParam< T >> iChangeCallback, bool iInvokeCallback=false)
 
template<typename T >
GUIJmbParam< T > registerCallback (GUIJmbParam< T > &iParamDef, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
 
template<typename T >
bool registerCallback (GUIJmbParam< T > &iParamDef, Parameters::ChangeCallback1< GUIJmbParam< T >> iChangeCallback, bool iInvokeCallback=false)
 
template<typename T >
GUIJmbParam< T > registerJmbCallback (ParamID iParamID, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
 
template<typename T >
GUIJmbParam< T > registerJmbParam (ParamID iParamID, bool iSubscribeToChanges=true)
 
GUIRawVstParam registerParam (RawVstParam const &iParamDef, bool iSubscribeToChanges=true)
 
template<typename T >
GUIVstParam< T > registerParam (VstParam< T > const &iParamDef, bool iSubscribeToChanges=true)
 
template<typename T >
GUIJmbParam< T > registerParam (GUIJmbParam< T > &iParamDef)
 
virtual void registerParameters ()
 
GUIRawVstParam registerRawVstCallback (ParamID iParamID, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
 
GUIRawVstParam registerRawVstParam (ParamID iParamID, bool iSubscribeToChanges=true)
 
GUIVstParam< bool > registerVstBooleanParam (ParamID iParamID, bool iSubscribeToChanges=true)
 
template<typename T >
GUIVstParam< T > registerVstCallback (ParamID iParamID, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
 
template<typename T >
GUIVstParam< T > registerVstParam (ParamID iParamID, bool iSubscribeToChanges=true)
 
GUIVstParam< PercentregisterVstPercentParam (ParamID iParamID, bool iSubscribeToChanges=true)
 
void unregisterAll ()
 
bool unregisterParam (ParamID iParamID)
 
GUIRawVstParam unregisterParam (GUIRawVstParam const &iParam)
 
template<typename T >
GUIVstParam< T > unregisterParam (GUIVstParam< T > const &iParam)
 
template<typename T >
GUIJmbParam< T > unregisterParam (GUIJmbParam< T > const &iParam)
 
virtual ~GUIParamCxAware ()
 

Protected Attributes

std::unique_ptr< GUIParamCxMgrfParamCxMgr {}
 

Detailed Description

Encapsulates classes that want to be aware of parameters and be notified when they change

Constructor & Destructor Documentation

◆ ~GUIParamCxAware()

pongasoft::VST::GUI::Params::GUIParamCxAware::~GUIParamCxAware ( )
virtual

Member Function Documentation

◆ __internal__registerRawVstControl()

bool pongasoft::VST::GUI::Params::GUIParamCxAware::__internal__registerRawVstControl ( int32_t  iParamID,
ParamValue &  oControlValue,
GUIRawVstParam oGUIRawVstParam 
)

Convenient method to register a parameter which is backed by a value when the parameter does not exist.

IMPORTANT: this api should be considered internal as this is not the right concept... It will be removed!

Parameters
iParamID-1 when there is no parameter to use
oControlValuethe reference to the value
oGUIRawVstParamthe reference to the backed parameter
Returns
true if a new parameter was registered, false otherwise

◆ __internal__registerVstControl()

template<typename T >
bool pongasoft::VST::GUI::Params::GUIParamCxAware::__internal__registerVstControl ( int32_t  iParamID,
T &  oControlValue,
GUIVstParam< T > &  oGUIVstParam 
)

Convenient method to register a parameter which is backed by a value when the parameter does not exist.

IMPORTANT: this api should be considered internal as this is not the right concept... It will be removed!

Parameters
iParamID-1 when there is no parameter to use
oControlValuethe reference to the value
oGUIVstParamthe reference to the backed parameter
Returns
true if a new parameter was registered, false otherwise

◆ initState()

void pongasoft::VST::GUI::Params::GUIParamCxAware::initState ( GUIState iGUIState)
virtual

◆ invokeAll()

void pongasoft::VST::GUI::Params::GUIParamCxAware::invokeAll ( )

Invoke all registered callbacks and param listener

◆ onParameterChange()

◆ registerCallback() [1/5]

GUIRawVstParam pongasoft::VST::GUI::Params::GUIParamCxAware::registerCallback ( RawVstParam const &  iParamDef,
Parameters::ChangeCallback  iChangeCallback,
bool  iInvokeCallback = false 
)
inline

Registers a raw parameter (no conversion)

◆ registerCallback() [2/5]

template<typename T >
GUIVstParam< T > pongasoft::VST::GUI::Params::GUIParamCxAware::registerCallback ( VstParam< T > const &  iParamDef,
Parameters::ChangeCallback  iChangeCallback,
bool  iInvokeCallback = false 
)

Convenient call to register a callback for the Vst param simply by using its description. Takes care of the type due to method API

Returns
empty param if not found or not proper type

◆ registerCallback() [3/5]

template<typename T >
bool pongasoft::VST::GUI::Params::GUIParamCxAware::registerCallback ( VstParam< T > const &  iParamDef,
Parameters::ChangeCallback1< GUIVstParam< T >>  iChangeCallback,
bool  iInvokeCallback = false 
)

Convenient call to register a callback for the Vst param simply by using its description. Takes care of the type due to method API. Since the callback (Parameters::ChangeCallback1) is providing the param, it is not returned by this api.

Example:

registerCallback<int>(fParams->fMyParam, [] (GUIVstParam<int> &iParam) { iParam.getValue()...; });

Note how the compiler requires the type (which seems that it could be inferred).

Returns
false if not found or not proper type

◆ registerCallback() [4/5]

template<typename T >
GUIJmbParam< T > pongasoft::VST::GUI::Params::GUIParamCxAware::registerCallback ( GUIJmbParam< T > &  iParamDef,
Parameters::ChangeCallback  iChangeCallback,
bool  iInvokeCallback = false 
)

This method registers the callback to be invoked on GUIJmbParam changes.

Returns
a copy of iParamDef for convenience and symmetry of the APIs or empty wrapper if GUIParamCxAware::initState has not been called

◆ registerCallback() [5/5]

template<typename T >
bool pongasoft::VST::GUI::Params::GUIParamCxAware::registerCallback ( GUIJmbParam< T > &  iParamDef,
Parameters::ChangeCallback1< GUIJmbParam< T >>  iChangeCallback,
bool  iInvokeCallback = false 
)

This method registers the callback to be invoked on GUIJmbParam changes. Since the callback (Parameters::ChangeCallback1) is providing the param, it is not returned by this api.

Example:

registerCallback<Range>(fState->fMyParam, [] (GUIJmbParam<Range> &iParam) { iParam.getValue()...; });
Returns
false if GUIParamCxAware::initState has not been called

◆ registerJmbCallback()

template<typename T >
GUIJmbParam< T > pongasoft::VST::GUI::Params::GUIParamCxAware::registerJmbCallback ( ParamID  iParamID,
Parameters::ChangeCallback  iChangeCallback,
bool  iInvokeCallback = false 
)

Registers a callback for this Jmb param only given its id and return the wrapper to the param.

Returns
the wrapper which may be empty if the param does not exists or is of wrong type (use GUIJmbParam::exists)

◆ registerJmbParam()

template<typename T >
GUIJmbParam< T > pongasoft::VST::GUI::Params::GUIParamCxAware::registerJmbParam ( ParamID  iParamID,
bool  iSubscribeToChanges = true 
)

Registers the Jmb param only given its id and return the wrapper to the param.

Returns
the wrapper which may be empty if the param does not exists or is of wrong type (use GUIJmbParam::exists)

◆ registerParam() [1/3]

GUIRawVstParam pongasoft::VST::GUI::Params::GUIParamCxAware::registerParam ( RawVstParam const &  iParamDef,
bool  iSubscribeToChanges = true 
)
inline

Registers a raw parameter (no conversion)

◆ registerParam() [2/3]

template<typename T >
GUIVstParam< T > pongasoft::VST::GUI::Params::GUIParamCxAware::registerParam ( VstParam< T > const &  iParamDef,
bool  iSubscribeToChanges = true 
)

Convenient call to register a Vst param simply by using its description. Takes care of the type due to method API

Returns
empty param if not found or not proper type

◆ registerParam() [3/3]

template<typename T >
GUIJmbParam< T > pongasoft::VST::GUI::Params::GUIParamCxAware::registerParam ( GUIJmbParam< T > &  iParamDef)

This method registers this class to be notified of the GUIJmbParam changes. Note that GUIJmbParam is already a wrapper directly accessible from the view and as a result there is no need to call this method unless you want to subscribe to the changes, hence there isn't a second optional parameter

Returns
a copy of iParamDef for convenience and symmetry of the APIs or empty wrapper if GUIParamCxAware::initState has not been called

◆ registerParameters()

virtual void pongasoft::VST::GUI::Params::GUIParamCxAware::registerParameters ( )
inlinevirtual

◆ registerRawVstCallback()

GUIRawVstParam pongasoft::VST::GUI::Params::GUIParamCxAware::registerRawVstCallback ( ParamID  iParamID,
Parameters::ChangeCallback  iChangeCallback,
bool  iInvokeCallback = false 
)

Registers a raw parameter (no conversion)

◆ registerRawVstParam()

GUIRawVstParam pongasoft::VST::GUI::Params::GUIParamCxAware::registerRawVstParam ( ParamID  iParamID,
bool  iSubscribeToChanges = true 
)

Registers a raw parameter (no conversion)

◆ registerVstBooleanParam()

GUIVstParam< bool > pongasoft::VST::GUI::Params::GUIParamCxAware::registerVstBooleanParam ( ParamID  iParamID,
bool  iSubscribeToChanges = true 
)

◆ registerVstCallback()

template<typename T >
GUIVstParam< T > pongasoft::VST::GUI::Params::GUIParamCxAware::registerVstCallback ( ParamID  iParamID,
Parameters::ChangeCallback  iChangeCallback,
bool  iInvokeCallback = false 
)

Register a callback for a Vst parameter simply given its id

Returns
empty param if not found or not proper type

◆ registerVstParam()

template<typename T >
GUIVstParam< T > pongasoft::VST::GUI::Params::GUIParamCxAware::registerVstParam ( ParamID  iParamID,
bool  iSubscribeToChanges = true 
)

Register a Vst parameter simply given its id

Returns
empty param if not found or not proper type

◆ registerVstPercentParam()

GUIVstParam< Percent > pongasoft::VST::GUI::Params::GUIParamCxAware::registerVstPercentParam ( ParamID  iParamID,
bool  iSubscribeToChanges = true 
)

◆ unregisterAll()

void pongasoft::VST::GUI::Params::GUIParamCxAware::unregisterAll ( )

Unregisters all parameters

◆ unregisterParam() [1/4]

bool pongasoft::VST::GUI::Params::GUIParamCxAware::unregisterParam ( ParamID  iParamID)

Removes the registration of the provided param (closing the connection/stopping to listen)

Returns
true if the param was present, false otherwise

◆ unregisterParam() [2/4]

GUIRawVstParam pongasoft::VST::GUI::Params::GUIParamCxAware::unregisterParam ( GUIRawVstParam const &  iParam)

Removes the registration of the provided param (closing the connection/stopping to listen)

Returns
an empty param so that you can write param = unregisterParam(param)

◆ unregisterParam() [3/4]

template<typename T >
GUIVstParam< T > pongasoft::VST::GUI::Params::GUIParamCxAware::unregisterParam ( GUIVstParam< T > const &  iParam)

Removes the registration of the provided param (closing the connection/stopping to listen)

Returns
an empty param so that you can write param = unregisterParam(param)

◆ unregisterParam() [4/4]

template<typename T >
GUIJmbParam< T > pongasoft::VST::GUI::Params::GUIParamCxAware::unregisterParam ( GUIJmbParam< T > const &  iParam)

Removes the registration of the provided param (closing the connection/stopping to listen)

Returns
an empty param so that you can write param = unregisterParam(param)

Member Data Documentation

◆ fParamCxMgr

std::unique_ptr<GUIParamCxMgr> pongasoft::VST::GUI::Params::GUIParamCxAware::fParamCxMgr {}
protected

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