Jamba C++ API  5.1.1
ParamImageView Class Reference

This view renders a param value as an image (the ParamDisplayView view renders a param value as a string). More...

#include <ParamImageView.h>

Inherits CustomDiscreteControlView.

Classes

class  Creator
 

Public Member Functions

void draw (CDrawContext *iContext) override
 
int32 getFrames () const
 Returns the number of frames the image has (which is defined by the [number of steps + 1] the underlying parameter has) More...
 
BitmapPtr getImage () const
 The image to use. More...
 
bool getInverse () const
 Inverses the frames (last frame is first frame, etc...) More...
 
 ParamImageView (const CRect &iSize)
 
void registerParameters () override
 Registers the optional parameter using getControlTag() as its id. More...
 
void setImage (BitmapPtr iImage)
 attribute image More...
 
void setInverse (bool iInverse)
 Attribute inverse More...
 
bool sizeToFit () override
 Use the image and number of frames to size the view appropriately. More...
 
- Public Member Functions inherited from CustomDiscreteControlView
 CustomDiscreteControlView (const CRect &iSize)
 
int32 getStepCount () const
 The number of steps of the managed discrete parameter as specified by this view. More...
 
void setStepCount (int32 iStepCount)
 
- Public Member Functions inherited from TCustomControlView< int32 >
int32 getControlValue () const
 Returns the value of the managed parameter (properly typed) More...
 
void registerParameters () override
 Registers the optional parameter using getControlTag() as its id. More...
 
virtual void setControlValue (int32 const &iControlValue)
 Sets the value of the managed parameter to the provided value. More...
 
 TCustomControlView (const CRect &iSize)
 
- Public Member Functions inherited from CustomControlView
 CustomControlView (const CRect &iSize)
 
ParamID getControlTag () const
 Id of the parameter that this view manages. More...
 
virtual void setControlTag (ParamID iTag)
 
- Public Member Functions inherited from CustomView
void afterApplyAttributes () override
 Handles the lifecycle behavior getting triggered once all the attributes have been set (which usually happens after the XML file (uidesc) has been read/processed, or when you modify attributes in the VSTGUI Editor). More...
 
 CustomView (const CRect &iSize)
 
 CustomView (const CustomView &c)=delete
 
void draw (CDrawContext *iContext) override
 The basic draw method which will erase the background with the back color. More...
 
virtual void drawBackColor (CDrawContext *iContext)
 Draws the back color (if not set to transparent) More...
 
void drawStyleChanged ()
 Called when the draw style is changed (simply marks the view dirty) More...
 
CColor const & getBackColor () const
 The back color (background) for the view. More...
 
TagID getCustomViewTag () const
 The tag associated to this custom view. More...
 
bool getEditorMode () const
 A flag whose purpose is to render/log information during development when the flag is set to true. More...
 
void markDirty ()
 Marks this view dirty which will (at the appropriate time in the rendering lifecycle) trigger a call to draw() More...
 
void onParameterChange (ParamID iParamID) override
 Callback when a parameter changes. More...
 
void setBackColor (CColor const &iColor)
 
void setCustomViewTag (TagID iTag)
 
void setEditorMode (bool iEditorMode)
 
- 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...
 
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

BitmapSPtr fImage {nullptr}
 
bool fInverse {false}
 
- Protected Attributes inherited from CustomDiscreteControlView
int32 fStepCount {-1}
 
- Protected Attributes inherited from TCustomControlView< int32 >
GUIOptionalParam< int32 > fControlParameter
 
- Protected Attributes inherited from CustomControlView
ParamID fControlTag {UNDEFINED_PARAM_ID}
 
- Protected Attributes inherited from CustomView
CColor fBackColor
 
ParamID fTag
 
- Protected Attributes inherited from ParamAware
std::unique_ptr< GUIParamCxMgrfParamCxMgr {}
 

Additional Inherited Members

- Public Types inherited from TCustomControlView< int32 >
using Creator = CustomViewCreator< TCustomControlView< int32 >, CustomControlView >
 
- Protected Member Functions inherited from CustomView
void sizeToFit (CCoord iWidth, CCoord iHeight)
 Convenient call to size to fit this view according to the and height provided. More...
 
bool sizeToFit (BitmapPtr iBitmap, int iFrameCount=1)
 Convenient call to size to fit this view to match the bitmap. More...
 

Detailed Description

This view renders a param value as an image (the ParamDisplayView view renders a param value as a string).

The image provided must be a filmstrip with each frame representing each value the param can have.

As a result, this view works for any parameter (both Vst and Jmb) that is (or can be interpreted as) a discrete parameter.

In addition to the attributes exposed by CustomDiscreteControlView, this class exposes the following attributes:

Attribute Description
image

The image to use. The image must be formatted as a filmstrip (similar to the various button views). This means that there should be one frame for each value the parameter can have.

For example for an on/off status LED, the parameter has 1 step (so 2 values) and as a result the image should have 2 frames:

y frame
0 the frame for off
image height / 2 the frame for on

Example: 2 frames example

inverse Inverses the frames (last frame is first frame, etc...)
Note
This view can be used to render status LEDs for example and all other kinds of graphical representation of a parameter value
See also
CustomDiscreteControlView for details on discrete parameters and the usage of step-count

Constructor & Destructor Documentation

◆ ParamImageView()

ParamImageView ( const CRect &  iSize)
inlineexplicit

Member Function Documentation

◆ draw()

void draw ( CDrawContext *  iContext)
override

◆ getFrames()

int32 getFrames ( ) const

Returns the number of frames the image has (which is defined by the [number of steps + 1] the underlying parameter has)

◆ getImage()

BitmapPtr getImage ( ) const
inline

The image to use.

The image must be formatted as a filmstrip (similar to the various button views). This means that there should be one frame for each value the parameter can have.

For example for an on/off status LED, the parameter has 1 step (so 2 values) and as a result the image should have 2 frames:

y frame
0 the frame for off
image height / 2 the frame for on

Example: 2 frames example

◆ getInverse()

bool getInverse ( ) const
inline

Inverses the frames (last frame is first frame, etc...)

◆ registerParameters()

void registerParameters ( )
overridevirtual

Registers the optional parameter using getControlTag() as its id.

Reimplemented from CustomDiscreteControlView.

◆ setImage()

void setImage ( BitmapPtr  iImage)
inline

attribute image

◆ setInverse()

void setInverse ( bool  iInverse)
inline

Attribute inverse

◆ sizeToFit()

bool sizeToFit ( )
override

Use the image and number of frames to size the view appropriately.

Member Data Documentation

◆ fImage

BitmapSPtr fImage {nullptr}
protected

◆ fInverse

bool fInverse {false}
protected

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