![]() |
AAX SDK
2.4.1
Avid Audio Extensions Development Kit
|
#include <stdint.h>
#include <stddef.h>
#include "AAX_Version.h"
#include "AAX_Enums.h"
#include "AAX_Errors.h"
#include "AAX_Properties.h"
#include "AAX_PreStructAlignmentHelper.h"
#include "AAX_Push2ByteStructAlignment.h"
#include "AAX_PostStructAlignmentHelper.h"
#include "AAX_PopStructAlignment.h"
Go to the source code of this file.
Various utility definitions for AAX.
Classes | |
struct | AAX_SPlugInChunkHeader |
Plug-in chunk header. More... | |
struct | AAX_SPlugInChunk |
Plug-in chunk header + data. 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 | |
C++ compiler macros | |
#define | TI_VERSION 0 |
Preprocessor flag indicating compilation for TI. More... | |
#define | AAX_CPP11_SUPPORT 1 |
Preprocessor toggle for code which requires C++11 compiler support. More... | |
C++ keyword macros | |
Use these macros for keywords which may not be supported on all compilers
| |
#define | AAX_OVERRIDE override |
override keyword macro More... | |
#define | AAX_FINAL final |
final keyword macro More... | |
#define | AAX_DEFAULT_DTOR(X) ~X() = default |
#define | AAX_DEFAULT_DTOR_OVERRIDE(X) ~X() override = default |
#define | AAX_DEFAULT_CTOR(X) X() = default |
default keyword macro for a class default constructor More... | |
#define | AAX_DEFAULT_COPY_CTOR(X) X(const X&) = default |
default keyword macro for a class copy constructor More... | |
#define | AAX_DEFAULT_ASGN_OPER(X) X& operator=(const X&) = default |
default keyword macro for a class assignment operator More... | |
#define | AAX_DELETE(X) X = delete |
delete keyword macro More... | |
#define | AAX_DEFAULT_MOVE_CTOR(X) X(X&&) = default |
default keyword macro for a class move constructor More... | |
#define | AAX_DEFAULT_MOVE_OPER(X) X& operator=(X&&) = default |
default keyword macro for a class move-assignment operator More... | |
#define | AAX_CONSTEXPR constexpr |
constexpr keyword macro More... | |
#define | AAX_UNIQUE_PTR(X) std::unique_ptr<X> |
Pointer definitions | |
#define | AAXPointer_32bit 1 |
When AAX_PointerSize == AAXPointer_32bit this is a 32-bit build. More... | |
#define | AAXPointer_64bit 2 |
When AAX_PointerSize == AAXPointer_64bit this is a 64-bit build. More... | |
#define | AAX_PointerSize AAXPointer_32bit |
Use this definition to check the pointer size in the current build. More... | |
Alignment macros | |
Use these macros to define struct packing alignment for data structures that will be sent across binary or platform boundaries. #include AAX_ALIGN_FILE_BEGIN
#include AAX_ALIGN_FILE_HOST
#include AAX_ALIGN_FILE_END
// Structure definition
#include AAX_ALIGN_FILE_BEGIN
#include AAX_ALIGN_FILE_RESET
#include AAX_ALIGN_FILE_END
See the documentation for each macro for individual usage notes and warnings | |
#define | AAX_ALIGN_FILE_HOST "AAX_Push2ByteStructAlignment.h" |
Macro to set alignment for data structures that are shared with the host. More... | |
#define | AAX_ALIGN_FILE_ALG "AAX_Push8ByteStructAlignment.h" |
Macro to set alignment for data structures that are used in the alg. More... | |
#define | AAX_ALIGN_FILE_RESET "AAX_PopStructAlignment.h" |
Macro to reset alignment back to default. More... | |
#define | AAX_ALIGN_FILE_BEGIN "AAX_PreStructAlignmentHelper.h" |
Wrapper macro used for warning suppression. More... | |
#define | AAX_ALIGN_FILE_END "AAX_PostStructAlignmentHelper.h" |
Wrapper macro used for warning suppression. More... | |
#define | AAX_CALLBACK |
#define | AAX_PREPROCESSOR_CONCAT_HELPER(X, Y) X ## Y |
#define | AAX_PREPROCESSOR_CONCAT(X, Y) AAX_PREPROCESSOR_CONCAT_HELPER(X,Y) |
#define | AAX_FIELD_INDEX(aContextType, aMember) ((AAX_CFieldIndex) (offsetof (aContextType, aMember) / sizeof (void *))) |
Compute the index used to address a context field. More... | |
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 |
32-bit property values More... | |
typedef int64_t | AAX_CPropertyValue64 |
64-bit property values More... | |
typedef AAX_CPropertyValue | AAX_CPointerPropertyValue |
Pointer-sized property values. More... | |
typedef int32_t | AAX_CTargetPlatform |
Matches type of target platform. More... | |
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 AAX_CParamID | AAX_CPageTableParamID |
Parameter identifier used in a page table. More... | |
typedef const char * | AAX_CEffectID |
URL-style Effect identifier. Must be unique among all registered effects in the collection. More... | |
typedef _acfUID | acfUID |
typedef acfUID | AAX_Feature_UID |
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_SPlugInChunkHeader | AAX_SPlugInChunkHeader |
typedef struct AAX_SPlugInChunk | AAX_SPlugInChunk |
typedef struct AAX_SPlugInChunk * | AAX_SPlugInChunkPtr |
typedef struct AAX_SPlugInIdentifierTriad | AAX_SPlugInIdentifierTriad |
typedef struct AAX_SPlugInIdentifierTriad * | AAX_SPlugInIdentifierTriadPtr |
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... | |
AAX_CSampleRate | getLowestSampleRateInMask (uint32_t iMask) |
Converts from a mask of AAX_ESampleRateMask to the lowest supported AAX_CSampleRate value in Hz. More... | |
uint32_t | getMaskForSampleRate (float inSR) |
Returns the AAX_ESampleRateMask selector for a literal sample rate. More... | |
#define TI_VERSION 0 |
Preprocessor flag indicating compilation for TI.
#define AAX_CPP11_SUPPORT 1 |
Preprocessor toggle for code which requires C++11 compiler support.
#define AAX_OVERRIDE override |
override
keyword macro
#define AAX_FINAL final |
final
keyword macro
#define AAX_DEFAULT_DTOR | ( | X | ) | ~X() = default |
#define AAX_DEFAULT_DTOR_OVERRIDE | ( | X | ) | ~X() override = default |
#define AAX_DEFAULT_CTOR | ( | X | ) | X() = default |
default
keyword macro for a class default constructor
#define AAX_DEFAULT_COPY_CTOR | ( | X | ) | X(const X&) = default |
default
keyword macro for a class copy constructor
#define AAX_DEFAULT_ASGN_OPER | ( | X | ) | X& operator=(const X&) = default |
default
keyword macro for a class assignment operator
#define AAX_DELETE | ( | X | ) | X = delete |
delete
keyword macro
public
declaration access #define AAX_DEFAULT_MOVE_CTOR | ( | X | ) | X(X&&) = default |
default
keyword macro for a class move constructor
#define AAX_DEFAULT_MOVE_OPER | ( | X | ) | X& operator=(X&&) = default |
default
keyword macro for a class move-assignment operator
#define AAX_CONSTEXPR constexpr |
constexpr
keyword macro
#define AAX_UNIQUE_PTR | ( | X | ) | std::unique_ptr<X> |
#define AAXPointer_32bit 1 |
When AAX_PointerSize == AAXPointer_32bit this is a 32-bit build.
#define AAXPointer_64bit 2 |
When AAX_PointerSize == AAXPointer_64bit this is a 64-bit build.
#define AAX_PointerSize AAXPointer_32bit |
Use this definition to check the pointer size in the current build.
#define AAX_ALIGN_FILE_HOST "AAX_Push2ByteStructAlignment.h" |
Macro to set alignment for data structures that are shared with the host.
This macro is used to set alignment for data structures that are part of the AAX ABI. You should not need to use this macro for any custom data structures in your plug-in.
#define AAX_ALIGN_FILE_ALG "AAX_Push8ByteStructAlignment.h" |
Macro to set alignment for data structures that are used in the alg.
IMPORTANT: Be very careful to maintain correct data alignment when sending data structures between platforms.
#pragma ms_struct can not be used with dynamic classes or structures
#define AAX_ALIGN_FILE_RESET "AAX_PopStructAlignment.h" |
Macro to reset alignment back to default.
#define AAX_ALIGN_FILE_BEGIN "AAX_PreStructAlignmentHelper.h" |
Wrapper macro used for warning suppression.
This wrapper is required in llvm 10.0 and later due to the addition of the -Wpragma-pack
warning. This is a useful compiler warning but it is awkward to properly suppress in cases where we are intentionally including only part of the push/pop sequence in a single file, as with the AAX_ALIGN_FILE_XXX
macros.
#define AAX_ALIGN_FILE_END "AAX_PostStructAlignmentHelper.h" |
Wrapper macro used for warning suppression.
This wrapper is required in llvm 10.0 and later due to the addition of the -Wpragma-pack
warning. This is a useful compiler warning but it is awkward to properly suppress in cases where we are intentionally including only part of the push/pop sequence in a single file, as with the AAX_ALIGN_FILE_XXX
macros.
#define AAX_CALLBACK |
#define AAX_PREPROCESSOR_CONCAT_HELPER | ( | X, | |
Y | |||
) | X ## Y |
#define AAX_PREPROCESSOR_CONCAT | ( | X, | |
Y | |||
) | AAX_PREPROCESSOR_CONCAT_HELPER(X,Y) |
#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.
[in] | aContextType | The name of context type |
[in] | aMember | The name or other specifier of a field of that context type |
typedef int32_t AAX_CIndex |
typedef AAX_CIndex AAX_CCount |
typedef uint8_t AAX_CBoolean |
Cross-compiler boolean type used by AAX interfaces.
typedef uint32_t AAX_CSelector |
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.
typedef uint32_t AAX_CTypeID |
Matches type of OSType used in classic plugins.
typedef int32_t AAX_Result |
typedef int32_t AAX_CPropertyValue |
32-bit property values
Use this property value type for all properties unless otherwise specified by the property documentation
typedef int64_t AAX_CPropertyValue64 |
64-bit property values
Do not use this value type unless specified explicitly in the property documentation
Pointer-sized property values.
Do not use this value type unless specified explicitly in the property documentation
typedef int32_t AAX_CTargetPlatform |
Matches type of target platform.
typedef AAX_CIndex AAX_CFieldIndex |
Not used by AAX plug-ins (except in AAX_FIELD_INDEX macro)
typedef AAX_CSelector AAX_CComponentID |
typedef AAX_CSelector AAX_CMeterID |
typedef const char* AAX_CParamID |
Parameter identifier.
typedef AAX_CParamID AAX_CPageTableParamID |
Parameter identifier used in a page table.
May be a parameter ID or a parameter name string depending on the page table formatting. 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 acfUID AAX_Feature_UID |
Identifier for AAX features
See AAX_IDescriptionHost::AcquireFeatureProperties() and AAX_IFeatureInfo
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.
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.
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.
typedef struct AAX_SPlugInChunkHeader AAX_SPlugInChunkHeader |
typedef struct AAX_SPlugInChunk AAX_SPlugInChunk |
typedef struct AAX_SPlugInChunk * AAX_SPlugInChunkPtr |
typedef struct AAX_SPlugInIdentifierTriad AAX_SPlugInIdentifierTriad |
typedef struct AAX_SPlugInIdentifierTriad * AAX_SPlugInIdentifierTriadPtr |
|
inline |
Determines whether a particular AAX_CSampleRate is present in a given mask of AAX_ESampleRateMask.
References AAX_eSampleRateMask_176400, AAX_eSampleRateMask_192000, AAX_eSampleRateMask_44100, AAX_eSampleRateMask_48000, AAX_eSampleRateMask_88200, and AAX_eSampleRateMask_96000.
|
inline |
Converts from a mask of AAX_ESampleRateMask to the lowest supported AAX_CSampleRate value in Hz.
References AAX_eSampleRateMask_176400, AAX_eSampleRateMask_192000, AAX_eSampleRateMask_44100, AAX_eSampleRateMask_48000, AAX_eSampleRateMask_88200, and AAX_eSampleRateMask_96000.
|
inline |
Returns the AAX_ESampleRateMask selector for a literal sample rate.
The given rate must be an exact match with one of the available selectors. If no exact match is found then AAX_eSampleRateMask_No is returned.
References AAX_eSampleRateMask_176400, AAX_eSampleRateMask_192000, AAX_eSampleRateMask_44100, AAX_eSampleRateMask_48000, AAX_eSampleRateMask_88200, AAX_eSampleRateMask_96000, and AAX_eSampleRateMask_No.