33#ifndef AAX_CMONOLITHICPARAMETERS_H
34#define AAX_CMONOLITHICPARAMETERS_H
59#define kMaxAdditionalMIDINodes 15
62#define kMaxAuxOutputStems 32
65#define kSynchronizedParameterQueueSize 32
237 typedef std::pair<AAX_CParamID const, const AAX_IParameterValue*>
TParamValPair;
334 mElem[mSize++] = inElem;
338 void Append(
const SParamValList& inOther)
341 for (int32_t i = 0; i < inOther.mSize; ++i)
343 Add(inOther.mElem[i]);
347 void Append(
const std::list<TParamValPair*>& inOther)
349 AAX_ASSERT(sCap >= mSize + (int64_t)inOther.size());
350 for (std::list<TParamValPair*>::const_iterator iter = inOther.begin(); iter != inOther.end(); ++iter)
361 if (NULL == val) {
break; }
368 std::memset(mElem, 0x0,
sizeof(mElem));
373 typedef std::set<const AAX_IParameter*> TParamSet;
374 typedef std::pair<int64_t, std::list<TParamValPair*> > TNumberedParamStateList;
379 SParamValList GetUpdatesForState(int64_t inTargetStateNum);
380 void DeleteUsedParameterChanges();
383 std::set<std::string> mSynchronizedParameters;
384 int64_t mStateCounter;
385 TParamSet mDirtyParameters;
386 TNumberedStateListQueue mQueuedParameterChanges;
387 TNumberedStateListQueue mFinishedParameterChanges;
388 TParamValPairQueue mFinishedParameterValues;
AAX_EUpdateSource
Source for values passed into UpdateParameterNormalizedValue().
Definition: AAX_Enums.h:1095
AAX_EStemFormat
Stem format definitions.
Definition: AAX_Enums.h:243
@ AAX_eStemFormat_Mono
M.
Definition: AAX_Enums.h:245
@ AAX_eStemFormat_None
Definition: AAX_Enums.h:287
Description interface for an AAX plug-in algorithm.
Generic plug-in description property map.
const char * AAX_CParamID
Parameter identifier.
Definition: AAX.h:362
int32_t AAX_Result
Definition: AAX.h:347
uint8_t AAX_CBoolean
Cross-compiler boolean type used by AAX interfaces.
Definition: AAX.h:339
#define AAX_CALLBACK
Definition: AAX.h:295
int64_t AAX_CTimestamp
Time stamp value. Measured against the DAE clock (see AAX_IComponentDescriptor::AddClock() )
Definition: AAX.h:341
#define AAX_OVERRIDE
override keyword macro
Definition: AAX.h:164
uint32_t AAX_CTypeID
Matches type of OSType used in classic plugins.
Definition: AAX.h:346
AAX_CIndex AAX_CFieldIndex
Not used by AAX plug-ins (except in AAX_FIELD_INDEX macro)
Definition: AAX.h:359
Atomic, non-blocking queue.
A default implementation of the AAX_IeffectParameters interface.
Declaration of the base MIDI Node interface.
#define AAX_ASSERT(condition)
Asserts that a condition is true and logs an error if the condition is false.
Definition: AAX_Assert.h:281
The base interface for all normalizable plug-in parameters.
Description interface for an effect's (plug-in type's) components.
#define kSynchronizedParameterQueueSize
Definition: AAX_CMonolithicParameters.h:65
#define kMaxAuxOutputStems
Definition: AAX_CMonolithicParameters.h:62
#define kMaxAdditionalMIDINodes
Definition: AAX_CMonolithicParameters.h:59
Definition: AAX_CAtomicQueue.h:66
Default implementation of the AAX_IEffectParameters interface.
Definition: AAX_CEffectParameters.h:76
Description interface for an effect's (plug-in type's) components.
Definition: AAX_IEffectDescriptor.h:60
Interface for accessing information in a MIDI node.
Definition: AAX_IMIDINode.h:50
The base interface for all normalizable plug-in parameters.
Definition: AAX_IParameter.h:150
Definition: AAX_IPointerQueue.h:45
virtual value_type Pop()=0
Information used to describe the instrument.
Definition: AAX_CMonolithicParameters.h:74
AAX_CBoolean mMultiMonoSupport
Definition: AAX_CMonolithicParameters.h:120
AAX_CTypeID mProductID
Product ID
Definition: AAX_CMonolithicParameters.h:110
AAX_EStemFormat mHybridOutputStemFormat
Hybrid output stem format
Definition: AAX_CMonolithicParameters.h:101
int32_t mNumAdditionalInputMIDINodes
Number of additional input MIDI Nodes. These will all share the same channelMask and base MIDINodeNam...
Definition: AAX_CMonolithicParameters.h:84
bool mUseHostGeneratedGUI
Allow Pro Tools or other host to generate a generic GUI. This can be useful for early development.
Definition: AAX_CMonolithicParameters.h:107
uint32_t mGlobalMIDIEventMask
Global MIDI node event mask of AAX_EMidiGlobalNodeSelectors, if used.
Definition: AAX_CMonolithicParameters.h:78
const char * mAuxOutputStemNames[kMaxAuxOutputStems]
Names of the aux output stems.
Definition: AAX_CMonolithicParameters.h:96
int32_t mNumMeters
Number of meter taps used by the instrument. Must match the size of mMeterIDs.
Definition: AAX_CMonolithicParameters.h:91
bool mNeedsInputMIDI
Does the instrument use a local MIDI input node?
Definition: AAX_CMonolithicParameters.h:81
AAX_CTypeID mPluginID
Plug-In (Type) ID
Definition: AAX_CMonolithicParameters.h:111
bool mCanBypass
Can this instrument be bypassed?
Definition: AAX_CMonolithicParameters.h:108
const char * mTransportMIDINodeName
Name of the MIDI transport node, if used.
Definition: AAX_CMonolithicParameters.h:88
const AAX_CTypeID * mMeterIDs
Array of meter IDs.
Definition: AAX_CMonolithicParameters.h:92
AAX_CTypeID mAudiosuiteID
AudioSuite ID
Definition: AAX_CMonolithicParameters.h:112
AAX_CTypeID mManufacturerID
Manufacturer ID
Definition: AAX_CMonolithicParameters.h:109
AAX_SInstrumentSetupInfo()
Default constructor.
Definition: AAX_CMonolithicParameters.h:128
AAX_EStemFormat mOutputStemFormat
Output stem format
Definition: AAX_CMonolithicParameters.h:106
const char * mInputMIDINodeName
Name of the MIDI input node, if used.
Definition: AAX_CMonolithicParameters.h:82
int32_t mNumAuxOutputStems
Number of aux output stems for the plug-in.
Definition: AAX_CMonolithicParameters.h:95
uint32_t mInputMIDIChannelMask
MIDI input node channel mask, if used.
Definition: AAX_CMonolithicParameters.h:83
const char * mGlobalMIDINodeName
Name of the global MIDI node, if used.
Definition: AAX_CMonolithicParameters.h:77
bool mNeedsGlobalMIDI
Does the instrument use a global MIDI input node?
Definition: AAX_CMonolithicParameters.h:76
AAX_EStemFormat mInputStemFormat
Input stem format
Definition: AAX_CMonolithicParameters.h:105
AAX_EStemFormat mHybridInputStemFormat
Hybrid input stem format
Definition: AAX_CMonolithicParameters.h:100
bool mNeedsTransport
Does the instrument use the transport interface?
Definition: AAX_CMonolithicParameters.h:87
AAX_EStemFormat mAuxOutputStemFormats[kMaxAuxOutputStems]
Stem formats for the output stems.
Definition: AAX_CMonolithicParameters.h:97
Utility struct for AAX_CMonolithicParameters.
Definition: AAX_CMonolithicParameters.h:170
AAX_CMonolithicParameters * mMonolithicParametersPtr
A pointer to the instrument's data model.
Definition: AAX_CMonolithicParameters.h:177
Information used to parameterize AAX_CMonolithicParameters::RenderAudio()
Definition: AAX_CMonolithicParameters.h:188
float ** mAudioOutputs
Audio output buffers, including any aux output stems.
Definition: AAX_CMonolithicParameters.h:190
AAX_IMIDINode * mGlobalNode
Buffered global MIDI input node. Used for global events like beat updates in metronomes.
Definition: AAX_CMonolithicParameters.h:195
AAX_CTimestamp * mClock
Pointer to the global running time clock.
Definition: AAX_CMonolithicParameters.h:192
AAX_IMIDINode * mTransportNode
Transport MIDI node. Used for querying the state of the MIDI transport.
Definition: AAX_CMonolithicParameters.h:196
float ** mMeters
Array of meter taps. One meter value should be entered per tap for each render call.
Definition: AAX_CMonolithicParameters.h:201
int32_t * mNumSamples
Number of samples in each buffer. Bounded as per AAE_EAudioBufferLengthNative. The exact value can va...
Definition: AAX_CMonolithicParameters.h:191
int64_t * mCurrentStateNum
State counter.
Definition: AAX_CMonolithicParameters.h:203
float ** mAudioInputs
Audio input buffers.
Definition: AAX_CMonolithicParameters.h:189
AAX_IMIDINode * mInputNode
Buffered local MIDI input node. Used for incoming MIDI messages directed to the instrument.
Definition: AAX_CMonolithicParameters.h:194
AAX_IMIDINode * mAdditionalInputMIDINodes[kMaxAdditionalMIDINodes]
List of additional input MIDI nodes, if your plugin needs them.
Definition: AAX_CMonolithicParameters.h:197
AAX_SInstrumentPrivateData * mPrivateData
Struct containing private data relating to the instance. You should not need to use this data.
Definition: AAX_CMonolithicParameters.h:199
Extension of the AAX_CEffectParameters class for monolithic VIs and effects.
Definition: AAX_CMonolithicParameters.h:231
virtual void RenderAudio(AAX_SInstrumentRenderInfo *ioRenderInfo, const TParamValPair *inSynchronizedParamValues[], int32_t inNumSynchronizedParamValues)
Definition: AAX_CMonolithicParameters.h:254
void AddSynchronizedParameter(const AAX_IParameter &inParameter)
Definition: AAX_CMonolithicParameters.cpp:50
AAX_CMonolithicParameters(void)
Definition: AAX_CMonolithicParameters.cpp:32
AAX_Result ResetFieldData(AAX_CFieldIndex iFieldIndex, void *oData, uint32_t iDataSize) const AAX_OVERRIDE
Called by the host to reset a private data field in the plug-in's algorithm.
Definition: AAX_CMonolithicParameters.cpp:114
AAX_Result GenerateCoefficients() AAX_OVERRIDE
Generates and dispatches new coefficient packets.
Definition: AAX_CMonolithicParameters.cpp:75
static AAX_Result StaticDescribe(AAX_IEffectDescriptor *ioDescriptor, const AAX_SInstrumentSetupInfo &setupInfo)
Definition: AAX_CMonolithicParameters.cpp:142
AAX_Result UpdateParameterNormalizedValue(AAX_CParamID iParamID, double aValue, AAX_EUpdateSource inSource) AAX_OVERRIDE
Updates a single parameter's state to its current value.
Definition: AAX_CMonolithicParameters.cpp:57
std::pair< AAX_CParamID const, const AAX_IParameterValue * > TParamValPair
Definition: AAX_CMonolithicParameters.h:237
AAX_Result TimerWakeup() AAX_OVERRIDE
Periodic wakeup callback for idle-time operations.
Definition: AAX_CMonolithicParameters.cpp:133
~AAX_CMonolithicParameters(void) AAX_OVERRIDE
Definition: AAX_CMonolithicParameters.cpp:44
static void AAX_CALLBACK StaticRenderAudio(AAX_SInstrumentRenderInfo *const inInstancesBegin[], const void *inInstancesEnd)
Definition: AAX_CMonolithicParameters.cpp:246