AAX SDK  2.1.1
Avid Audio Extensions Development Kit
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AAX_IACFComponentDescriptor.h
Go to the documentation of this file.
1 /*================================================================================================*/
2 /*
3  *
4  * Copyright 2013 by Avid Technology, Inc.
5  * All rights reserved.
6  *
7  * CONFIDENTIAL: This document contains confidential information. Do not
8  * read or examine this document unless you are an Avid Technology employee
9  * or have signed a non-disclosure agreement with Avid Technology which protects
10  * the confidentiality of this document. DO NOT DISCLOSE ANY INFORMATION
11  * CONTAINED IN THIS DOCUMENT TO ANY THIRD-PARTY WITHOUT THE PRIOR WRITTEN CONSENT
12  * OF Avid Technolgy, INC.
13  *
14  */
15 
22 /*================================================================================================*/
23 
24 
25 #ifndef _AAX_IACFCOMPONENTDESCRIPTOR_H_
26 #define _AAX_IACFCOMPONENTDESCRIPTOR_H_
27 
28 #include "AAX.h"
29 #include "AAX_Callbacks.h"
30 #include "AAX_IDma.h"
31 
32 #ifdef __clang__
33 #pragma clang diagnostic push
34 #pragma clang diagnostic ignored "-Wnon-virtual-dtor"
35 #endif
36 
37 #include "acfunknown.h"
38 
39 
43 {
44 public:
45  virtual AAX_Result Clear () = 0;
46  virtual AAX_Result AddReservedField ( AAX_CFieldIndex iFieldIndex, uint32_t iFieldType ) = 0;
47  virtual AAX_Result AddAudioIn ( AAX_CFieldIndex iFieldIndex ) = 0;
48  virtual AAX_Result AddAudioOut ( AAX_CFieldIndex iFieldIndex ) = 0;
49  virtual AAX_Result AddAudioBufferLength ( AAX_CFieldIndex iFieldIndex ) = 0;
50  virtual AAX_Result AddSampleRate ( AAX_CFieldIndex iFieldIndex ) = 0;
51  virtual AAX_Result AddClock ( AAX_CFieldIndex iFieldIndex ) = 0;
52  virtual AAX_Result AddSideChainIn ( AAX_CFieldIndex iFieldIndex ) = 0;
53  virtual AAX_Result AddDataInPort ( AAX_CFieldIndex iFieldIndex, uint32_t iPacketSize, AAX_EDataInPortType iPortType) = 0;
54  virtual AAX_Result AddAuxOutputStem ( AAX_CFieldIndex iFieldIndex, int32_t iStemFormat, const char iNameUTF8[]) = 0;
55  virtual AAX_Result AddPrivateData ( AAX_CFieldIndex iFieldIndex, int32_t iDataSize, uint32_t iOptions = AAX_ePrivateDataOptions_DefaultOptions ) = 0;
56  virtual AAX_Result AddDmaInstance ( AAX_CFieldIndex iFieldIndex, AAX_IDma::EMode iDmaMode ) = 0;
57  virtual AAX_Result AddMIDINode ( AAX_CFieldIndex iFieldIndex, AAX_EMIDINodeType iNodeType, const char iNodeName[], uint32_t channelMask ) = 0;
58 
60  AAX_CProcessProc iProcessProc,
61  IACFUnknown * iProperties = NULL,
62  AAX_CInstanceInitProc iInstanceInitProc = NULL,
63  AAX_CBackgroundProc iBackgroundProc = NULL,
64  AAX_CSelector * oProcID = NULL) = 0;
65  virtual AAX_Result AddProcessProc_TI (
66  const char inDLLFileNameUTF8 [],
67  const char iProcessProcSymbol [],
68  IACFUnknown * iProperties = NULL,
69  const char iInstanceInitProcSymbol [] = NULL,
70  const char iBackgroundProcSymbol [] = NULL,
71  AAX_CSelector * oProcID = NULL) = 0;
72 
73  virtual AAX_Result AddMeters ( AAX_CFieldIndex iFieldIndex, const AAX_CTypeID* iMeterIDs, const uint32_t iMeterCount ) = 0;
74 };
75 
79 {
80 public:
81  virtual AAX_Result AddTemporaryData( AAX_CFieldIndex iFieldIndex, uint32_t iDataElementSize) = 0;
82 };
83 
84 #ifdef __clang__
85 #pragma clang diagnostic pop
86 #endif
87 
88 #endif // #ifndef _AAX_IACFCOMPONENTDESCRIPTOR_H_
AAX_EMIDINodeType
MIDI node types.
Definition: AAX_Enums.h:613
virtual AAX_Result AddPrivateData(AAX_CFieldIndex iFieldIndex, int32_t iDataSize, uint32_t iOptions=AAX_ePrivateDataOptions_DefaultOptions)=0
Adds a private data port to the algorithm context.
virtual AAX_Result AddReservedField(AAX_CFieldIndex iFieldIndex, uint32_t iFieldType)=0
Subscribes a context field to host-provided services or information.
Various utility definitions for AAX.
virtual AAX_Result AddProcessProc_TI(const char inDLLFileNameUTF8[], const char iProcessProcSymbol[], IACFUnknown *iProperties=NULL, const char iInstanceInitProcSymbol[]=NULL, const char iBackgroundProcSymbol[]=NULL, AAX_CSelector *oProcID=NULL)=0
Registers an algorithm processing entrypoint (process procedure) for the native architecture.
Versioned description interface for an AAX plug-in algorithm callback.
Definition: AAX_IACFComponentDescriptor.h:78
virtual AAX_Result AddAudioIn(AAX_CFieldIndex iFieldIndex)=0
Subscribes an audio input context field.
AAX_Component< void >::CProcessProc AAX_CProcessProc
A user-defined callback that AAX calls to process data packets and/or audio.
Definition: AAX_Callbacks.h:102
virtual AAX_Result AddDmaInstance(AAX_CFieldIndex iFieldIndex, AAX_IDma::EMode iDmaMode)=0
Adds a DMA field to the plug-in&#39;s context.
virtual AAX_Result AddMIDINode(AAX_CFieldIndex iFieldIndex, AAX_EMIDINodeType iNodeType, const char iNodeName[], uint32_t channelMask)=0
Add your MIDI node objects as context fields.
Versioned description interface for an AAX plug-in algorithm callback.
Definition: AAX_IACFComponentDescriptor.h:42
uint32_t AAX_CTypeID
Matches type of OSType used in classic plugins.
Definition: AAX.h:117
virtual AAX_Result AddTemporaryData(AAX_CFieldIndex iFieldIndex, uint32_t iDataElementSize)=0
Adds a block of data to a context that is not saved between callbacks and is scaled by the system buf...
COM compatible IUnknown C++ interface.
Definition: AAX_ACFInterface.dox:231
virtual AAX_Result AddProcessProc_Native(AAX_CProcessProc iProcessProc, IACFUnknown *iProperties=NULL, AAX_CInstanceInitProc iInstanceInitProc=NULL, AAX_CBackgroundProc iBackgroundProc=NULL, AAX_CSelector *oProcID=NULL)=0
Registers an algorithm processing entrypoint (process procedure) for the native architecture.
virtual AAX_Result AddAuxOutputStem(AAX_CFieldIndex iFieldIndex, int32_t iStemFormat, const char iNameUTF8[])=0
Adds an auxiliary output stem for a plug-in.
virtual AAX_Result AddAudioOut(AAX_CFieldIndex iFieldIndex)=0
Subscribes an audio output context field.
virtual AAX_Result AddMeters(AAX_CFieldIndex iFieldIndex, const AAX_CTypeID *iMeterIDs, const uint32_t iMeterCount)=0
Add a meter field to the plug-in&#39;s context.
int32_t AAX_Result
Definition: AAX.h:118
virtual AAX_Result AddSideChainIn(AAX_CFieldIndex iFieldIndex)=0
Subscribes a side-chain input context field.
virtual AAX_Result Clear()=0
Clears the descriptor.
AAX callback prototypes and ProcPtr definitions.
AAX_Component< void >::CBackgroundProc AAX_CBackgroundProc
A user-defined callback that AAX calls in the AAX Idle time.
Definition: AAX_Callbacks.h:149
AAX_Component< void >::CInstanceInitProc AAX_CInstanceInitProc
A user-defined callback that AAX calls to notify the component that an instance is being added or rem...
Definition: AAX_Callbacks.h:138
uint32_t AAX_CSelector
Definition: AAX.h:111
AAX_CIndex AAX_CFieldIndex
Not used by AAX plug-ins (except in AAX_FIELD_INDEX macro)
Definition: AAX.h:125
virtual AAX_Result AddAudioBufferLength(AAX_CFieldIndex iFieldIndex)=0
Subscribes a buffer length context field.
virtual AAX_Result AddSampleRate(AAX_CFieldIndex iFieldIndex)=0
Subscribes a sample rate context field.
virtual AAX_Result AddDataInPort(AAX_CFieldIndex iFieldIndex, uint32_t iPacketSize, AAX_EDataInPortType iPortType)=0
Adds a custom data port to the algorithm context.
AAX_EDataInPortType
Property value for whether a data in port should be buffered or not.
Definition: AAX_Enums.h:694
virtual AAX_Result AddClock(AAX_CFieldIndex iFieldIndex)=0
Subscribes a clock context field.
EMode
DMA mode IDs.
Definition: AAX_IDma.h:69
Cross-platform interface for access to the host&#39;s direct memory access (DMA) facilities.
Definition: AAX_Enums.h:402