ASPiK SDK
Loading...
Searching...
No Matches
AAXPluginParameters Class Reference

The AAXPluginParameters object implements the monolithic parameters AAX plugin programming paradigm which is documented in detail in Designing Audio Effects in C++ 2nd Ed. by Will Pirkle as well as the AAX SDK. More...

#include <AAXPluginParameters.h>

Inheritance diagram for AAXPluginParameters:

Classes

struct  SParamValList
 See AAX_CMonolithicParameters in SDK; this is part of the strict parameter synchronization in monolithic AAX plugins. More...
 

Public Member Functions

 AAXPluginParameters ()
 object constructor; this creates the ASPiK core and all of its required interfaces.
 
virtual ~AAXPluginParameters ()
 object destructor; this destroys the ASPiK core and all of its required interfaces.
 
virtual AAX_Result UpdateParameterNormalizedValue (AAX_CParamID iParameterID, double iValue, AAX_EUpdateSource iSource)
 called when a parameter needs to be updated (aka it is "dirty") as part of the AAX monolithic parameters paradigm
 
void AddSynchronizedParameter (const AAX_IParameter &inParameter)
 called to add parameters to the synchronized list; this is only called once during EffectInit( ) as part of the AAX monolithic parameters paradigm
 
virtual AAX_Result EffectInit () AAX_OVERRIDE
 AAX Override.
 
virtual AAX_Result ResetFieldData (AAX_CFieldIndex inFieldIndex, void *oData, uint32_t iDataSize) const AAX_OVERRIDE
 AAX Override.
 
virtual AAX_Result GenerateCoefficients () AAX_OVERRIDE
 AAX Override.
 
virtual AAX_Result TimerWakeup () AAX_OVERRIDE
 AAX Override.
 
AAX_Result GetParameterNormalizedValue (AAX_CParamID iParameterID, double *oValuePtr) const AAX_OVERRIDE
 allows threadsafe getting of parameters for GUI; modified to differentiate beteen meters to prevent a "bug" where the non-saved state marker pops up when saving a meter-based GUI
 
virtual AAX_Result GetCustomData (AAX_CTypeID iDataBlockID, uint32_t iDataSize, void *oData, uint32_t *oDataWritten) const AAX_OVERRIDE
 note the data that is transferred to GUI; the core is ONLY used for initialization and then it is unused.
 
void updateHostInfo (AAXAlgorithm *ioRenderInfo, HostInfo *hostInfo)
 called once per buffer process operation to set the host information structure for the core
 
void ProcessAudio (AAXAlgorithm *ioRenderInfo, const TParamValPair *inSynchronizedParamValues[], int32_t inNumSynchronizedParamValues)
 audio processing function; note that ALL algorithms point to this function so we have to decode channel information.
 
void UpdatePluginParameters (const TParamValPair *inSynchronizedParamValues[], int32_t inNumSynchronizedParamValues)
 called once per buffer process operation to update any parameters that changed during the buffer fill
 
void updateOutboundAAXParameters ()
 threadsafe update of outbound parameters (meter variables) for GUI.
 

Static Public Member Functions

static AAX_CEffectParameters *AAX_CALLBACK Create ()
 creation mechanism for this object
 
static void AAX_CALLBACK StaticRenderAudio (AAXAlgorithm *const inInstancesBegin[], const void *inInstancesEnd)
 static callback function that exists as an object member and is part of the monolithic programming paradigm described in great detail in the source below.
 
static AAX_Result StaticDescribe (AAX_IComponentDescriptor &outDesc)
 static describe function that exists as an object member and is part of the monolithic programming paradigm described in great detail in the source below.
 

Detailed Description

The AAXPluginParameters object implements the monolithic parameters AAX plugin programming paradigm which is documented in detail in Designing Audio Effects in C++ 2nd Ed. by Will Pirkle as well as the AAX SDK.

Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

Constructor & Destructor Documentation

◆ AAXPluginParameters()

AAXPluginParameters::AAXPluginParameters ( )

object constructor; this creates the ASPiK core and all of its required interfaces.

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and an AAX Programming Guide
  • see AAX SDK for more information on this function and its parameters

◆ ~AAXPluginParameters()

AAXPluginParameters::~AAXPluginParameters ( )
virtual

object destructor; this destroys the ASPiK core and all of its required interfaces.

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and an AAX Programming Guide
  • see AAX SDK for more information on this function and its parameters

Member Function Documentation

◆ AddSynchronizedParameter()

void AAXPluginParameters::AddSynchronizedParameter ( const AAX_IParameter &  inParameter)

called to add parameters to the synchronized list; this is only called once during EffectInit( ) as part of the AAX monolithic parameters paradigm

see AAX_CMonolithicParameters in SDK

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and an AAX Programming Guide
  • see AAX SDK for more information on this function and its parameters

◆ Create()

AAX_CEffectParameters *AAX_CALLBACK AAXPluginParameters::Create ( )
static

creation mechanism for this object

creation function

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and an AAX Programming Guide
  • see AAX SDK for more information on this function and its parameters

◆ EffectInit()

AAX_Result AAXPluginParameters::EffectInit ( )
virtual

AAX Override.

note the data that is transferred to GUI; the core is ONLY used for initialization and then it is unused.

NOTES:

  • create all AAX parameter objects and register; this also sets up slots in the monolithic parameters arrays
  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and an AAX Programming Guide
  • see AAX SDK for more information on this function and its parameters

◆ GenerateCoefficients()

AAX_Result AAXPluginParameters::GenerateCoefficients ( )
virtual

AAX Override.

called at the top of the buffer processing cycle to queue up dirty parameters; part of the AAX monolithic parameters paradigm

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and an AAX Programming Guide
  • see AAX SDK for more information on this function and its parameters

◆ GetCustomData()

AAX_Result AAXPluginParameters::GetCustomData ( AAX_CTypeID  iDataBlockID,
uint32_t  iDataSize,
void *  oData,
uint32_t *  oDataWritten 
) const
virtual

note the data that is transferred to GUI; the core is ONLY used for initialization and then it is unused.

mechism to transfer custom data to GUI (AAX approved)

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and an AAX Programming Guide
  • see AAX SDK for more information on this function and its parameters

◆ GetParameterNormalizedValue()

AAX_Result AAXPluginParameters::GetParameterNormalizedValue ( AAX_CParamID  iParameterID,
double *  oValuePtr 
) const

allows threadsafe getting of parameters for GUI; modified to differentiate beteen meters to prevent a "bug" where the non-saved state marker pops up when saving a meter-based GUI

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and an AAX Programming Guide
  • see AAX SDK for more information on this function and its parameters

◆ ProcessAudio()

void AAXPluginParameters::ProcessAudio ( AAXAlgorithm ioRenderInfo,
const TParamValPair inSynchronizedParamValues[],
int32_t  inNumSynchronizedParamValues 
)

audio processing function; note that ALL algorithms point to this function so we have to decode channel information.

the audio processing function for AAX

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and an AAX Programming Guide
  • see AAX SDK for more information on this function and its parameters

◆ ResetFieldData()

AAX_Result AAXPluginParameters::ResetFieldData ( AAX_CFieldIndex  inFieldIndex,
void *  oData,
uint32_t  iDataSize 
) const
virtual

AAX Override.

this is where we set the pointer back to this objecgt for our private date; part of monolithic paradigm and described in detail in book source below.

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and an AAX Programming Guide
  • see AAX SDK for more information on this function and its parameters

◆ StaticDescribe()

AAX_Result AAXPluginParameters::StaticDescribe ( AAX_IComponentDescriptor &  outDesc)
static

static describe function that exists as an object member and is part of the monolithic programming paradigm described in great detail in the source below.

static function for description process; can not be distributed

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and an AAX Programming Guide
  • see AAX SDK for more information on this function and its parameters

◆ StaticRenderAudio()

void AAX_CALLBACK AAXPluginParameters::StaticRenderAudio ( AAXAlgorithm *const  inInstancesBegin[],
const void *  inInstancesEnd 
)
static

static callback function that exists as an object member and is part of the monolithic programming paradigm described in great detail in the source below.

static render function for processing; can not be distributed

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and an AAX Programming Guide
  • see AAX SDK for more information on this function and its parameters

◆ TimerWakeup()

AAX_Result AAXPluginParameters::TimerWakeup ( )
virtual

AAX Override.

cleans out unneeded parameters

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and an AAX Programming Guide
  • see AAX SDK for more information on this function and its parameters

◆ updateHostInfo()

void AAXPluginParameters::updateHostInfo ( AAXAlgorithm ioRenderInfo,
HostInfo hostInfo 
)

called once per buffer process operation to set the host information structure for the core

get info from host for this buffer process cycle

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and an AAX Programming Guide
  • see AAX SDK for more information on this function and its parameters

◆ updateOutboundAAXParameters()

void AAXPluginParameters::updateOutboundAAXParameters ( )

threadsafe update of outbound parameters (meter variables) for GUI.

outbound parameter set meter info for GUI update

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and an AAX Programming Guide
  • see AAX SDK for more information on this function and its parameters

◆ UpdateParameterNormalizedValue()

AAX_Result AAXPluginParameters::UpdateParameterNormalizedValue ( AAX_CParamID  iParameterID,
double  iValue,
AAX_EUpdateSource  iSource 
)
virtual

called when a parameter needs to be updated (aka it is "dirty") as part of the AAX monolithic parameters paradigm

grab param changes and add to defer list

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and an AAX Programming Guide
  • see AAX SDK for more information on this function and its parameters

◆ UpdatePluginParameters()

void AAXPluginParameters::UpdatePluginParameters ( const TParamValPair inSynchronizedParamValues[],
int32_t  inNumSynchronizedParamValues 
)

called once per buffer process operation to update any parameters that changed during the buffer fill

update dirty parameters

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and an AAX Programming Guide

see AAX SDK for more information on this function and its parameters


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