| AAX SDK 2.8.0 Avid Audio Extensions Development Kit

- Welcome
- Manual
- Classes
- Files
- Lists
- Support

- File List
- File Members

Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations
AAX_Callbacks.h File Reference
`#include "AAX.h"`

Go to the source code of this file.

## Description

AAX callback prototypes and ProcPtr definitions

## Classes
class | AAX_Component< aContextType >
| Empty class containing type declarations for the AAX algorithm and associated callbacks. More...

## Typedefs
typedef IACFUnknown *(AAX_CALLBACK * | AAXCreateObjectProc) (void)
typedef AAX_Component< void >::CProcessProc | AAX_CProcessProc
| A user-defined callback that AAX calls to process data packets and/or audio.
typedef AAX_Component< void >::CPacketAllocator | AAX_CPacketAllocator
| Used by AAX_SchedulePacket()
typedef AAX_Component< void >::CInstanceInitProc | AAX_CInstanceInitProc
| A user-defined callback that AAX calls to notify the component that an instance is being added or removed.
typedef AAX_Component< void >::CBackgroundProc | AAX_CBackgroundProc
| A user-defined callback that AAX calls in the AAX Idle time.
typedef AAX_Component< void >::CInitPrivateDataProc | AAX_CInitPrivateDataProc
| A user-defined callback to initialize a private data block.

## Enumerations
enum | AAX_CProcPtrID { kAAX_ProcPtrID_Create_EffectParameters = 0 , kAAX_ProcPtrID_Create_EffectGUI = 1 , kAAX_ProcPtrID_Create_HostProcessor = 3 , kAAX_ProcPtrID_Create_EffectDirectData = 5 , kAAX_ProcPtrID_Create_TaskAgent = 6 , kAAX_ProcPtrID_Create_SessionDocumentClient = 7 }

## Typedef Documentation

## ◆ AAXCreateObjectProc

typedef IACFUnknown *(AAX_CALLBACK * AAXCreateObjectProc) (void)

## ◆ AAX_CProcessProc

typedef AAX_Component<void>::CProcessProc AAX_CProcessProc

A user-defined callback that AAX calls to process data packets and/or audio.

iContextPtrsBegin
  A vector of context pointers. Each element points to the context for one instance of this component. `iContextPtrsEnd` gives the upper bound of the vector and `(inContextPtrsEnd - inContextPtrsBegin)` gives the count.

iContextPtrsEnd
  The upper bound of the vector at `iContextPtrsBegin`. `(inContextPtrsEnd - iContextPtrsBegin)` gives the count of this vector.

The instance vector was originally NULL-terminated in earlier versions of this API. However, the STL-style begin/end pattern was suggested as a more general representation that could, for instance, allow a vector to be split for parallel processing.

## ◆ AAX_CPacketAllocator

typedef AAX_Component<void>::CPacketAllocator AAX_CPacketAllocator

Used by AAX_SchedulePacket()

Deprecated:

A AAX_CProcessProc that calls AAX_SchedulePacket() must include a AAX_CPacketAllocator field in its context and register that field with AAX. AAX will then populate that field with a AAX_CPacketAllocator to pass to AAX_SchedulePacket().

See also
  AAX_SchedulePacket()

## ◆ AAX_CInstanceInitProc

typedef AAX_Component<void>::CInstanceInitProc AAX_CInstanceInitProc

A user-defined callback that AAX calls to notify the component that an instance is being added or removed.

This optional callback allows the component to keep per-instance data. It's called before the instance appears in the list supplied to CProcessProc, and then after the instance is removed from the list.

iInstanceContextPtr
  A pointer to the context data structure of the instance being added or removed from the processing list.

iAction
  Indicates the action that triggered the init callback, e.g. whether the instance is being added or removed.

Return values

  Should | return 0 on success, anything else on failure. Failure will prevent the instance from being created.

## ◆ AAX_CBackgroundProc

typedef AAX_Component<void>::CBackgroundProc AAX_CBackgroundProc

A user-defined callback that AAX calls in the AAX Idle time.

This optional callback allows the component to do background processing in whatever manner the plug-in developer desires

Return values

  Should | return 0 on success, anything else on failure. Failure will cause the AAX host to signal an error up the callchain.

## ◆ AAX_CInitPrivateDataProc

typedef AAX_Component<void>::CInitPrivateDataProc AAX_CInitPrivateDataProc

A user-defined callback to initialize a private data block.

Deprecated:

A component that requires private data supplies AAX_CInitPrivateDataProc callbacks to set its private data to the state it should be in at the start of audio. The component first declares one or more pointers to private data in its context. It then registers each such field with AAX along with its data size, various other attributes, and a AAX_CInitPrivateDataProc. The AAX_CInitPrivateDataProc always runs on the host system, not the DSP. AAX allocates storage for each private data block and calls its associated AAX_CInitPrivateDataProc to initialize it. If the component's AAX_CProcessProc runs on external hardware, AAX initializes private data blocks on the host system and copies them to the remote system.

See also
  alg_pd_init

inFieldIndex
  The port ID of the block to be initialized, as generated by AAX_FIELD_INDEX(). A component can register a separate AAX_CInitPrivateDataProc for each of its private data blocks, or it can use fewer functions that switch on `inFieldIndex`.

inNewBlock
  A pointer to the block to be initialized. If the component runs externally, AAX will copy this block to the remote system after it is initialized.

inSize
  The size of the block to be initialized. If a component has multiple private blocks that only need to be zeroed out, say, it can use a single AAX_CInitPrivateDataProc for all of these blocks that zeroes them out according to `inSize`.

inController
  A pointer to the current Effect instance's AAX_IController.

Note
  Do not directly reference data from this interface when populating `iNewBlock`. The data in this block must be fully self-contained to ensure portability to a new device or memory space.

Deprecated:

## Enumeration Type Documentation

## ◆ AAX_CProcPtrID

enum AAX_CProcPtrID

Enumerator
kAAX_ProcPtrID_Create_EffectParameters | AAX_IEffectParameters creation procedure
kAAX_ProcPtrID_Create_EffectGUI | AAX_IEffectGUI creation procedure
kAAX_ProcPtrID_Create_HostProcessor | AAX_IHostProcessor creation procedure
kAAX_ProcPtrID_Create_EffectDirectData | AAX_IEffectDirectData creation procedure, used by plug-ins that want direct access to their alg memory
kAAX_ProcPtrID_Create_TaskAgent | AAX_ITaskAgent creation procedure, used by plug-ins that want to process task requests made by the host.
kAAX_ProcPtrID_Create_SessionDocumentClient | AAX_ISessionDocumentClient creation procedure