\hypertarget{a00882}{}\doxysection{AAX Format Specification}
\label{a00882}\index{AAX Format Specification@{AAX Format Specification}}
Additional requirements for AAX plug-\/ins. 

This document describes aspects of the AAX plug-\/in format specification that are beyond the scope of the \mbox{\hyperlink{a00876}{common interface classes and callbacks}} that the plug-\/in must implement.

 \hypertarget{a00882_commoninterface_formatspecification__aaxplugin_directory_structure}{}\doxysubsection{.\+aaxplugin Directory Structure}\label{a00882_commoninterface_formatspecification__aaxplugin_directory_structure}
AAX uses a bundle packaging format. On mac\+OS, AAX plug-\/ins are built as standard OS bundles, while on Windows they are simple directories. All AAX plug-\/in bindles must use the .aaxplugin extension and the following directory structure\+:


\begin{DoxyItemize}
\item /\+Contents 
\begin{DoxyItemize}
\item /\+Resources 
\begin{DoxyItemize}
\item {\itshape This directory contains all of the additional resource files that will be needed by the plug-\/in at run time such as DSP algorithm DLLs, XML page tables, and image files for the plug-\/in\textquotesingle{}s GUI}  
\end{DoxyItemize}
\end{DoxyItemize}
\begin{DoxyItemize}
\item /\+Mac\+OS 
\begin{DoxyItemize}
\item {\itshape Contains the plug-\/in\textquotesingle{}s mac\+OS binary (Mach-\/O)\textsuperscript{$\ast$}}  
\end{DoxyItemize}
\end{DoxyItemize}
\begin{DoxyItemize}
\item /\+Win32 
\begin{DoxyItemize}
\item {\itshape Contains the plug-\/in\textquotesingle{}s Windows x86 binary\textsuperscript{$\ast$}}  
\end{DoxyItemize}
\end{DoxyItemize}
\begin{DoxyItemize}
\item /x64 
\begin{DoxyItemize}
\item {\itshape Contains the plug-\/in\textquotesingle{}s Windows x64 binary\textsuperscript{$\ast$}}  
\end{DoxyItemize}
\end{DoxyItemize}
\begin{DoxyItemize}
\item /\+Factory Presets {\itshape (optional) } 
\begin{DoxyItemize}
\item {\itshape This directory includes built-\/in plug-\/in presets. For more information, see \mbox{\hyperlink{a00913_subsection__presets_and_settings_management}{Presets and settings management}} in the \mbox{\hyperlink{a00913}{Pro Tools Guide}} documentation}  
\end{DoxyItemize}
\end{DoxyItemize}
\begin{DoxyItemize}
\item Pkg\+Info {\itshape (mac\+OS only) } 
\begin{DoxyItemize}
\item {\itshape This file must include the concatenation of the plug-\/in\textquotesingle{}s {\ttfamily CFBundle\+Package\+Type} ({\ttfamily TDMw} or {\ttfamily BNDL}) and {\ttfamily CFBundle\+Signature} ({\ttfamily PTul})}  
\end{DoxyItemize}
\end{DoxyItemize}
\begin{DoxyItemize}
\item Info.\+plist {\itshape (mac\+OS only) } 
\begin{DoxyItemize}
\item {\itshape The plug-\/in\textquotesingle{}s property list}  
\end{DoxyItemize}
\end{DoxyItemize}
\item desktop.\+ini (Windows only) 
\begin{DoxyItemize}
\item {\itshape The .aaxplugin directory\textquotesingle{}s view resource file, used to set its custom icon in Windows Explorer}  
\end{DoxyItemize}
\item Plug\+In.\+ico (Windows only) 
\begin{DoxyItemize}
\item {\itshape Custom plug-\/in icon file}  
\end{DoxyItemize}
\end{DoxyItemize}

\textsuperscript{$\ast$}See the following compatibility notes \begin{DoxyRefDesc}{Host Compatibility Notes}
\item[\mbox{\hyperlink{a00867__compatibility_notes000004}{Host Compatibility Notes}}]\end{DoxyRefDesc}
\begin{DoxyItemize}
\item The plug-\/in\textquotesingle{}s binary filename must be the same as the outer .aaxplugin bundle name \begin{DoxyRefDesc}{Host Compatibility Notes}
\item[\mbox{\hyperlink{a00867__compatibility_notes000005}{Host Compatibility Notes}}]\end{DoxyRefDesc}
\item On Windows, the plug-\/in binary (DLL) must use the \char`\"{}.\+aaxplugin\char`\"{} suffix; i.\+e. the DLL must use exactly the same name as the outer .aaxplugin folder. On mac\+OS, the plug-\/in binary does not require a specific suffix. \begin{DoxyRefDesc}{Host Compatibility Notes}
\item[\mbox{\hyperlink{a00867__compatibility_notes000006}{Host Compatibility Notes}}]\end{DoxyRefDesc}
\item On Windows, the plug-\/in\textquotesingle{}s binary filename (and therefore also the outer .aaxplugin file name) must not contain any spaces. There is a bug in AAE that will prevent binaries with spaces from being loaded properly. This is logged as PTSW-\/189928.\end{DoxyItemize}
\begin{DoxyNote}{Note}
This directory structure is also used for plug-\/in installer directories in the VENUE plug-\/in installer system. See \mbox{\hyperlink{a00932_aax_venue_guide__installer}{VENUE Plug-\/in installer specification}} for more information.
\end{DoxyNote}


 \hypertarget{a00882_commoninterface_formatspecification__required_symbols}{}\doxysubsection{Required Symbols}\label{a00882_commoninterface_formatspecification__required_symbols}
The following symbols are required in any AAX plug-\/in and must not be stripped from the binary\+: 
\begin{DoxyItemize}
\item {\ttfamily \+\_\+\+ACFRegister\+Plugin } 
\item {\ttfamily \+\_\+\+ACFRegister\+Component } 
\item {\ttfamily \+\_\+\+ACFGet\+Class\+Factory } 
\item {\ttfamily \+\_\+\+ACFCan\+Unload\+Now } 
\item {\ttfamily \+\_\+\+ACFStartup } 
\item {\ttfamily \+\_\+\+ACFShutdown } 
\item {\ttfamily \+\_\+\+ACFGet\+SDKVersion }\textsuperscript{$\ast$} 
\end{DoxyItemize}

 \begin{DoxyRefDesc}{Host Compatibility Notes}
\item[\mbox{\hyperlink{a00867__compatibility_notes000007}{Host Compatibility Notes}}]\textsuperscript{$\ast$}{\ttfamily \+\_\+\+ACFGet\+SDKVersion} is required for 64-\/bit AAX plug-\/ins only\end{DoxyRefDesc}


 Collaboration diagram for AAX Format Specification\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=347pt]{a00882}
\end{center}
\end{figure}
