iPlug2 - C++ Audio Plug-in Framework
|
Vectorial multi-channel capable meter control with segmented LEDs, log response. More...
#include <IVMeterControl.h>
Classes | |
struct | LEDRange |
LED Range comprises info for a range of LED segments. More... | |
Public Member Functions | |
IVLEDMeterControl (const IRECT &bounds, const char *label="", const IVStyle &style=DEFAULT_STYLE, EDirection dir=EDirection::Vertical, std::initializer_list< const char * > trackNames={}, int totalNSegs=13, const std::vector< LEDRange > &ranges={ {0., 6., 1, LED5}, {-18., 0., 3, LED4}, {-36., -18., 3, LED3}, {-54., -36., 3, LED2}, {-72., -54., 3, LED1} }) | |
void | DrawTrackHandle (IGraphics &g, const IRECT &r, int chIdx, bool aboveBaseValue) override |
Draw the main body of the track. More... | |
void | DrawTrackBackground (IGraphics &g, const IRECT &r, int chIdx) override |
![]() | |
IVPeakAvgMeterControl (const IRECT &bounds, const char *label, const IVStyle &style=DEFAULT_STYLE, EDirection dir=EDirection::Vertical, std::initializer_list< const char * > trackNames={}, int totalNSegs=0, float lowRangeDB=-60.f, float highRangeDB=12.f, std::initializer_list< int > markers={0, -6, -12, -24, -48}) | |
void | DrawPeak (IGraphics &g, const IRECT &r, int chIdx, bool aboveBaseValue) override |
void | OnMsgFromDelegate (int msgTag, int dataSize, const void *pData) override |
Implement to receive messages sent to the control, see IEditorDelegate:SendControlMsgFromDelegate() More... | |
![]() | |
IVMeterControl (const IRECT &bounds, const char *label, const IVStyle &style=DEFAULT_STYLE, EDirection dir=EDirection::Vertical, std::initializer_list< const char * > trackNames={}, int totalNSegs=0, EResponse response=EResponse::Linear, float lowRangeDB=-72.f, float highRangeDB=12.f, std::initializer_list< int > markers={0, -6, -12, -24, -48}) | |
void | SetResponse (EResponse response) |
void | Draw (IGraphics &g) override |
Draw the control to the graphics context. More... | |
void | DrawPeak (IGraphics &g, const IRECT &r, int chIdx, bool aboveBaseValue) override |
void | DrawMarkers (IGraphics &g) |
void | OnMsgFromDelegate (int msgTag, int dataSize, const void *pData) override |
Implement to receive messages sent to the control, see IEditorDelegate:SendControlMsgFromDelegate() More... | |
![]() | |
IVTrackControlBase (const IRECT &bounds, const char *label, const IVStyle &style, int maxNTracks=1, int nSteps=0, EDirection dir=EDirection::Horizontal, std::initializer_list< const char * > trackNames={}) | |
IVTrackControlBase (const IRECT &bounds, const char *label, const IVStyle &style, int lowParamidx, int maxNTracks=1, int nSteps=0, EDirection dir=EDirection::Horizontal, std::initializer_list< const char * > trackNames={}) | |
IVTrackControlBase (const IRECT &bounds, const char *label, const IVStyle &style, const std::initializer_list< int > ¶ms, int nSteps=0, EDirection dir=EDirection::Horizontal, std::initializer_list< const char * > trackNames={}) | |
void | OnMouseOver (float x, float y, const IMouseMod &mod) override |
Implement this method to respond to a mouseover event on this control. More... | |
void | OnMouseOut () override |
Implement this method to respond to a mouseout event on this control. More... | |
virtual void | OnResize () override |
Called when IControl is constructed or resized using SetRect(). More... | |
int | GetValIdxForPos (float x, float y) const override |
Check to see which of the control's values relates to this x and y coordinate. More... | |
void | DrawWidget (IGraphics &g) override |
Draw the IVControl main widget (override) More... | |
void | SetParamsByGroup (const char *paramGroup) |
Update the parameters based on a parameter group name. More... | |
void | SetParams (const std::vector< int > ¶mIds) |
Update the parameters based on a parameter group name. More... | |
void | SetNTracks (int nTracks) |
void | SetBaseValue (double value) |
void | SetTrackPadding (float value) |
void | SetPeakSize (float value) |
void | SetNSteps (int nSteps) |
void | SetHighlightedTrack (int highlightIdx) |
void | SetZeroValueStepHasBounds (bool val) |
bool | HasTrackNames () const |
const char * | GetTrackName (int chIdx) const |
void | SetTrackName (int chIdx, const char *newName) |
![]() | |
IControl (const IRECT &bounds, int paramIdx=kNoParameter, IActionFunction actionFunc=nullptr) | |
Constructor. More... | |
IControl (const IRECT &bounds, const std::initializer_list< int > ¶ms, IActionFunction actionFunc=nullptr) | |
Constructor (range of parameters) More... | |
IControl (const IRECT &bounds, IActionFunction actionFunc) | |
Constructor (no paramIdx) More... | |
IControl (const IControl &)=delete | |
void | operator= (const IControl &)=delete |
virtual | ~IControl () |
Destructor. More... | |
virtual void | OnMouseDown (float x, float y, const IMouseMod &mod) |
Implement this method to respond to a mouse down event on this control. More... | |
virtual void | OnMouseUp (float x, float y, const IMouseMod &mod) |
Implement this method to respond to a mouse up event on this control. More... | |
virtual void | OnMouseDrag (float x, float y, float dX, float dY, const IMouseMod &mod) |
Implement this method to respond to a mouse drag event on this control. More... | |
virtual void | OnMouseDblClick (float x, float y, const IMouseMod &mod) |
Implement this method to respond to a mouse double click event on this control. More... | |
virtual void | OnMouseWheel (float x, float y, const IMouseMod &mod, float d) |
Implement this method to respond to a mouse wheel event on this control. More... | |
virtual bool | OnKeyDown (float x, float y, const IKeyPress &key) |
Implement this method to respond to a key down event on this control. More... | |
virtual bool | OnKeyUp (float x, float y, const IKeyPress &key) |
Implement this method to respond to a key up event on this control. More... | |
virtual void | OnMouseOver (float x, float y, const IMouseMod &mod) |
Implement this method to respond to a mouseover event on this control. More... | |
virtual void | OnMouseOut () |
Implement this method to respond to a mouseout event on this control. More... | |
virtual void | OnTouchCancelled (float x, float y, const IMouseMod &mod) |
Implement this method to respond to a touch cancel event on this control. More... | |
virtual void | OnDrop (const char *str) |
Implement to do something when something was drag 'n dropped onto this control. More... | |
virtual void | OnDropMultiple (const std::vector< const char * > &paths) |
Implement to handle multiple items drag 'n dropped onto this control. More... | |
virtual void | OnRescale () |
Implement to do something when graphics is scaled globally (e.g. More... | |
virtual void | OnResize () |
Called when IControl is constructed or resized using SetRect(). More... | |
virtual void | OnInit () |
Called just prior to when the control is attached, after its delegate and graphics member variable set. More... | |
virtual void | OnAttached () |
Called after the control has been attached, and its delegate and graphics member variable set. More... | |
virtual void | OnMsgFromDelegate (int msgTag, int dataSize, const void *pData) |
Implement to receive messages sent to the control, see IEditorDelegate:SendControlMsgFromDelegate() More... | |
virtual void | OnMidi (const IMidiMsg &msg) |
Implement to receive MIDI messages sent to the control if mWantsMidi == true, see IEditorDelegate:SendMidiMsgFromDelegate() More... | |
virtual bool | OnGesture (const IGestureInfo &info) |
virtual void | CreateContextMenu (IPopupMenu &contextMenu) |
Called by default when the user right clicks a control. More... | |
virtual void | OnPopupMenuSelection (IPopupMenu *pSelectedMenu, int valIdx) |
Implement this method to handle popup menu selection after IGraphics::CreatePopupMenu/IControlPromptUserInput. More... | |
virtual void | OnDeleteFromPopupMenu (IPopupMenu *pMenu, int itemIdx) |
Implement this method to handle popup menu deletion interactions (on IOS) after IGraphics::CreatePopupMenu/IControlPromptUserInput. More... | |
virtual void | OnTextEntryCompletion (const char *str, int valIdx) |
Implement this method to handle text input after IGraphics::CreateTextEntry/IControlPromptUserInput. More... | |
virtual void | OnContextSelection (int itemSelected) |
Implement this to respond to a menu selection from CreateContextMenu();. More... | |
virtual void | Draw (IGraphics &g)=0 |
Draw the control to the graphics context. More... | |
virtual void | DrawPTHighlight (IGraphics &g) |
Implement this to customise how a colored highlight is drawn on the control in ProTools (AAX format only), when a control is linked to a parameter that is automated. More... | |
void | PromptUserInput (int valIdx=0) |
Call this method in response to a mouse event to create an edit box so the user can enter a value, or pop up a pop-up menu, if the control is linked to a parameter (mParamIdx > kNoParameter) More... | |
void | PromptUserInput (const IRECT &bounds, int valIdx=0) |
Create a text entry box so the user can enter a value, or pop up a pop-up menu, if the control is linked to a parameter (mParamIdx > kNoParameter) specifying the bounds. More... | |
IControl * | SetActionFunction (IActionFunction actionFunc) |
Set an Action Function for this control. More... | |
IControl * | SetAnimationEndActionFunction (IActionFunction actionFunc) |
Set an Action Function to be called at the end of an animation. More... | |
IControl * | SetTooltip (const char *str) |
Set a tooltip for the control. More... | |
const char * | GetTooltip () const |
int | GetParamIdx (int valIdx=0) const |
Get the index of a parameter that the control is linked to Normaly controls are either linked to a single parameter or no parameter but some may be linked to multiple parameters. More... | |
virtual void | SetParamIdx (int paramIdx, int valIdx=0) |
Set the index of a parameter that the control is linked to If you are calling this "manually" to reuse a control for multiple parameters, you probably want to call IEditorDelegate::SendCurrentParamValuesFromDelegate() afterward, to update the control values. More... | |
int | LinkedToParam (int paramIdx) const |
Check if the control is linked to a particular parameter. More... | |
int | NVals () const |
virtual int | GetValIdxForPos (float x, float y) const |
Check to see which of the control's values relates to this x and y coordinate. More... | |
const IParam * | GetParam (int valIdx=0) const |
Get a const pointer to the IParam object (owned by the editor delegate class), associated with this control. More... | |
virtual void | SetValueFromDelegate (double value, int valIdx=0) |
Set the control's value from the delegate This method is called from the class implementing the IEditorDelegate interface in order to update a control's value members and set it to be marked dirty for redraw. More... | |
virtual void | SetValueFromUserInput (double value, int valIdx=0) |
Set the control's value after user input. More... | |
virtual void | SetValueToDefault (int valIdx=kNoValIdx) |
Set one or all of the control's values to the default value of the associated parameter. More... | |
virtual void | SetValue (double value, int valIdx=0) |
Set one of the control's values. More... | |
double | GetValue (int valIdx=0) const |
Get the control's value. More... | |
void | SetGroup (const char *groupName) |
Assign the control to a control group. More... | |
const char * | GetGroup () const |
Get the group that the control belongs to, if any. More... | |
const IText & | GetText () const |
Get the Text object for the control. More... | |
virtual void | SetText (const IText &txt) |
Set the Text object typically used to determine font/layout/size etc of the main text in a control. More... | |
void | SetBlend (const IBlend &blend) |
Set the Blend for this control. More... | |
IBlend | GetBlend () const |
Get the Blend for this control. More... | |
int | GetTextEntryLength () const |
Get the max number of characters that are allowed in text entry. More... | |
void | SetTextEntryLength (int len) |
Set the max number of characters that are allowed in text entry. More... | |
const IRECT & | GetRECT () const |
Get the rectangular draw area for this control, within the graphics context. More... | |
void | SetRECT (const IRECT &bounds) |
Set the rectangular draw area for this control, within the graphics context. More... | |
const IRECT & | GetTargetRECT () const |
Get the rectangular mouse tracking target area, within the graphics context for this control. More... | |
void | SetTargetRECT (const IRECT &bounds) |
Set the rectangular mouse tracking target area, within the graphics context for this control. More... | |
void | SetTargetAndDrawRECTs (const IRECT &bounds) |
Set BOTH the draw rect and the target area, within the graphics context for this control. More... | |
virtual void | SetPosition (float x, float y) |
Set the position of the control, preserving the width and height. More... | |
virtual void | SetSize (float w, float h) |
Set the size of the control, preserving the current position. More... | |
void | SetPTParameterHighlight (bool isHighlighted, int color) |
Used internally by the AAX wrapper view interface to set the control parmeter highlight. More... | |
bool | GetMouseDblAsSingleClick () const |
Get double click as single click By default, mouse double click has its own handler. More... | |
virtual void | Hide (bool hide) |
Shows or hides the IControl. More... | |
bool | IsHidden () const |
virtual void | SetDisabled (bool disable) |
Sets disabled mode for the control, the default implementation modifies the mBlend member. More... | |
bool | IsDisabled () const |
void | SetMouseOverWhenDisabled (bool allow) |
Specify whether the control should respond to mouse overs when disabled. More... | |
void | SetMouseEventsWhenDisabled (bool allow) |
Specify whether the control should respond to other mouse events when disabled. More... | |
bool | GetMouseOverWhenDisabled () const |
bool | GetMouseEventsWhenDisabled () const |
bool | GetIgnoreMouse () const |
virtual void | SetIgnoreMouse (bool ignore) |
Specify whether the control should respond to mouse events. More... | |
bool | GetPromptShowsParamLabel () const |
void | SetPromptShowsParamLabel (bool enable) |
Set if the control should show parameter labels/units e.g. More... | |
virtual bool | IsHit (float x, float y) const |
Hit test the control. More... | |
virtual void | SetDirty (bool triggerAction=true, int valIdx=kNoValIdx) |
Mark the control as dirty, i.e. More... | |
virtual void | SetClean () |
void | Animate () |
virtual bool | IsDirty () |
Called at each display refresh by the IGraphics draw loop, after IControl::Animate(), to determine if the control is marked as dirty. More... | |
void | DisablePrompt (bool disable) |
Disable/enable default prompt for user input. More... | |
virtual void | OnGUIIdle () |
This is an idle timer tick call on the GUI thread, only active if USE_IDLE_CALLS is defined. More... | |
int | GetTag () const |
Get the control's tag. More... | |
void | SetWantsMidi (bool enable=true) |
Specify whether this control wants to know about MIDI messages sent to the UI. More... | |
bool | GetWantsMidi () const |
void | SetWantsMultiTouch (bool enable=true) |
Specify whether this control supports multiple touches. More... | |
bool | GetWantsMultiTouch () const |
IControl * | AttachGestureRecognizer (EGestureType type, IGestureFunc func) |
Add a IGestureFunc that should be triggered in response to a certain type of gesture. More... | |
virtual bool | GetWantsGestures () const |
EGestureType | GetLastGesture () const |
IGEditorDelegate * | GetDelegate () |
Gets a pointer to the class implementing the IEditorDelegate interface that handles parameter changes from this IGraphics instance. More... | |
void | SetDelegate (IGEditorDelegate &dlg) |
Used internally to set the mDelegate (and mGraphics) variables. More... | |
IContainerBase * | GetParent () const |
void | SetParent (IContainerBase *pParent) |
IGraphics * | GetUI () |
const IGraphics * | GetUI () const |
bool | GetMouseIsOver () const |
This can be used in IControl::Draw() to check if the mouse is over the control, without implementing mouse over methods. More... | |
virtual void | SnapToMouse (float x, float y, EDirection direction, const IRECT &bounds, int valIdx=-1, double minClip=0., double maxClip=1.) |
Set control value based on x, y position within a rectangle. More... | |
virtual void | OnEndAnimation () |
void | StartAnimation (int duration) |
void | SetAnimation (IAnimationFunction func) |
Set the animation function. More... | |
void | SetAnimation (IAnimationFunction func, int duration) |
Set the animation function and starts it. More... | |
IAnimationFunction | GetAnimationFunction () |
Get the control's animation function, if it exists. More... | |
IActionFunction | GetActionFunction () |
Get the control's action function, if it exists. More... | |
double | GetAnimationProgress () const |
Get the progress in a control's animation, in the range 0-1. More... | |
Milliseconds | GetAnimationDuration () const |
Get the duration of animations applied to the control. More... | |
template<class T > | |
T * | As () |
Helper function to dynamic cast an IControl to a subclass. More... | |
![]() | |
IVectorBase (const IVStyle &style, bool labelInWidget=false, bool valueInWidget=false) | |
IVectorBase Constructor. More... | |
void | AttachIControl (IControl *pControl, const char *label) |
Call in the constructor of your IVControl to link the IVectorBase and IControl. More... | |
virtual void | OnStyleChanged () |
Implement if extra changes are required in response to style changing. More... | |
void | SetColor (EVColor colorIdx, const IColor &color) |
Set one of the IVColors that style the IVControl. More... | |
void | SetColors (const IVColorSpec &spec) |
Set the colors of this IVControl. More... | |
const IColor & | GetColor (EVColor color) const |
Get value of a specific EVColor in the IVControl. More... | |
void | SetLabelStr (const char *label) |
const char * | GetLabelStr () const |
void | SetValueStr (const char *value) |
void | SetWidgetFrac (float frac) |
void | SetAngle (float angle) |
void | SetShowLabel (bool show) |
void | SetShowValue (bool show) |
void | SetRoundness (float roundness) |
void | SetDrawFrame (bool draw) |
void | SetDrawShadows (bool draw) |
void | SetEmboss (bool draw) |
void | SetShadowOffset (float offset) |
void | SetFrameThickness (float thickness) |
void | SetSplashRadius (float radius) |
void | SetSplashPoint (float x, float y) |
void | SetShape (EVShape shape) |
virtual void | SetStyle (const IVStyle &style) |
Set the Style of this IVControl. More... | |
IVStyle | GetStyle () const |
Get the style of this IVControl. More... | |
IRECT | GetAdjustedHandleBounds (IRECT handleBounds) const |
Get the adjusted bounds for the widget handle, based on the style settings. More... | |
float | GetRoundedCornerRadius (const IRECT &bounds) const |
Get the radius of rounded corners for a rectangle, based on the style roundness factor. More... | |
IRECT | GetWidgetBounds () const |
IRECT | GetLabelBounds () const |
IRECT | GetValueBounds () const |
void | DrawSplash (IGraphics &g, const IRECT &clipRegion=IRECT()) |
Draw a splash effect when a widget handle is clicked (via SplashClickAnimationFunc) More... | |
virtual void | DrawBackground (IGraphics &g, const IRECT &rect) |
Draw the IVControl background (usually transparent) More... | |
virtual void | DrawWidget (IGraphics &g) |
Draw the IVControl main widget (override) More... | |
virtual void | DrawLabel (IGraphics &g) |
Draw the IVControl label text. More... | |
virtual void | DrawValue (IGraphics &g, bool mouseOver) |
Draw the IVControl value text. More... | |
virtual void | DrawPressableShape (IGraphics &g, EVShape shape, const IRECT &bounds, bool pressed, bool mouseOver, bool disabled) |
Call one of the DrawPressableShape methods. More... | |
void | DrawPressableEllipse (IGraphics &g, const IRECT &bounds, bool pressed, bool mouseOver, bool disabled) |
Draw an ellipse-shaped vector button. More... | |
IRECT | DrawPressableRectangle (IGraphics &g, const IRECT &bounds, bool pressed, bool mouseOver, bool disabled, bool rtl=true, bool rtr=true, bool rbl=true, bool rbr=true) |
Draw a rectangle-shaped vector button. More... | |
IRECT | DrawPressableTriangle (IGraphics &g, const IRECT &bounds, bool pressed, bool mouseOver, float angle, bool disabled) |
Draw a triangle-shaped vector button. More... | |
IRECT | MakeRects (const IRECT &parent, bool hasHandle=false) |
Calculate the rectangles for the various areas, depending on the style. More... | |
Additional Inherited Members | |
![]() | |
enum class | EResponse { Linear , Log } |
![]() | |
virtual void | DrawBackground (IGraphics &g, const IRECT &r) override |
Draw the IVControl background (usually transparent) More... | |
virtual void | DrawTrack (IGraphics &g, const IRECT &r, int chIdx) |
virtual void | DrawTrackBackground (IGraphics &g, const IRECT &r, int chIdx) |
virtual void | DrawTrackName (IGraphics &g, const IRECT &r, int chIdx) |
virtual void | DrawTrackHandle (IGraphics &g, const IRECT &r, int chIdx, bool aboveBaseValue) |
Draw the main body of the track. More... | |
virtual void | DrawPeak (IGraphics &g, const IRECT &r, int chIdx, bool aboveBaseValue) |
int | GetStepIdxForPos (float x, float y) const |
virtual void | MakeTrackRects (const IRECT &bounds) |
virtual void | MakeStepRects (const IRECT &bounds, int nSteps) |
bool | GetStepped () const |
![]() | |
template<typename T , typename... Args> | |
void | ForValIdx (int valIdx, T func, Args... args) |
A helper template function to call a method for an individual value, or for all values. More... | |
void | SetNVals (int nVals) |
![]() | |
std::array< float, MAXNC > | mPeakValues |
![]() | |
float | mHighRangeDB |
float | mLowRangeDB |
EResponse | mResponse = EResponse::Linear |
std::vector< int > | mMarkers |
![]() | |
EDirection | mDirection = EDirection::Vertical |
WDL_TypedBuf< IRECT > | mTrackBounds |
WDL_TypedBuf< IRECT > | mStepBounds |
WDL_PtrList< WDL_String > | mTrackNames |
int | mNSteps = 0 |
float | mTrackPadding = 0. |
float | mPeakSize = 1. |
int | mHighlightedTrack = -1 |
int | mMouseOverTrack = -1 |
double | mBaseValue = 0. |
bool | mDrawTrackFrame = true |
bool | mZeroValueStepHasBounds = true |
![]() | |
IRECT | mRECT |
IRECT | mTargetRECT |
WDL_String | mGroup |
Controls can be grouped for hiding and showing panels. More... | |
IText | mText |
IBlend | mBlend |
int | mTextEntryLength = DEFAULT_TEXT_ENTRY_LEN |
bool | mDirty = true |
bool | mHide = false |
bool | mDisabled = false |
bool | mDisablePrompt = true |
bool | mDblAsSingleClick = false |
bool | mMouseOverWhenDisabled = false |
bool | mMouseEventsWhenDisabled = false |
bool | mIgnoreMouse = false |
bool | mWantsMidi = false |
bool | mWantsMultiTouch = false |
bool | mPromptShowsParamLabel = false |
bool | mMouseIsOver = false |
if mGraphics::mHandleMouseOver = true, this will be true when the mouse is over control. More... | |
WDL_String | mTooltip |
IColor | mPTHighlightColor = COLOR_RED |
bool | mPTisHighlighted = false |
![]() | |
IControl * | mControl = nullptr |
IVStyle | mStyle |
bool | mLabelInWidget = false |
bool | mValueInWidget = false |
float | mSplashRadius = 0.f |
IVec2 | mSplashPoint = {0.f, 0.f} |
float | mMaxSplashRadius = 50.f |
float | mTrackSize = 2.f |
float | mValueDisplayFrac = 0.66f |
IRECT | mWidgetBounds |
IRECT | mLabelBounds |
IRECT | mValueBounds |
WDL_String | mLabelStr |
WDL_String | mValueStr |
EVShape | mShape = EVShape::Rectangle |
Vectorial multi-channel capable meter control with segmented LEDs, log response.
Requires an IPeakAvgSender
Definition at line 235 of file IVMeterControl.h.
|
inline |
Definition at line 255 of file IVMeterControl.h.
|
inlineoverridevirtual |
Reimplemented from IVTrackControlBase.
Definition at line 295 of file IVMeterControl.h.
|
inlineoverridevirtual |
Draw the main body of the track.
g | The IGraphics context |
r | The bounds of the track handle, which may be centered around mBaseValue, if mBaseValue > 0. |
chIdx | channel index |
aboveBaseValue | true if the handle channel value is above the base value |
Reimplemented from IVTrackControlBase.
Definition at line 290 of file IVMeterControl.h.