\hypertarget{a02022}{}\doxysection{AAX\+\_\+\+IACFComponent\+Descriptor\+\_\+\+V3 Class Reference}
\label{a02022}\index{AAX\_IACFComponentDescriptor\_V3@{AAX\_IACFComponentDescriptor\_V3}}


{\ttfamily \#include $<$AAX\+\_\+\+IACFComponent\+Descriptor.\+h$>$}



Inheritance diagram for AAX\+\_\+\+IACFComponent\+Descriptor\+\_\+\+V3\+:
% FIG 0


Collaboration diagram for AAX\+\_\+\+IACFComponent\+Descriptor\+\_\+\+V3\+:
% FIG 1


\doxysubsection{Description}
Versioned description interface for an AAX plug-\/in algorithm callback. \doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02022_aa42746bcccc0e91186464f86b39b8cff}{Add\+Process\+Proc}} (\mbox{\hyperlink{a01770}{IACFUnknown}} $\ast$in\+Properties, \mbox{\hyperlink{a00542_aeaf9b387f902c50a8360ff423f4a1f23}{AAX\+\_\+\+CSelector}} $\ast$out\+Proc\+IDs, int32\+\_\+t in\+Proc\+IDs\+Size)=0
\begin{DoxyCompactList}\small\item\em Registers one or more algorithm processing entrypoints (process procedures)   \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions inherited from \mbox{\hyperlink{a02018}{AAX\+\_\+\+IACFComponent\+Descriptor\+\_\+\+V2}}}
\begin{DoxyCompactItemize}
\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02018_acbd4eb771c30fad8cf7a821941a7490e}{Add\+Temporary\+Data}} (\mbox{\hyperlink{a00542_ae807f8986143820cfb5d6da32165c9c7}{AAX\+\_\+\+CField\+Index}} in\+Field\+Index, uint32\+\_\+t in\+Data\+Element\+Size)=0
\begin{DoxyCompactList}\small\item\em Adds a block of data to a context that is not saved between callbacks and is scaled by the system buffer size.   \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions inherited from \mbox{\hyperlink{a02014}{AAX\+\_\+\+IACFComponent\+Descriptor}}}
\begin{DoxyCompactItemize}
\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02014_ab93e4b968f3239326ac1046b64eab2f5}{Clear}} ()=0
\begin{DoxyCompactList}\small\item\em Clears the descriptor.   \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02014_aa81ce274471a76742e71d02bc3442253}{Add\+Reserved\+Field}} (\mbox{\hyperlink{a00542_ae807f8986143820cfb5d6da32165c9c7}{AAX\+\_\+\+CField\+Index}} in\+Field\+Index, uint32\+\_\+t in\+Field\+Type)=0
\begin{DoxyCompactList}\small\item\em Subscribes a context field to host-\/provided services or information.   \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02014_a81370dad377b30b3c5dec9ba0e9ad310}{Add\+Audio\+In}} (\mbox{\hyperlink{a00542_ae807f8986143820cfb5d6da32165c9c7}{AAX\+\_\+\+CField\+Index}} in\+Field\+Index)=0
\begin{DoxyCompactList}\small\item\em Subscribes an audio input context field.   \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02014_a70e7e5c55208bcafd6b402eebf12aeb7}{Add\+Audio\+Out}} (\mbox{\hyperlink{a00542_ae807f8986143820cfb5d6da32165c9c7}{AAX\+\_\+\+CField\+Index}} in\+Field\+Index)=0
\begin{DoxyCompactList}\small\item\em Subscribes an audio output context field.   \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02014_a38c2683ca133ca0863e4645afd27ab9f}{Add\+Audio\+Buffer\+Length}} (\mbox{\hyperlink{a00542_ae807f8986143820cfb5d6da32165c9c7}{AAX\+\_\+\+CField\+Index}} in\+Field\+Index)=0
\begin{DoxyCompactList}\small\item\em Subscribes a buffer length context field.   \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02014_aa59e93b261ae1f4951ed84b55b70742e}{Add\+Sample\+Rate}} (\mbox{\hyperlink{a00542_ae807f8986143820cfb5d6da32165c9c7}{AAX\+\_\+\+CField\+Index}} in\+Field\+Index)=0
\begin{DoxyCompactList}\small\item\em Subscribes a sample rate context field.   \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02014_af9864953ec953720b844e9ad57a2da14}{Add\+Clock}} (\mbox{\hyperlink{a00542_ae807f8986143820cfb5d6da32165c9c7}{AAX\+\_\+\+CField\+Index}} in\+Field\+Index)=0
\begin{DoxyCompactList}\small\item\em Subscribes a clock context field.   \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02014_ac88f0100827278c2f9bfae2f74ae103f}{Add\+Side\+Chain\+In}} (\mbox{\hyperlink{a00542_ae807f8986143820cfb5d6da32165c9c7}{AAX\+\_\+\+CField\+Index}} in\+Field\+Index)=0
\begin{DoxyCompactList}\small\item\em Subscribes a side-\/chain input context field.   \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02014_af15ea360a7e581ac796b95b473057dad}{Add\+Data\+In\+Port}} (\mbox{\hyperlink{a00542_ae807f8986143820cfb5d6da32165c9c7}{AAX\+\_\+\+CField\+Index}} in\+Field\+Index, uint32\+\_\+t in\+Packet\+Size, \mbox{\hyperlink{a00446_ab5677b173ad8647c24d34d28272d11fc}{AAX\+\_\+\+EData\+In\+Port\+Type}} in\+Port\+Type)=0
\begin{DoxyCompactList}\small\item\em Adds a custom data port to the algorithm context.   \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02014_a9207476186fa1b1fb361dd36b242e567}{Add\+Aux\+Output\+Stem}} (\mbox{\hyperlink{a00542_ae807f8986143820cfb5d6da32165c9c7}{AAX\+\_\+\+CField\+Index}} in\+Field\+Index, int32\+\_\+t in\+Stem\+Format, const char in\+Name\+UTF8\mbox{[}$\,$\mbox{]})=0
\begin{DoxyCompactList}\small\item\em Adds an auxiliary output stem for a plug-\/in.   \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02014_aaec556edd58fea7d4b6c404f7ce1f95c}{Add\+Private\+Data}} (\mbox{\hyperlink{a00542_ae807f8986143820cfb5d6da32165c9c7}{AAX\+\_\+\+CField\+Index}} in\+Field\+Index, int32\+\_\+t in\+Data\+Size, uint32\+\_\+t in\+Options=\mbox{\hyperlink{a00446_a9f1ef2cb64daf30eaf145dfbb8cd0d00a59458e9bf18919c51e59eb2fd6e84a9a}{AAX\+\_\+e\+Private\+Data\+Options\+\_\+\+Default\+Options}})=0
\begin{DoxyCompactList}\small\item\em Adds a private data port to the algorithm context.   \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02014_aed4d0748c59e03fe18b79b924f7dbaab}{Add\+Dma\+Instance}} (\mbox{\hyperlink{a00542_ae807f8986143820cfb5d6da32165c9c7}{AAX\+\_\+\+CField\+Index}} in\+Field\+Index, \mbox{\hyperlink{a02250_af8d0f19f2896dd6dbd126b919b24e39b}{AAX\+\_\+\+IDma\+::\+EMode}} in\+Dma\+Mode)=0
\begin{DoxyCompactList}\small\item\em Adds a DMA field to the plug-\/in\textquotesingle{}s context.   \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02014_a72b9908f5bbef7d5fb3d259b76861a82}{Add\+MIDINode}} (\mbox{\hyperlink{a00542_ae807f8986143820cfb5d6da32165c9c7}{AAX\+\_\+\+CField\+Index}} in\+Field\+Index, \mbox{\hyperlink{a00446_a5e1dffce35d05990dbbad651702678e4}{AAX\+\_\+\+EMIDINode\+Type}} in\+Node\+Type, const char in\+Node\+Name\mbox{[}$\,$\mbox{]}, uint32\+\_\+t channel\+Mask)=0
\begin{DoxyCompactList}\small\item\em Adds a MIDI node field to the plug-\/in\textquotesingle{}s context.   \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02014_a4acfd619cfbd35ffd0ff20ca67bda305}{Add\+Process\+Proc\+\_\+\+Native}} (\mbox{\hyperlink{a00779_ad6dd5e1aa5bd2f8462966685e3b26a6e}{AAX\+\_\+\+CProcess\+Proc}} in\+Process\+Proc, \mbox{\hyperlink{a01770}{IACFUnknown}} $\ast$in\+Properties, \mbox{\hyperlink{a00779_a3963a850079d3186e08c97a1a4d0ef1c}{AAX\+\_\+\+CInstance\+Init\+Proc}} in\+Instance\+Init\+Proc, \mbox{\hyperlink{a00779_aa64561d963284a3124a0821e7dc79c9a}{AAX\+\_\+\+CBackground\+Proc}} in\+Background\+Proc, \mbox{\hyperlink{a00542_aeaf9b387f902c50a8360ff423f4a1f23}{AAX\+\_\+\+CSelector}} $\ast$out\+Proc\+ID)=0
\begin{DoxyCompactList}\small\item\em Registers an algorithm processing entrypoint (process procedure) for the native architecture.   \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02014_adf549e7f348c670b79bdb5f283798db2}{Add\+Process\+Proc\+\_\+\+TI}} (const char in\+DLLFile\+Name\+UTF8\mbox{[}$\,$\mbox{]}, const char in\+Process\+Proc\+Symbol\mbox{[}$\,$\mbox{]}, \mbox{\hyperlink{a01770}{IACFUnknown}} $\ast$in\+Properties, const char in\+Instance\+Init\+Proc\+Symbol\mbox{[}$\,$\mbox{]}, const char in\+Background\+Proc\+Symbol\mbox{[}$\,$\mbox{]}, \mbox{\hyperlink{a00542_aeaf9b387f902c50a8360ff423f4a1f23}{AAX\+\_\+\+CSelector}} $\ast$out\+Proc\+ID)=0
\begin{DoxyCompactList}\small\item\em Registers an algorithm processing entrypoint (process procedure) for the native architecture.   \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02014_a6b7aec8153fb7243d62284ea504c5681}{Add\+Meters}} (\mbox{\hyperlink{a00542_ae807f8986143820cfb5d6da32165c9c7}{AAX\+\_\+\+CField\+Index}} in\+Field\+Index, const \mbox{\hyperlink{a00542_ac678f9c1fbcc26315d209f71a147a175}{AAX\+\_\+\+CType\+ID}} $\ast$in\+Meter\+IDs, const uint32\+\_\+t in\+Meter\+Count)=0
\begin{DoxyCompactList}\small\item\em Adds a meter field to the plug-\/in\textquotesingle{}s context.   \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions inherited from \mbox{\hyperlink{a01770}{IACFUnknown}}}
\begin{DoxyCompactItemize}
\item 
virtual BEGIN\+\_\+\+ACFINTERFACE ACFRESULT ACFMETHODCALLTYPE \mbox{\hyperlink{a01770_a8b7f0ae9c78d007ca76aa462ebe53135}{Query\+Interface}} (const \mbox{\hyperlink{a00308_a59df0b41744eee7a066787aaedf97f67}{acf\+IID}} \&iid, void $\ast$$\ast$pp\+Out)=0
\begin{DoxyCompactList}\small\item\em Returns pointers to supported interfaces. \end{DoxyCompactList}\item 
virtual acf\+UInt32 ACFMETHODCALLTYPE \mbox{\hyperlink{a01770_aa9c7a5b9dff341092b7b86bb9b3a58fb}{Add\+Ref}} (void)=0
\begin{DoxyCompactList}\small\item\em Increments reference count. \end{DoxyCompactList}\item 
virtual acf\+UInt32 ACFMETHODCALLTYPE \mbox{\hyperlink{a01770_afabd38cec0a9ed37f1d3e8644a70ac41}{Release}} (void)=0
\begin{DoxyCompactList}\small\item\em Decrements reference count. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{a02022_aa42746bcccc0e91186464f86b39b8cff}\label{a02022_aa42746bcccc0e91186464f86b39b8cff}} 
\index{AAX\_IACFComponentDescriptor\_V3@{AAX\_IACFComponentDescriptor\_V3}!AddProcessProc@{AddProcessProc}}
\index{AddProcessProc@{AddProcessProc}!AAX\_IACFComponentDescriptor\_V3@{AAX\_IACFComponentDescriptor\_V3}}
\doxysubsubsection{\texorpdfstring{AddProcessProc()}{AddProcessProc()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IACFComponent\+Descriptor\+\_\+\+V3\+::\+Add\+Process\+Proc (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a01770}{IACFUnknown}} $\ast$}]{in\+Properties,  }\item[{\mbox{\hyperlink{a00542_aeaf9b387f902c50a8360ff423f4a1f23}{AAX\+\_\+\+CSelector}} $\ast$}]{out\+Proc\+IDs,  }\item[{int32\+\_\+t}]{in\+Proc\+IDs\+Size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Registers one or more algorithm processing entrypoints (process procedures)   

Any non-\/overlapping set of processing entrypoints may be specified. Typically this can be used to specify both Native and TI entrypoints using the same call.

The AAX Library implementation of this method includes backwards compatibility logic to complete the Process\+Proc registration on hosts which do not support this method. Therefore plug-\/in code may use this single registration routine instead of separate calls to \mbox{\hyperlink{a02014_a4acfd619cfbd35ffd0ff20ca67bda305}{Add\+Process\+Proc\+\_\+\+Native()}}, \mbox{\hyperlink{a02014_adf549e7f348c670b79bdb5f283798db2}{Add\+Process\+Proc\+\_\+\+TI()}}, etc. regardless of the host version.

The following properties replace the input arguments to the platform-\/specific registration methods\+:

\mbox{\hyperlink{a02014_a4acfd619cfbd35ffd0ff20ca67bda305}{Add\+Process\+Proc\+\_\+\+Native()}} (\mbox{\hyperlink{a00608_a13e384f22825afd3db6d68395b79ce0da89ca3dd6e96895cda14976c1b1ceb826}{AAX\+\_\+e\+Property\+\_\+\+Plug\+In\+ID\+\_\+\+Native}}, \mbox{\hyperlink{a00608_a13e384f22825afd3db6d68395b79ce0dad3344696b8298a8b254add3d039ea927}{AAX\+\_\+e\+Property\+\_\+\+Plug\+In\+ID\+\_\+\+Audio\+Suite}})
\begin{DoxyItemize}
\item \mbox{\hyperlink{a00779_ad6dd5e1aa5bd2f8462966685e3b26a6e}{AAX\+\_\+\+CProcess\+Proc}} {\ttfamily i\+Process\+Proc\+:} \mbox{\hyperlink{a00608_a13e384f22825afd3db6d68395b79ce0da43e55994526d4623cab23fc3200d3762}{AAX\+\_\+e\+Property\+\_\+\+Native\+Process\+Proc}} (required)
\item \mbox{\hyperlink{a00779_a3963a850079d3186e08c97a1a4d0ef1c}{AAX\+\_\+\+CInstance\+Init\+Proc}} {\ttfamily i\+Instance\+Init\+Proc\+:} \mbox{\hyperlink{a00608_a13e384f22825afd3db6d68395b79ce0da0f182ea271ec0aa1a49dd9c995826ef5}{AAX\+\_\+e\+Property\+\_\+\+Native\+Instance\+Init\+Proc}} (optional)
\item \mbox{\hyperlink{a00779_aa64561d963284a3124a0821e7dc79c9a}{AAX\+\_\+\+CBackground\+Proc}} {\ttfamily i\+Background\+Proc\+:} \mbox{\hyperlink{a00608_a13e384f22825afd3db6d68395b79ce0daee9d07e634f3f31988e0bbcfa33a6222}{AAX\+\_\+e\+Property\+\_\+\+Native\+Background\+Proc}} (optional)
\end{DoxyItemize}

\mbox{\hyperlink{a02014_adf549e7f348c670b79bdb5f283798db2}{Add\+Process\+Proc\+\_\+\+TI()}} (\mbox{\hyperlink{a00608_a13e384f22825afd3db6d68395b79ce0da75f174df4efbeca86eaada126c1d9214}{AAX\+\_\+e\+Property\+\_\+\+Plug\+In\+ID\+\_\+\+TI}})
\begin{DoxyItemize}
\item {\ttfamily const char in\+DLLFile\+Name\+UTF8\mbox{[}\mbox{]}}\+: \mbox{\hyperlink{a00608_a13e384f22825afd3db6d68395b79ce0daa38d1dee38945c7b0f5333b6cec02819}{AAX\+\_\+e\+Property\+\_\+\+TIDLLFile\+Name}} (required)
\item {\ttfamily const char i\+Process\+Proc\+Symbol\mbox{[}\mbox{]}}\+: \mbox{\hyperlink{a00608_a13e384f22825afd3db6d68395b79ce0da1c4750cff6cd0dc467287edfb88ed495}{AAX\+\_\+e\+Property\+\_\+\+TIProcess\+Proc}} (required)
\item {\ttfamily const char i\+Instance\+Init\+Proc\+Symbol\mbox{[}\mbox{]}}\+: \mbox{\hyperlink{a00608_a13e384f22825afd3db6d68395b79ce0dace404ac7f105c8bca24cf14e26479265}{AAX\+\_\+e\+Property\+\_\+\+TIInstance\+Init\+Proc}} (optional)
\item {\ttfamily const char i\+Background\+Proc\+Symbol\mbox{[}\mbox{]}}\+: \mbox{\hyperlink{a00608_a13e384f22825afd3db6d68395b79ce0dafcf70d8ff9b7a5853ce6248b8deeaeef}{AAX\+\_\+e\+Property\+\_\+\+TIBackground\+Proc}} (optional)
\end{DoxyItemize}

If any platform-\/specific plug-\/in ID property is present in {\ttfamily i\+Properties} then \mbox{\hyperlink{a02022_aa42746bcccc0e91186464f86b39b8cff}{Add\+Process\+Proc()}} will check for the required properties for that platform.

\begin{DoxyNote}{Note}
\mbox{\hyperlink{a00608_a13e384f22825afd3db6d68395b79ce0da34b1ae8c8edd3080aee6cd677bed9611}{AAX\+\_\+e\+Property\+\_\+\+Audio\+Buffer\+Length}} will be ignored for the Native and Audio\+Suite Process\+Procs since it should only be used for AAX DSP.
\end{DoxyNote}

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em in\+Properties} & A property map for this processing callback. The property map\textquotesingle{}s values are copied by the host and associated with the new Process\+Proc. The property map contents are unchanged and the map may be re-\/used when registering additional Process\+Procs.\\
\hline
\mbox{\texttt{ out}}  & {\em out\+Proc\+IDs} & \\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{a00878__todo000045}{Todo}}]document this parameter Returned array will be NULL-\/terminated\end{DoxyRefDesc}



\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em in\+Proc\+IDs\+Size} & The size of the array provided to {\ttfamily o\+Proc\+IDs}. If {\ttfamily o\+Proc\+IDs} is non-\/\+NULL but {\ttfamily i\+Proc\+IDs\+Size} is not large enough for all of the registered Process\+Procs (plus one for NULL termination) then this method will fail with \mbox{\hyperlink{a00539_a5f8c7439f3a706c4f8315a9609811937af9fc41c647e2c9959ed6ebb45191be52}{AAX\+\_\+\+ERROR\+\_\+\+ARGUMENT\+\_\+\+BUFFER\+\_\+\+OVERFLOW}}   \\
\hline
\end{DoxyParams}


The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{a00632}{AAX\+\_\+\+IACFComponent\+Descriptor.\+h}}\end{DoxyCompactItemize}
