Jamba C++ API  4.0.0
ParamAwareView< TView > Class Template Reference

This subclass allows for registering callbacks to any kind of view without having to inherit from it. More...

#include <ParamAware.h>

Inherits ParamAware.

Inherited by ViewGUIParamCxAware< TView >.

Public Types

using ChangeListener = std::function< void(TView *, ParamID)>
 

Public Member Functions

void onParameterChange (ParamID iParamID) override
 This implementation simply delegates to the listener registered by registerListener(). More...
 
 ParamAwareView (TView *iView)
 
template<typename T >
GUIJmbParam< T > registerCallback (GUIJmbParam< T > &iParam, Parameters::ChangeCallback1< GUIJmbParam< T >> iChangeCallback, bool iInvokeCallback=false)
 Convenient call to register a callback for the Jmb param simply by using the param from the state (accessible in state-aware views via fState->fMyParam). More...
 
template<typename T >
GUIJmbParam< T > registerCallback (JmbParam< T > const &iParamDef, Parameters::ChangeCallback1< GUIJmbParam< T >> iChangeCallback, bool iInvokeCallback=false)
 Convenient call to register a callback for the Jmb param simply by using its description (accessible in state-aware views via fParams->fMyParam). More...
 
template<typename T >
GUIVstParam< T > 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 (accessible in state-aware views via fParams->fMyParam). More...
 
template<typename T >
GUIVstParam< T > 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 (accessible in state-aware views via fParams->fMyParam). More...
 
template<typename T >
GUIJmbParam< T > registerCallback (JmbParam< T > const &iParamDef, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
 Convenient call to register a callback for the Jmb param simply by using its description (accessible in state-aware views via fParams->fMyParam). More...
 
GUIRawVstParam registerCallback (RawVstParam const &iParamDef, Parameters::ChangeCallback1< GUIRawVstParam > iChangeCallback, bool iInvokeCallback=false)
 Registers a raw parameter (no conversion). More...
 
template<typename T >
GUIJmbParam< T > registerCallback (GUIJmbParam< T > &iParam, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
 Convenient call to register a callback for the Jmb param simply by using the param from the state (accessible in state-aware views via fState->fMyParam). More...
 
GUIRawVstParam registerCallback (RawVstParam const &iParamDef, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
 Registers a raw parameter (no conversion). More...
 
template<typename T >
GUIVstParam< T > registerCallback (VstParam< T > const &iParamDef, Parameters::ChangeCallback2< TView, GUIVstParam< T >> iChangeCallback, bool iInvokeCallback=false)
 Register a callback for the Vst parameter. More...
 
template<typename T >
GUIJmbParam< T > registerCallback (GUIJmbParam< T > &iParam, Parameters::ChangeCallback2< TView, GUIJmbParam< T >> iChangeCallback, bool iInvokeCallback=false)
 Register a callback for the Jmb parameter. More...
 
void registerListener (ChangeListener iListener)
 Registers a listener invoked when a parameter changes. More...
 
- Public Member Functions inherited from ParamAware
virtual void initState (GUIState *iGUIState)
 Called during initialization. More...
 
void invokeAll ()
 Invoke all (currently) registered callbacks and onParameterChange() (if registered). More...
 
IGUIParam registerBaseCallback (ParamID iParamID, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback)
 Registers a callback for the "base" param for the most generic use case. More...
 
IGUIParam registerBaseCallback (ParamID iParamID, Parameters::ChangeCallback1< IGUIParam > iChangeCallback, bool iInvokeCallback)
 Registers a callback for the "base" param for the most generic use case. More...
 
IGUIParam registerBaseParam (ParamID iParamID, bool iSubscribeToChanges=true)
 Registers the "base" param for the most generic use case but as a result is fairly limited and mainly gives access to the string representation of the param. More...
 
GUIRawVstParam registerCallback (RawVstParam const &iParamDef, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
 Registers a raw parameter (no conversion). More...
 
GUIRawVstParam registerCallback (RawVstParam const &iParamDef, Parameters::ChangeCallback1< GUIRawVstParam > iChangeCallback, bool iInvokeCallback=false)
 Registers a raw parameter (no conversion). More...
 
template<typename T >
GUIVstParam< T > 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 (accessible in state-aware views via fParams->fMyParam). More...
 
template<typename T >
GUIVstParam< T > 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 (accessible in state-aware views via fParams->fMyParam). More...
 
template<typename T >
GUIJmbParam< T > registerCallback (JmbParam< T > const &iParamDef, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
 Convenient call to register a callback for the Jmb param simply by using its description (accessible in state-aware views via fParams->fMyParam). More...
 
template<typename T >
GUIJmbParam< T > registerCallback (JmbParam< T > const &iParamDef, Parameters::ChangeCallback1< GUIJmbParam< T >> iChangeCallback, bool iInvokeCallback=false)
 Convenient call to register a callback for the Jmb param simply by using its description (accessible in state-aware views via fParams->fMyParam). More...
 
template<typename T >
GUIJmbParam< T > registerCallback (GUIJmbParam< T > &iParam, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
 Convenient call to register a callback for the Jmb param simply by using the param from the state (accessible in state-aware views via fState->fMyParam). More...
 
template<typename T >
GUIJmbParam< T > registerCallback (GUIJmbParam< T > &iParam, Parameters::ChangeCallback1< GUIJmbParam< T >> iChangeCallback, bool iInvokeCallback=false)
 Convenient call to register a callback for the Jmb param simply by using the param from the state (accessible in state-aware views via fState->fMyParam). More...
 
template<typename T >
GUIJmbParam< T > registerJmbCallback (ParamID iParamID, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
 Registers a callback for the Jmb param by its id and return the wrapper to the param. More...
 
template<typename T >
GUIJmbParam< T > registerJmbCallback (ParamID iParamID, Parameters::ChangeCallback1< GUIJmbParam< T >> iChangeCallback, bool iInvokeCallback=false)
 Registers a callback for the Jmb param by its id and return the wrapper to the param. More...
 
template<typename T >
GUIJmbParam< T > registerJmbParam (ParamID iParamID, bool iSubscribeToChanges=true)
 Registers the Jmb param by its id and return the wrapper to the param. More...
 
template<typename T >
GUIOptionalParam< T > registerOptionalCallback (ParamID iParamID, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
 Registers an optional parameter which handles Vst, Jmb or no parameter at all. More...
 
template<typename T >
GUIOptionalParam< T > registerOptionalCallback (ParamID iParamID, Parameters::ChangeCallback1< GUIOptionalParam< T >> iChangeCallback, bool iInvokeCallback=false)
 Registers an optional parameter which handles Vst, Jmb or no parameter at all. More...
 
GUIOptionalParam< int32 > registerOptionalDiscreteCallback (ParamID iParamID, int32 iStepCount, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
 Registers an optional discrete parameter which handles Vst, Jmb or no parameter at all. More...
 
GUIOptionalParam< int32 > registerOptionalDiscreteCallback (ParamID iParamID, int32 iStepCount, Parameters::ChangeCallback1< GUIOptionalParam< int32 >> iChangeCallback, bool iInvokeCallback=false)
 Registers an optional discrete parameter which handles Vst, Jmb or no parameter at all. More...
 
GUIOptionalParam< int32 > registerOptionalDiscreteParam (ParamID iParamID, int32 iStepCount, bool iSubscribeToChanges=true)
 Registers an optional discrete parameter which handles Vst, Jmb or no parameter at all. More...
 
template<typename T >
GUIOptionalParam< T > registerOptionalParam (ParamID iParamID, bool iSubscribeToChanges=true)
 Registers an optional parameter which handles Vst, Jmb or no parameter at all. More...
 
GUIRawVstParam registerParam (RawVstParam const &iParamDef, bool iSubscribeToChanges=true)
 Registers a raw parameter (no conversion). More...
 
template<typename T >
GUIVstParam< T > registerParam (VstParam< T > const &iParamDef, bool iSubscribeToChanges=true)
 Convenient call to register a Vst param simply by using its description (accessible in state-aware views via fParams->fMyParam). More...
 
template<typename T >
GUIJmbParam< T > registerParam (JmbParam< T > const &iParamDef, bool iSubscribeToChanges=true)
 Convenient call to register a Jmb param simply by using its description (accessible in state-aware views via fParams->fMyParam). More...
 
template<typename T >
GUIJmbParam< T > registerParam (GUIJmbParam< T > &iParam, bool iSubscribeToChanges=true)
 Convenient call to register a Jmb param simply by using the param from the state (accessible in state-aware views via fState->fMyParam). More...
 
virtual void registerParameters ()
 Subclasses should override this method to register each parameter. More...
 
GUIRawVstParam registerRawVstCallback (ParamID iParamID, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
 Registers a raw parameter (no conversion) The callback will be invoked when the parameter changes. More...
 
GUIRawVstParam registerRawVstCallback (ParamID iParamID, Parameters::ChangeCallback1< GUIRawVstParam > iChangeCallback, bool iInvokeCallback=false)
 Registers a raw parameter (no conversion) The callback will be invoked when the parameter changes. More...
 
GUIRawVstParam registerRawVstParam (ParamID iParamID, bool iSubscribeToChanges=true)
 Registers a raw parameter (no conversion) onParameterChange() will be called on changes (if iSubscribeToChanges is set to true). More...
 
GUIVstParam< bool > registerVstBooleanParam (ParamID iParamID, bool iSubscribeToChanges=true)
 
template<typename T >
GUIVstParam< T > registerVstCallback (ParamID iParamID, Parameters::ChangeCallback iChangeCallback, bool iInvokeCallback=false)
 Register a callback for a Vst parameter simply given its id The callback will be invoked when the parameter changes. More...
 
template<typename T >
GUIVstParam< T > registerVstCallback (ParamID iParamID, Parameters::ChangeCallback1< GUIVstParam< T >> iChangeCallback, bool iInvokeCallback=false)
 Register a callback for a Vst parameter simply given its id The callback will be invoked when the parameter changes. More...
 
template<typename T >
GUIVstParam< T > registerVstParam (ParamID iParamID, bool iSubscribeToChanges=true)
 Register a Vst parameter simply given its id onParameterChange() will be called on changes (if iSubscribeToChanges is set to true). More...
 
GUIVstParam< PercentregisterVstPercentParam (ParamID iParamID, bool iSubscribeToChanges=true)
 
void unregisterAll ()
 Unregisters all parameters. More...
 
bool unregisterParam (ParamID iParamID)
 Removes the registration of the provided param (closing the connection/stopping to listen) More...
 
GUIRawVstParam unregisterParam (GUIRawVstParam const &iParam)
 Removes the registration of the provided param (closing the connection/stopping to listen) More...
 
template<typename T >
GUIVstParam< T > unregisterParam (GUIVstParam< T > const &iParam)
 Removes the registration of the provided param (closing the connection/stopping to listen) More...
 
template<typename T >
GUIJmbParam< T > unregisterParam (GUIJmbParam< T > const &iParam)
 Removes the registration of the provided param (closing the connection/stopping to listen) More...
 
virtual ~ParamAware ()
 

Protected Attributes

ChangeListener fListener
 
TView * fView
 
- Protected Attributes inherited from ParamAware
std::unique_ptr< GUIParamCxMgrfParamCxMgr {}
 

Detailed Description

template<typename TView>
class pongasoft::VST::GUI::Params::ParamAwareView< TView >

This subclass allows for registering callbacks to any kind of view without having to inherit from it.

Template Parameters
TViewshould be a subclass of VSTGUI::CView
See also
StateAwareCustomController::makeParamAware()

Member Typedef Documentation

◆ ChangeListener

using ChangeListener = std::function<void(TView *, ParamID)>

Constructor & Destructor Documentation

◆ ParamAwareView()

ParamAwareView ( TView *  iView)
inlineexplicit

Member Function Documentation

◆ onParameterChange()

void onParameterChange ( ParamID  iParamID)
inlineoverridevirtual

This implementation simply delegates to the listener registered by registerListener().

Reimplemented from ParamAware.

◆ registerCallback() [1/10]

GUIRawVstParam registerCallback
inline

Registers a raw parameter (no conversion).

Convenient call using the param def (accessible in state-aware views via fParams->fMyParam).

◆ registerCallback() [2/10]

GUIJmbParam<T> registerCallback ( typename T  )
inline

Convenient call to register a callback for the Jmb param simply by using the param from the state (accessible in state-aware views via fState->fMyParam).

Takes care of the type due to method API.

Returns
empty param if not found or not proper type

◆ registerCallback() [3/10]

GUIVstParam<T> registerCallback ( typename T  )
inline

Convenient call to register a callback for the Vst param simply by using its description (accessible in state-aware views via fParams->fMyParam).

Takes care of the type due to method API.

Example:

registerCallback<int>(fParams->fMyParam,
[] (GUIVstParam<int> &iParam) { iParam.getValue()...; });
Returns
empty param if not found or not proper type

◆ registerCallback() [4/10]

GUIJmbParam<T> registerCallback ( typename T  )
inline

Convenient call to register a callback for the Jmb param simply by using its description (accessible in state-aware views via fParams->fMyParam).

Takes care of the type due to method API.

Returns
empty param if not found or not proper type

◆ registerCallback() [5/10]

GUIJmbParam<T> registerCallback ( typename T  )
inline

Convenient call to register a callback for the Jmb param simply by using its description (accessible in state-aware views via fParams->fMyParam).

Takes care of the type due to method API.

Example:

registerCallback<int>(fParams->fMyParam,
[] (GUIJmbParam<int> &iParam) { iParam.getValue()...; });
Returns
empty param if not found or not proper type

◆ registerCallback() [6/10]

GUIVstParam<T> registerCallback ( typename T  )
inline

Convenient call to register a callback for the Vst param simply by using its description (accessible in state-aware views via fParams->fMyParam).

Takes care of the type due to method API.

Returns
empty param if not found or not proper type

◆ registerCallback() [7/10]

GUIJmbParam<T> registerCallback ( typename T  )
inline

Convenient call to register a callback for the Jmb param simply by using the param from the state (accessible in state-aware views via fState->fMyParam).

Takes care of the type due to method API.

Example:

registerCallback<int>(fParams->fMyParam,
[] (GUIJmbParam<int> &iParam) { iParam.getValue()...; });
Returns
empty param if not found or not proper type

◆ registerCallback() [8/10]

GUIRawVstParam registerCallback
inline

Registers a raw parameter (no conversion).

Convenient call using the param def (accessible in state-aware views via fParams->fMyParam).

◆ registerCallback() [9/10]

GUIVstParam<T> registerCallback ( VstParam< T > const &  iParamDef,
Parameters::ChangeCallback2< TView, GUIVstParam< T >>  iChangeCallback,
bool  iInvokeCallback = false 
)
inline

Register a callback for the Vst parameter.

This version is specific to this class and allows for the view to be passed back (since the view is not inheriting from this class).

// Example
registerCallback<bool>(fParams->fMyParam,
[] (CTextLabel *iView, GUIVstParam<bool> &iParam) {
iParam.getValue()...;
});
Returns
empty param if not found or not proper type

◆ registerCallback() [10/10]

GUIJmbParam<T> registerCallback ( GUIJmbParam< T > &  iParam,
Parameters::ChangeCallback2< TView, GUIJmbParam< T >>  iChangeCallback,
bool  iInvokeCallback = false 
)
inline

Register a callback for the Jmb parameter.

This version is specific to this class and allows for the view to be passed back (since the view is not inheriting from this class).

// Example
registerCallback<Range>(fState->fMyParam,
[] (CTextLabel *iView, GUIJmbParam<Range> &iParam) {
iParam.getValue()...;
});
Returns
empty param if not found or not proper type

◆ registerListener()

void registerListener ( ChangeListener  iListener)
inline

Registers a listener invoked when a parameter changes.

Since this class is intended to be used without inheriting from a view, you cannot implement the onParameterChange() method. As a result, you can use this method to set a listener that will be invoked instead.

Member Data Documentation

◆ fListener

ChangeListener fListener
protected

◆ fView

TView* fView
protected

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