\hypertarget{a02054}{}\doxysection{AAX\+\_\+\+IACFEffect\+Direct\+Data Class Reference}
\label{a02054}\index{AAX\_IACFEffectDirectData@{AAX\_IACFEffectDirectData}}


{\ttfamily \#include $<$AAX\+\_\+\+IACFEffect\+Direct\+Data.\+h$>$}



Inheritance diagram for AAX\+\_\+\+IACFEffect\+Direct\+Data\+:
% FIG 0


Collaboration diagram for AAX\+\_\+\+IACFEffect\+Direct\+Data\+:
% FIG 1


\doxysubsection{Description}
Optional interface for direct access to a plug-\/in\textquotesingle{}s alg memory. 

Direct data access allows a plug-\/in to directly manipulate the data in its algorithm\textquotesingle{}s private data blocks. The callback methods in this interface provide a safe context from which this kind of access may be attempted. \doxysubsection*{Public Member Functions}
\begin{Indent}\textbf{ Initialization and uninitialization}\par
\begin{DoxyCompactItemize}
\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02054_adefbc617c71ea5ea6512fb79a116dbf7}{Initialize}} (\mbox{\hyperlink{a01770}{IACFUnknown}} $\ast$i\+Controller)=0
\begin{DoxyCompactList}\small\item\em Main initialization. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02054_ad56406a13dd691db6f1117ab97cfc90a}{Uninitialize}} ()=0
\begin{DoxyCompactList}\small\item\em Main uninitialization. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Safe data update callbacks}\par
{\em These callbacks provide a safe context from which to directly access the algorithm\textquotesingle{}s private data blocks. Each callback is called regularly with roughly the schedule of its corresponding \mbox{\hyperlink{a02266}{AAX\+\_\+\+IEffect\+Parameters}} counterpart.

\begin{DoxyNote}{Note}
Do not attempt to directly access the algorithm\textquotesingle{}s data from outside these callbacks. Instead, use the packet system to route data to the algorithm using the AAX host\textquotesingle{}s buffered data transfer facilities. 
\end{DoxyNote}
}\begin{DoxyCompactItemize}
\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02054_afb4fa2c566547d7bd303166cf50741bb}{Timer\+Wakeup}} (\mbox{\hyperlink{a01770}{IACFUnknown}} $\ast$i\+Data\+Access\+Interface)=0
\begin{DoxyCompactList}\small\item\em Periodic wakeup callback for idle-\/time operations. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\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{a02054_adefbc617c71ea5ea6512fb79a116dbf7}\label{a02054_adefbc617c71ea5ea6512fb79a116dbf7}} 
\index{AAX\_IACFEffectDirectData@{AAX\_IACFEffectDirectData}!Initialize@{Initialize}}
\index{Initialize@{Initialize}!AAX\_IACFEffectDirectData@{AAX\_IACFEffectDirectData}}
\doxysubsubsection{\texorpdfstring{Initialize()}{Initialize()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IACFEffect\+Direct\+Data\+::\+Initialize (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a01770}{IACFUnknown}} $\ast$}]{i\+Controller }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Main initialization. 

Called when the interface is created


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em i\+Controller} & A versioned reference that resolves to an \mbox{\hyperlink{a02222}{AAX\+\_\+\+IController}} interface \\
\hline
\end{DoxyParams}


Implemented in \mbox{\hyperlink{a01842_ad89ee93781539d8df3b0710a186c7e0d}{AAX\+\_\+\+CEffect\+Direct\+Data}}.

\mbox{\Hypertarget{a02054_ad56406a13dd691db6f1117ab97cfc90a}\label{a02054_ad56406a13dd691db6f1117ab97cfc90a}} 
\index{AAX\_IACFEffectDirectData@{AAX\_IACFEffectDirectData}!Uninitialize@{Uninitialize}}
\index{Uninitialize@{Uninitialize}!AAX\_IACFEffectDirectData@{AAX\_IACFEffectDirectData}}
\doxysubsubsection{\texorpdfstring{Uninitialize()}{Uninitialize()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IACFEffect\+Direct\+Data\+::\+Uninitialize (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Main uninitialization. 

Called when the interface is destroyed. 

Implemented in \mbox{\hyperlink{a01842_a49f02465aa623666f9e43a8646d9e56c}{AAX\+\_\+\+CEffect\+Direct\+Data}}.

\mbox{\Hypertarget{a02054_afb4fa2c566547d7bd303166cf50741bb}\label{a02054_afb4fa2c566547d7bd303166cf50741bb}} 
\index{AAX\_IACFEffectDirectData@{AAX\_IACFEffectDirectData}!TimerWakeup@{TimerWakeup}}
\index{TimerWakeup@{TimerWakeup}!AAX\_IACFEffectDirectData@{AAX\_IACFEffectDirectData}}
\doxysubsubsection{\texorpdfstring{TimerWakeup()}{TimerWakeup()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IACFEffect\+Direct\+Data\+::\+Timer\+Wakeup (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a01770}{IACFUnknown}} $\ast$}]{i\+Data\+Access\+Interface }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Periodic wakeup callback for idle-\/time operations. 

Direct alg data updates must be triggered from this method.

This method is called from the host using a non-\/main thread. In general, it should be driven at approximately one call per 30 ms. However, the wakeup is not guaranteed to be called at any regular interval -\/ for example, it could be held off by a high real-\/time processing load -\/ and there is no host contract regarding maximum latency between wakeup calls.

This wakeup thread runs continuously and cannot be armed/disarmed or by the plug-\/in.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em i\+Data\+Access\+Interface} & Reference to the direct access interface.\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
It is not safe to save this address or call the methods in this interface from other threads. 
\end{DoxyNote}


Implemented in \mbox{\hyperlink{a01842_a3ed665cfbece195524e208e61b4d1937}{AAX\+\_\+\+CEffect\+Direct\+Data}}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{a00431}{AAX\+\_\+\+IACFEffect\+Direct\+Data.\+h}}\end{DoxyCompactItemize}
