\hypertarget{a02185}{}\doxysection{AAX\+\_\+\+IAutomation\+Delegate Class Reference}
\label{a02185}\index{AAX\_IAutomationDelegate@{AAX\_IAutomationDelegate}}


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



Inheritance diagram for AAX\+\_\+\+IAutomation\+Delegate\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=216pt]{a02184}
\end{center}
\end{figure}


\doxysubsection{Description}
Interface allowing an AAX plug-\/in to interact with the host\textquotesingle{}s event system. 

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


This delegate provides a means of interacting with the host\textquotesingle{}s event system in order to ensure that events such as parameter updates are properly arbitrated and broadcast to all listeners. The automation delegate is used regardless of whether or not an individual parameter is \char`\"{}automatable\char`\"{} or \char`\"{}automation-\/enabled\char`\"{}.

A parameter must be registered with the automation delegate in order for updates to the parameter\textquotesingle{}s control in the plug-\/in\textquotesingle{}s GUI or other controller (control surface, etc.) to be successfully processed by the host and sent to the \mbox{\hyperlink{a02245}{AAX\+\_\+\+IEffect\+Parameters}} object.

The parameter identifiers used by this interface correspond to the control IDs used to identify parameters in the \mbox{\hyperlink{a01901}{Parameter Mananger}}. \doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual \mbox{\hyperlink{a02185_a566c6c261d00207024a07990c86f9694}{$\sim$\+AAX\+\_\+\+IAutomation\+Delegate}} ()
\item 
virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02185_a4d91efb2d922729d02e2ea7d7a05ed10}{Register\+Parameter}} (\mbox{\hyperlink{a00533_a1440c756fe5cb158b78193b2fc1780d1}{AAX\+\_\+\+CParam\+ID}} i\+Parameter\+ID)=0
\item 
virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02185_ab1c1d4292460119b22d68247150cc1a0}{Unregister\+Parameter}} (\mbox{\hyperlink{a00533_a1440c756fe5cb158b78193b2fc1780d1}{AAX\+\_\+\+CParam\+ID}} i\+Parameter\+ID)=0
\item 
virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02185_a9d0e2c5d57d177a4dca0ff10cde0256c}{Post\+Set\+Value\+Request}} (\mbox{\hyperlink{a00533_a1440c756fe5cb158b78193b2fc1780d1}{AAX\+\_\+\+CParam\+ID}} i\+Parameter\+ID, double normalized\+Value) const =0
\item 
virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02185_a20cb518bb470b6f4cadf58e4af64ac96}{Post\+Current\+Value}} (\mbox{\hyperlink{a00533_a1440c756fe5cb158b78193b2fc1780d1}{AAX\+\_\+\+CParam\+ID}} i\+Parameter\+ID, double normalized\+Value) const =0
\item 
virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02185_a30fdb67042b8dc9fb42fa9023ed9cce0}{Post\+Touch\+Request}} (\mbox{\hyperlink{a00533_a1440c756fe5cb158b78193b2fc1780d1}{AAX\+\_\+\+CParam\+ID}} i\+Parameter\+ID)=0
\item 
virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02185_a89049fae2c35a4b99cfeb6585898bb69}{Post\+Release\+Request}} (\mbox{\hyperlink{a00533_a1440c756fe5cb158b78193b2fc1780d1}{AAX\+\_\+\+CParam\+ID}} i\+Parameter\+ID)=0
\item 
virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02185_a4436f06c72d61217cbbfc7c233501f29}{Get\+Touch\+State}} (\mbox{\hyperlink{a00533_a1440c756fe5cb158b78193b2fc1780d1}{AAX\+\_\+\+CParam\+ID}} i\+Parameter\+ID, \mbox{\hyperlink{a00533_aa216506530f1d19a2965931ced2b274b}{AAX\+\_\+\+CBoolean}} $\ast$o\+Touched)=0
\item 
virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02185_ac8e07325960d820576a5d29a6b4e0a97}{Parameter\+Name\+Changed}} (\mbox{\hyperlink{a00533_a1440c756fe5cb158b78193b2fc1780d1}{AAX\+\_\+\+CParam\+ID}} i\+Parameter\+ID)=0
\end{DoxyCompactItemize}


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



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{a02185_a4d91efb2d922729d02e2ea7d7a05ed10}\label{a02185_a4d91efb2d922729d02e2ea7d7a05ed10}} 
\index{AAX\_IAutomationDelegate@{AAX\_IAutomationDelegate}!RegisterParameter@{RegisterParameter}}
\index{RegisterParameter@{RegisterParameter}!AAX\_IAutomationDelegate@{AAX\_IAutomationDelegate}}
\doxysubsubsection{\texorpdfstring{RegisterParameter()}{RegisterParameter()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IAutomation\+Delegate\+::\+Register\+Parameter (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a00533_a1440c756fe5cb158b78193b2fc1780d1}{AAX\+\_\+\+CParam\+ID}}}]{i\+Parameter\+ID }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Register a control with the automation system using a char$\ast$ based control identifier

The automation delegate owns a list of the IDs of all of the parameters that have been registered with it. This list is used to set up listeners for all of the registered parameters such that the automation delegate may update the plug-\/in when the state of any of the registered parameters have been modified.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{a02185_ab1c1d4292460119b22d68247150cc1a0}{AAX\+\_\+\+IAutomation\+Delegate\+::\+Unregister\+Parameter()}}
\end{DoxySeeAlso}

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em i\+Parameter\+ID} & Parameter ID that is being registered \\
\hline
\end{DoxyParams}


Implemented in \mbox{\hyperlink{a02341_a763555a4ce0c2683769dd184fd2fa593}{AAX\+\_\+\+VAutomation\+Delegate}}.



Referenced by \mbox{\hyperlink{a01893_aceb34aeadaca054f318004d49a0bd5b7}{AAX\+\_\+\+CParameter$<$ T $>$\+::\+Set\+Automation\+Delegate()}}, and \mbox{\hyperlink{a01897_acaf1f39e881c14fb3b81f9c0c23fea31}{AAX\+\_\+\+CStateless\+Parameter\+::\+Set\+Automation\+Delegate()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{a02185_a4d91efb2d922729d02e2ea7d7a05ed10_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{a02185_ab1c1d4292460119b22d68247150cc1a0}\label{a02185_ab1c1d4292460119b22d68247150cc1a0}} 
\index{AAX\_IAutomationDelegate@{AAX\_IAutomationDelegate}!UnregisterParameter@{UnregisterParameter}}
\index{UnregisterParameter@{UnregisterParameter}!AAX\_IAutomationDelegate@{AAX\_IAutomationDelegate}}
\doxysubsubsection{\texorpdfstring{UnregisterParameter()}{UnregisterParameter()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IAutomation\+Delegate\+::\+Unregister\+Parameter (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a00533_a1440c756fe5cb158b78193b2fc1780d1}{AAX\+\_\+\+CParam\+ID}}}]{i\+Parameter\+ID }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Unregister a control with the automation system using a char$\ast$ based control identifier

\begin{DoxyNote}{Note}
All registered controls should be unregistered or the system might leak.
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{a02185_a4d91efb2d922729d02e2ea7d7a05ed10}{AAX\+\_\+\+IAutomation\+Delegate\+::\+Register\+Parameter()}}
\end{DoxySeeAlso}

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em i\+Parameter\+ID} & Parameter ID that is being registered \\
\hline
\end{DoxyParams}


Implemented in \mbox{\hyperlink{a02341_a35eeea2ece121cca53b285070722899c}{AAX\+\_\+\+VAutomation\+Delegate}}.



Referenced by \mbox{\hyperlink{a01897_acaf1f39e881c14fb3b81f9c0c23fea31}{AAX\+\_\+\+CStateless\+Parameter\+::\+Set\+Automation\+Delegate()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{a02185_ab1c1d4292460119b22d68247150cc1a0_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{a02185_a9d0e2c5d57d177a4dca0ff10cde0256c}\label{a02185_a9d0e2c5d57d177a4dca0ff10cde0256c}} 
\index{AAX\_IAutomationDelegate@{AAX\_IAutomationDelegate}!PostSetValueRequest@{PostSetValueRequest}}
\index{PostSetValueRequest@{PostSetValueRequest}!AAX\_IAutomationDelegate@{AAX\_IAutomationDelegate}}
\doxysubsubsection{\texorpdfstring{PostSetValueRequest()}{PostSetValueRequest()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IAutomation\+Delegate\+::\+Post\+Set\+Value\+Request (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a00533_a1440c756fe5cb158b78193b2fc1780d1}{AAX\+\_\+\+CParam\+ID}}}]{i\+Parameter\+ID,  }\item[{double}]{normalized\+Value }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Submits a request for the given parameter\textquotesingle{}s value to be changed


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em i\+Parameter\+ID} & ID of the parameter for which a change is requested \\
\hline
\mbox{\texttt{ in}}  & {\em normalized\+Value} & The requested new parameter value, formatted as a double and normalized to \mbox{[}0 1\mbox{]} \\
\hline
\end{DoxyParams}


Implemented in \mbox{\hyperlink{a02341_aa5cf0c24ae65a07cb6d4bd523c7ef93a}{AAX\+\_\+\+VAutomation\+Delegate}}.

\mbox{\Hypertarget{a02185_a20cb518bb470b6f4cadf58e4af64ac96}\label{a02185_a20cb518bb470b6f4cadf58e4af64ac96}} 
\index{AAX\_IAutomationDelegate@{AAX\_IAutomationDelegate}!PostCurrentValue@{PostCurrentValue}}
\index{PostCurrentValue@{PostCurrentValue}!AAX\_IAutomationDelegate@{AAX\_IAutomationDelegate}}
\doxysubsubsection{\texorpdfstring{PostCurrentValue()}{PostCurrentValue()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IAutomation\+Delegate\+::\+Post\+Current\+Value (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a00533_a1440c756fe5cb158b78193b2fc1780d1}{AAX\+\_\+\+CParam\+ID}}}]{i\+Parameter\+ID,  }\item[{double}]{normalized\+Value }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Notifies listeners that a parameter\textquotesingle{}s value has changed


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em i\+Parameter\+ID} & ID of the parameter that has been updated \\
\hline
\mbox{\texttt{ in}}  & {\em normalized\+Value} & The current parameter value, formatted as a double and normalized to \mbox{[}0 1\mbox{]} \\
\hline
\end{DoxyParams}


Implemented in \mbox{\hyperlink{a02341_a3c2c9825150df103bca6c1e740a01fdb}{AAX\+\_\+\+VAutomation\+Delegate}}.

\mbox{\Hypertarget{a02185_a30fdb67042b8dc9fb42fa9023ed9cce0}\label{a02185_a30fdb67042b8dc9fb42fa9023ed9cce0}} 
\index{AAX\_IAutomationDelegate@{AAX\_IAutomationDelegate}!PostTouchRequest@{PostTouchRequest}}
\index{PostTouchRequest@{PostTouchRequest}!AAX\_IAutomationDelegate@{AAX\_IAutomationDelegate}}
\doxysubsubsection{\texorpdfstring{PostTouchRequest()}{PostTouchRequest()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IAutomation\+Delegate\+::\+Post\+Touch\+Request (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a00533_a1440c756fe5cb158b78193b2fc1780d1}{AAX\+\_\+\+CParam\+ID}}}]{i\+Parameter\+ID }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Requests that the given parameter be \char`\"{}touched\char`\"{}, i.\+e. locked for updates by the current client


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em i\+Parameter\+ID} & ID of the parameter that will be touched \\
\hline
\end{DoxyParams}


Implemented in \mbox{\hyperlink{a02341_a2941ee0db1ec78047f389090c75d3835}{AAX\+\_\+\+VAutomation\+Delegate}}.



Referenced by \mbox{\hyperlink{a01897_a91eda962cdbf1e211a396240c23c0330}{AAX\+\_\+\+CStateless\+Parameter\+::\+Touch()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{a02185_a30fdb67042b8dc9fb42fa9023ed9cce0_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{a02185_a89049fae2c35a4b99cfeb6585898bb69}\label{a02185_a89049fae2c35a4b99cfeb6585898bb69}} 
\index{AAX\_IAutomationDelegate@{AAX\_IAutomationDelegate}!PostReleaseRequest@{PostReleaseRequest}}
\index{PostReleaseRequest@{PostReleaseRequest}!AAX\_IAutomationDelegate@{AAX\_IAutomationDelegate}}
\doxysubsubsection{\texorpdfstring{PostReleaseRequest()}{PostReleaseRequest()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IAutomation\+Delegate\+::\+Post\+Release\+Request (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a00533_a1440c756fe5cb158b78193b2fc1780d1}{AAX\+\_\+\+CParam\+ID}}}]{i\+Parameter\+ID }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Requests that the given parameter be \char`\"{}released\char`\"{}, i.\+e. available for updates from any client


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em i\+Parameter\+ID} & ID of the parameter that will be released \\
\hline
\end{DoxyParams}


Implemented in \mbox{\hyperlink{a02341_a2808e1e38836349f6e51d72e0219cfe4}{AAX\+\_\+\+VAutomation\+Delegate}}.



Referenced by \mbox{\hyperlink{a01897_a815f21974e1a75eb9fdcc5cf3e0704c4}{AAX\+\_\+\+CStateless\+Parameter\+::\+Release()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{a02185_a89049fae2c35a4b99cfeb6585898bb69_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{a02185_a4436f06c72d61217cbbfc7c233501f29}\label{a02185_a4436f06c72d61217cbbfc7c233501f29}} 
\index{AAX\_IAutomationDelegate@{AAX\_IAutomationDelegate}!GetTouchState@{GetTouchState}}
\index{GetTouchState@{GetTouchState}!AAX\_IAutomationDelegate@{AAX\_IAutomationDelegate}}
\doxysubsubsection{\texorpdfstring{GetTouchState()}{GetTouchState()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IAutomation\+Delegate\+::\+Get\+Touch\+State (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a00533_a1440c756fe5cb158b78193b2fc1780d1}{AAX\+\_\+\+CParam\+ID}}}]{i\+Parameter\+ID,  }\item[{\mbox{\hyperlink{a00533_aa216506530f1d19a2965931ced2b274b}{AAX\+\_\+\+CBoolean}} $\ast$}]{o\+Touched }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets the current touched state of a parameter


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em i\+Parameter\+ID} & ID of the parameter that is being queried \\
\hline
\mbox{\texttt{ out}}  & {\em o\+Touched} & The current touch state of the parameter \\
\hline
\end{DoxyParams}


Implemented in \mbox{\hyperlink{a02341_a4268eba9f5d1e7c0e163d0c4071dcaf3}{AAX\+\_\+\+VAutomation\+Delegate}}.

\mbox{\Hypertarget{a02185_ac8e07325960d820576a5d29a6b4e0a97}\label{a02185_ac8e07325960d820576a5d29a6b4e0a97}} 
\index{AAX\_IAutomationDelegate@{AAX\_IAutomationDelegate}!ParameterNameChanged@{ParameterNameChanged}}
\index{ParameterNameChanged@{ParameterNameChanged}!AAX\_IAutomationDelegate@{AAX\_IAutomationDelegate}}
\doxysubsubsection{\texorpdfstring{ParameterNameChanged()}{ParameterNameChanged()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IAutomation\+Delegate\+::\+Parameter\+Name\+Changed (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a00533_a1440c756fe5cb158b78193b2fc1780d1}{AAX\+\_\+\+CParam\+ID}}}]{i\+Parameter\+ID }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Notify listeners that the parameter\textquotesingle{}s display name has changed

Note that this is not part of the underlying automation delegate interface with the host; it is converted on the AAX side to a notification posted to the host via the \mbox{\hyperlink{a02201}{AAX\+\_\+\+IController}} .


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em i\+Parameter\+ID} & ID of the parameter that has been updated \\
\hline
\end{DoxyParams}


Implemented in \mbox{\hyperlink{a02341_abba1b400805874eddab9b2799415c344}{AAX\+\_\+\+VAutomation\+Delegate}}.



Referenced by \mbox{\hyperlink{a01897_ada71762c3254475a587047b50efbead5}{AAX\+\_\+\+CStateless\+Parameter\+::\+Set\+Name()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{a02185_ac8e07325960d820576a5d29a6b4e0a97_icgraph}
\end{center}
\end{figure}


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