AAX SDK  2.1.1
Avid Audio Extensions Development Kit
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Macros | Typedefs | Functions
AAX.h File Reference
#include <stdint.h>
#include <stddef.h>
#include "AAX_Version.h"
#include "AAX_Enums.h"
#include "AAX_Errors.h"
#include "AAX_Properties.h"

Go to the source code of this file.

Description

Various utility definitions for AAX.

Classes

struct  AAX_SPlugInChunk
 Plug-in chunk header. More...
 
struct  AAX_SPlugInIdentifierTriad
 Plug-in Identifier Triad. More...
 
struct  AAX_CMidiPacket
 Packet structure for MIDI data. More...
 
struct  AAX_CMidiStream
 MIDI stream data structure used by AAX_IMIDINode. More...
 

Macros

#define _AAX_H_
 
#define AAX_CALLBACK
 
#define AAX_FIELD_INDEX(aContextType, aMember)   ((AAX_CFieldIndex) (offsetof (aContextType, aMember) / sizeof (void *)))
 Compute the index used to address a context field. More...
 
Alignment macros

Use these macros to define struct packing alignment for data structures that will be crossed across binary boundaries.

#include AAX_ALIGN_FILE_HOST
// Structure definition
#include AAX_ALIGN_FILE_RESET
#define AAX_ALIGN_FILE_HOST   "AAX_Push2ByteStructAlignment.h"
 File to set alignment for data structures that are shared with the host. More...
 
#define AAX_ALIGN_FILE_ALG   "AAX_Push8ByteStructAlignment.h"
 File to set alignment for data structures that are used in the alg. More...
 
#define AAX_ALIGN_FILE_RESET   "AAX_PopStructAlignment.h"
 File to reset alignment back to default. More...
 

Typedefs

typedef int32_t AAX_CIndex
 
typedef AAX_CIndex AAX_CCount
 
typedef uint8_t AAX_CBoolean
 Cross-compiler boolean type used by AAX interfaces. More...
 
typedef uint32_t AAX_CSelector
 
typedef int64_t AAX_CTimestamp
 Time stamp value. Measured against the DAE clock (see AAX_IComponentDescriptor::AddClock() ) More...
 
typedef int64_t AAX_CTimeOfDay
 Hardware running clock value. MIDI packet time stamps are measured against this clock. This is actually the same as TransportCounter, but kept for compatibility. More...
 
typedef int64_t AAX_CTransportCounter
 Offset of samples from transport start. Same as TimeOfDay, but added for new interfaces as TimeOfDay is a confusing name. More...
 
typedef float AAX_CSampleRate
 Literal sample rate value used by the sample rate field. For AAX_eProperty_SampleRate, use a mask of AAX_ESampleRateMask. More...
 
typedef uint32_t AAX_CTypeID
 Matches type of OSType used in classic plugins. More...
 
typedef int32_t AAX_Result
 
typedef int32_t AAX_CPropertyValue
 
typedef AAX_CIndex AAX_CFieldIndex
 Not used by AAX plug-ins (except in AAX_FIELD_INDEX macro) More...
 
typedef AAX_CSelector AAX_CComponentID
 
typedef AAX_CSelector AAX_CMeterID
 
typedef const char * AAX_CParamID
 Parameter identifier. More...
 
typedef const char * AAX_CEffectID
 URL-style Effect identifier. Must be unique among all registered effects in the collection. More...
 
typedef const float *const * AAX_CAudioInPort
 AAX algorithm audio input port data type. More...
 
typedef float *const * AAX_CAudioOutPort
 AAX algorithm audio output port data type. More...
 
typedef float *const AAX_CMeterPort
 AAX algorithm meter port data type. More...
 
typedef struct AAX_SPlugInChunk AAX_SPlugInChunk
 
typedef struct AAX_SPlugInChunkAAX_SPlugInChunkPtr
 
typedef struct
AAX_SPlugInIdentifierTriad 
AAX_SPlugInIdentifierTriad
 
typedef struct
AAX_SPlugInIdentifierTriad
AAX_SPlugInIdentifierTriadPtr
 

Functions

typedef AAX_ALIGNED (8) double AAX_AlignedDouble
 A cross-platform alignment macro to ensure a data type is aligned properly. More...
 
AAX_CBoolean sampleRateInMask (AAX_CSampleRate inSR, uint32_t iMask)
 Determines whether a particular AAX_CSampleRate is present in a given mask of AAX_ESampleRateMask. More...
 

Macro Definition Documentation

#define _AAX_H_
#define AAX_ALIGN_FILE_HOST   "AAX_Push2ByteStructAlignment.h"

File to set alignment for data structures that are shared with the host.

#define AAX_ALIGN_FILE_ALG   "AAX_Push8ByteStructAlignment.h"

File to set alignment for data structures that are used in the alg.

#define AAX_ALIGN_FILE_RESET   "AAX_PopStructAlignment.h"

File to reset alignment back to default.

#define AAX_CALLBACK
#define AAX_FIELD_INDEX (   aContextType,
  aMember 
)    ((AAX_CFieldIndex) (offsetof (aContextType, aMember) / sizeof (void *)))

Compute the index used to address a context field.

This macro expands to a constant expression suitable for use in enumerator definitions and case labels so int32_t as aMember is a constant specifier.

Parameters
[in]aContextTypeThe name of context type
[in]aMemberThe name or other specifier of a field of that context type

Typedef Documentation

typedef int32_t AAX_CIndex
Todo:
Not used by AAX plug-ins (except as AAX_CFieldIndex)
Todo:
Not used by AAX plug-ins
typedef uint8_t AAX_CBoolean

Cross-compiler boolean type used by AAX interfaces.

typedef uint32_t AAX_CSelector
Todo:
Clean up usage; currently used for a variety of ID-related values
typedef int64_t AAX_CTimestamp

Time stamp value. Measured against the DAE clock (see AAX_IComponentDescriptor::AddClock() )

typedef int64_t AAX_CTimeOfDay

Hardware running clock value. MIDI packet time stamps are measured against this clock. This is actually the same as TransportCounter, but kept for compatibility.

typedef int64_t AAX_CTransportCounter

Offset of samples from transport start. Same as TimeOfDay, but added for new interfaces as TimeOfDay is a confusing name.

typedef float AAX_CSampleRate

Literal sample rate value used by the sample rate field. For AAX_eProperty_SampleRate, use a mask of AAX_ESampleRateMask.

See Also
sampleRateInMask
typedef uint32_t AAX_CTypeID

Matches type of OSType used in classic plugins.

typedef int32_t AAX_Result
typedef int32_t AAX_CPropertyValue

Not used by AAX plug-ins (except in AAX_FIELD_INDEX macro)

Todo:
Not used by AAX plug-ins
Todo:
Not used by AAX plug-ins
typedef const char* AAX_CParamID

Parameter identifier.

Note
While this is a string, it must be less than 32 characters in length. (strlen of 31 or less)
typedef const char* AAX_CEffectID

URL-style Effect identifier. Must be unique among all registered effects in the collection.

typedef const float* const* AAX_CAudioInPort

AAX algorithm audio input port data type.

Audio input ports are provided with a pointer to an array of const audio buffers, with one buffer provided per input or side chain channel.

Todo:
Not used directly by AAX plug-ins
typedef float* const* AAX_CAudioOutPort

AAX algorithm audio output port data type.

Audio output ports are provided with a pointer to an array of audio buffers, with one buffer provided per output or auxiliary output channel.

Todo:
Not used directly by AAX plug-ins
typedef float* const AAX_CMeterPort

AAX algorithm meter port data type.

Meter output ports are provided with a pointer to an array of floats, with one float provided per meter tap. The algorithm is responsible for setting these to the corresponding per-buffer peak sample values.

Todo:
Not used directly by AAX plug-ins

Function Documentation

typedef AAX_ALIGNED ( )

A cross-platform alignment macro to ensure a data type is aligned properly.

An 8-byte aligned double to be used in data structures passed between host and DSP, like context blocks.

Todo:
UNUSED - FLAGGED FOR REMOVAL
AAX_CBoolean sampleRateInMask ( AAX_CSampleRate  inSR,
uint32_t  iMask 
)
inline

Determines whether a particular AAX_CSampleRate is present in a given mask of AAX_ESampleRateMask.

See Also
kAAX_Property_SampleRate

References AAX_eSampleRateMask_176400, AAX_eSampleRateMask_192000, AAX_eSampleRateMask_44100, AAX_eSampleRateMask_48000, AAX_eSampleRateMask_88200, and AAX_eSampleRateMask_96000.