\hypertarget{a02278}{}\doxysection{AAX\+\_\+\+IHost\+Processor\+Delegate Class Reference}
\label{a02278}\index{AAX\_IHostProcessorDelegate@{AAX\_IHostProcessorDelegate}}


{\ttfamily \#include $<$AAX\+\_\+\+IHost\+Processor\+Delegate.\+h$>$}



Inheritance diagram for AAX\+\_\+\+IHost\+Processor\+Delegate\+:
% FIG 0


\doxysubsection{Description}
Versioned interface for host methods specific to offline processing. 

\begin{DoxyRefDesc}{\+:\+Implemented by the AAX Host}
\item[\mbox{\hyperlink{a00884__aax_host_implementation000007}{\+:\+Implemented by the AAX Host}}]\end{DoxyRefDesc}


The host provides a host processor delegate to a plug-\/in\textquotesingle{}s \mbox{\hyperlink{a02274}{host processor}} object at initialization. The host processor object may make calls to this object to get information about the current render pass or to affect the plug-\/in\textquotesingle{}s offline processing behavior. \doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual \mbox{\hyperlink{a02278_ad3a419f006b4a5dda335d5c3aa0f8d9f}{$\sim$\+AAX\+\_\+\+IHost\+Processor\+Delegate}} ()
\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02278_aa7d5eb30282956a40ed34acc5881298c}{Get\+Audio}} (const float $\ast$const in\+Audio\+Ins\mbox{[}$\,$\mbox{]}, int32\+\_\+t in\+Audio\+In\+Count, int64\+\_\+t in\+Location, int32\+\_\+t $\ast$io\+Num\+Samples)=0
\begin{DoxyCompactList}\small\item\em CALL\+: Randomly access audio from the timeline. \end{DoxyCompactList}\item 
virtual int32\+\_\+t \mbox{\hyperlink{a02278_aaf6821f08105fd949aa9e78f3a1f7f50}{Get\+Side\+Chain\+Input\+Num}} ()=0
\begin{DoxyCompactList}\small\item\em CALL\+: Returns the index of the side chain input buffer. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02278_a8ab521c8f0902707a8e8d67d7886d4f4}{Force\+Analyze}} ()=0
\begin{DoxyCompactList}\small\item\em CALL\+: Request an analysis pass. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02278_a09793675802a25886bc050cee4b9f843}{Force\+Process}} ()=0
\begin{DoxyCompactList}\small\item\em CALL\+: Request a process pass. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{a02278_ad3a419f006b4a5dda335d5c3aa0f8d9f}\label{a02278_ad3a419f006b4a5dda335d5c3aa0f8d9f}} 
\index{AAX\_IHostProcessorDelegate@{AAX\_IHostProcessorDelegate}!````~AAX\_IHostProcessorDelegate@{$\sim$AAX\_IHostProcessorDelegate}}
\index{````~AAX\_IHostProcessorDelegate@{$\sim$AAX\_IHostProcessorDelegate}!AAX\_IHostProcessorDelegate@{AAX\_IHostProcessorDelegate}}
\doxysubsubsection{\texorpdfstring{$\sim$AAX\_IHostProcessorDelegate()}{~AAX\_IHostProcessorDelegate()}}
{\footnotesize\ttfamily virtual AAX\+\_\+\+IHost\+Processor\+Delegate\+::$\sim$\+AAX\+\_\+\+IHost\+Processor\+Delegate (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{a02278_aa7d5eb30282956a40ed34acc5881298c}\label{a02278_aa7d5eb30282956a40ed34acc5881298c}} 
\index{AAX\_IHostProcessorDelegate@{AAX\_IHostProcessorDelegate}!GetAudio@{GetAudio}}
\index{GetAudio@{GetAudio}!AAX\_IHostProcessorDelegate@{AAX\_IHostProcessorDelegate}}
\doxysubsubsection{\texorpdfstring{GetAudio()}{GetAudio()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IHost\+Processor\+Delegate\+::\+Get\+Audio (\begin{DoxyParamCaption}\item[{const float $\ast$const}]{in\+Audio\+Ins\mbox{[}$\,$\mbox{]},  }\item[{int32\+\_\+t}]{in\+Audio\+In\+Count,  }\item[{int64\+\_\+t}]{in\+Location,  }\item[{int32\+\_\+t $\ast$}]{io\+Num\+Samples }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



CALL\+: Randomly access audio from the timeline. 

Called from within \mbox{\hyperlink{a02090_a8ede94912e89621bf6951042687c3c4a}{AAX\+\_\+\+IHost\+Processor\+::\+Render\+Audio()}}, this method fills a buffer of samples with randomly-\/accessed data from the current input processing region on the timeline, including any extra samples such as processing \char`\"{}handles\char`\"{}.

\begin{DoxyNote}{Note}
Plug-\/ins that use this feature must set \mbox{\hyperlink{a00608_a13e384f22825afd3db6d68395b79ce0dab0bbaabe0a03b37e5a69f04a6f306076}{AAX\+\_\+e\+Property\+\_\+\+Uses\+Random\+Access}} to {\ttfamily true} 

It is not possible to retrieve samples from outside of the current input processing region 

Always check the return value of this method before using the randomly-\/accessed samples
\end{DoxyNote}

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em in\+Audio\+Ins} & Timeline audio buffer(s). This must be set to {\ttfamily in\+Audio\+Ins} from \mbox{\hyperlink{a02090_a8ede94912e89621bf6951042687c3c4a}{AAX\+\_\+\+IHost\+Processor\+::\+Render\+Audio()}}\\
\hline
\mbox{\texttt{ in}}  & {\em in\+Audio\+In\+Count} & Number of buffers in {\ttfamily in\+Audio\+Ins}. This must be set to {\ttfamily in\+Audio\+In\+Count} from \mbox{\hyperlink{a02090_a8ede94912e89621bf6951042687c3c4a}{AAX\+\_\+\+IHost\+Processor\+::\+Render\+Audio()}}\\
\hline
\mbox{\texttt{ in}}  & {\em in\+Location} & A sample location relative to the beginning of the currently processed region, e.\+g. a value of 0 corresponds to the timeline location returned by \mbox{\hyperlink{a01854_aec4fa455a4e8ecccc245ce30b596c7b4}{AAX\+\_\+\+CHost\+Processor\+::\+Get\+Src\+Start()}} \\
\hline
\mbox{\texttt{ in,out}}  & {\em io\+Num\+Samples} & \begin{DoxyItemize}
\item Input\+: The maximum number of samples to read. \item Output\+: The actual number of samples that were read from the timeline \end{DoxyItemize}
\\
\hline
\end{DoxyParams}


Implemented in \mbox{\hyperlink{a02398_ab0d993a9b5f73d8fd82171da25e21018}{AAX\+\_\+\+VHost\+Processor\+Delegate}}.

\mbox{\Hypertarget{a02278_aaf6821f08105fd949aa9e78f3a1f7f50}\label{a02278_aaf6821f08105fd949aa9e78f3a1f7f50}} 
\index{AAX\_IHostProcessorDelegate@{AAX\_IHostProcessorDelegate}!GetSideChainInputNum@{GetSideChainInputNum}}
\index{GetSideChainInputNum@{GetSideChainInputNum}!AAX\_IHostProcessorDelegate@{AAX\_IHostProcessorDelegate}}
\doxysubsubsection{\texorpdfstring{GetSideChainInputNum()}{GetSideChainInputNum()}}
{\footnotesize\ttfamily virtual int32\+\_\+t AAX\+\_\+\+IHost\+Processor\+Delegate\+::\+Get\+Side\+Chain\+Input\+Num (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



CALL\+: Returns the index of the side chain input buffer. 

Called from within \mbox{\hyperlink{a02090_a8ede94912e89621bf6951042687c3c4a}{AAX\+\_\+\+IHost\+Processor\+::\+Render\+Audio()}}, this method returns the index of the side chain input sample buffer within {\ttfamily in\+Audio\+Ins}. 

Implemented in \mbox{\hyperlink{a02398_a31d793b6a43eb642446f6149621bcdf9}{AAX\+\_\+\+VHost\+Processor\+Delegate}}.

\mbox{\Hypertarget{a02278_a8ab521c8f0902707a8e8d67d7886d4f4}\label{a02278_a8ab521c8f0902707a8e8d67d7886d4f4}} 
\index{AAX\_IHostProcessorDelegate@{AAX\_IHostProcessorDelegate}!ForceAnalyze@{ForceAnalyze}}
\index{ForceAnalyze@{ForceAnalyze}!AAX\_IHostProcessorDelegate@{AAX\_IHostProcessorDelegate}}
\doxysubsubsection{\texorpdfstring{ForceAnalyze()}{ForceAnalyze()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IHost\+Processor\+Delegate\+::\+Force\+Analyze (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



CALL\+: Request an analysis pass. 

Call this method to request an analysis pass from within the plug-\/in. Most plug-\/ins should rely on the host to trigger analysis passes when appropriate. However, plug-\/ins that require an analysis pass a) outside of the context of host-\/driven render or analysis, or b) when internal plug-\/in data changes may need to call {\ttfamily \mbox{\hyperlink{a02278_a8ab521c8f0902707a8e8d67d7886d4f4}{Force\+Analyze()}}}. 

Implemented in \mbox{\hyperlink{a02398_aeb3eb18f1c9562a31173d600dad9b251}{AAX\+\_\+\+VHost\+Processor\+Delegate}}.

\mbox{\Hypertarget{a02278_a09793675802a25886bc050cee4b9f843}\label{a02278_a09793675802a25886bc050cee4b9f843}} 
\index{AAX\_IHostProcessorDelegate@{AAX\_IHostProcessorDelegate}!ForceProcess@{ForceProcess}}
\index{ForceProcess@{ForceProcess}!AAX\_IHostProcessorDelegate@{AAX\_IHostProcessorDelegate}}
\doxysubsubsection{\texorpdfstring{ForceProcess()}{ForceProcess()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IHost\+Processor\+Delegate\+::\+Force\+Process (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



CALL\+: Request a process pass. 

Call this method to request a process pass from within the plug-\/in. If \mbox{\hyperlink{a00608_a13e384f22825afd3db6d68395b79ce0da925c49bb79454b33bf1d5f4cb09d373f}{AAX\+\_\+e\+Property\+\_\+\+Requires\+Analysis}} is defined, the resulting process pass will be preceded by an analysis pass. This method should only be used in rare circumstances by plug-\/ins that must launch processing outside of the normal host Audio\+Suite workflow. 

Implemented in \mbox{\hyperlink{a02398_a5e72699c0dafb133a2dfabf63ba8f56a}{AAX\+\_\+\+VHost\+Processor\+Delegate}}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{a00449}{AAX\+\_\+\+IHost\+Processor\+Delegate.\+h}}\end{DoxyCompactItemize}
