\hypertarget{a02246}{}\doxysection{AAX\+\_\+\+IDisplay\+Delegate\+Decorator\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>} Class Template Reference}
\label{a02246}\index{AAX\_IDisplayDelegateDecorator$<$ T $>$@{AAX\_IDisplayDelegateDecorator$<$ T $>$}}


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



Inheritance diagram for AAX\+\_\+\+IDisplay\+Delegate\+Decorator\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>}\+:
% FIG 0


Collaboration diagram for AAX\+\_\+\+IDisplay\+Delegate\+Decorator\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>}\+:
% FIG 1


\doxysubsection{Description}
\subsubsection*{template$<$typename T$>$\newline
class AAX\+\_\+\+IDisplay\+Delegate\+Decorator$<$ T $>$}
The base class for all concrete display delegate decorators. 

The AAX parameter display strategy uses a decorator pattern for parameter value formatting. This approach allows developers to maximize code re-\/use across display delegates with many different kinds of varying formatting, all without creating interdependencies between the different display delegates themselves.

For more information, see \mbox{\hyperlink{a00911_displaydelegates_decorators}{Display delegate decorators}}. For even more information, about the Decorator design pattern, please consult the GOF design patterns book.  

\begin{DoxyNote}{Note}
This class is {\itshape not} part of the AAX ABI and must not be passed between the plug-\/in and the host. 
\end{DoxyNote}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{a02246_a1e103af1eaeb6530317db4e41843c166}{AAX\+\_\+\+IDisplay\+Delegate\+Decorator}} (const \mbox{\hyperlink{a02242}{AAX\+\_\+\+IDisplay\+Delegate}}$<$ T $>$ \&display\+Delegate)
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{a02246_a5e3239fa6b4289dd7b3f99ce8ac1243d}{AAX\+\_\+\+IDisplay\+Delegate\+Decorator}} (const \mbox{\hyperlink{a02246}{AAX\+\_\+\+IDisplay\+Delegate\+Decorator}} \&other)
\begin{DoxyCompactList}\small\item\em Copy constructor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{a02246_a65993ca0ac3d206e9526985190e2add9}{$\sim$\+AAX\+\_\+\+IDisplay\+Delegate\+Decorator}} () \mbox{\hyperlink{a00542_ac2f24a5172689ae684344abdcce55463}{AAX\+\_\+\+OVERRIDE}}
\begin{DoxyCompactList}\small\item\em Virtual destructor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{a02246}{AAX\+\_\+\+IDisplay\+Delegate\+Decorator}}$<$ T $>$ $\ast$ \mbox{\hyperlink{a02246_a8e2ad7312467089a9112ba6460fe0e5b}{Clone}} () const \mbox{\hyperlink{a00542_ac2f24a5172689ae684344abdcce55463}{AAX\+\_\+\+OVERRIDE}}
\begin{DoxyCompactList}\small\item\em Constructs and returns a copy of the display delegate decorator. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{a02246_ada5780cfa332ac7946bf95aa65ae96f5}{Value\+To\+String}} (T value, \mbox{\hyperlink{a01946}{AAX\+\_\+\+CString}} $\ast$value\+String) const \mbox{\hyperlink{a00542_ac2f24a5172689ae684344abdcce55463}{AAX\+\_\+\+OVERRIDE}}
\begin{DoxyCompactList}\small\item\em Converts a string to a real parameter value. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{a02246_a29a49bb21a08c1c1e59758b08396d0a4}{Value\+To\+String}} (T value, int32\+\_\+t max\+Num\+Chars, \mbox{\hyperlink{a01946}{AAX\+\_\+\+CString}} $\ast$value\+String) const \mbox{\hyperlink{a00542_ac2f24a5172689ae684344abdcce55463}{AAX\+\_\+\+OVERRIDE}}
\begin{DoxyCompactList}\small\item\em Converts a string to a real parameter value with a size constraint. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{a02246_a18d19293f3eca619cb5bb7f1ffde1a8d}{String\+To\+Value}} (const \mbox{\hyperlink{a01946}{AAX\+\_\+\+CString}} \&value\+String, T $\ast$value) const \mbox{\hyperlink{a00542_ac2f24a5172689ae684344abdcce55463}{AAX\+\_\+\+OVERRIDE}}
\begin{DoxyCompactList}\small\item\em Converts a string to a real parameter value. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{DoxyCompactItemize}
\item 
virtual \mbox{\hyperlink{a02242}{AAX\+\_\+\+IDisplay\+Delegate}} $\ast$ \mbox{\hyperlink{a02242_abc5378e497b2586aeb223bc3bb59154f}{Clone}} () const =0
\begin{DoxyCompactList}\small\item\em Constructs and returns a copy of the display delegate. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{a02242_a7fd1e2f55055c817937bbfa66b73b2fd}{Value\+To\+String}} (T value, \mbox{\hyperlink{a01946}{AAX\+\_\+\+CString}} $\ast$value\+String) const =0
\begin{DoxyCompactList}\small\item\em Converts a real parameter value to a string representation. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{a02242_a471c7381db773683b69216a9c3f5eda7}{Value\+To\+String}} (T value, int32\+\_\+t max\+Num\+Chars, \mbox{\hyperlink{a01946}{AAX\+\_\+\+CString}} $\ast$value\+String) const =0
\begin{DoxyCompactList}\small\item\em Converts a real parameter value to a string representation using a size hint, useful for control surfaces and other character limited displays. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{a02242_aed5224775c9f733f091afddfba057d5e}{String\+To\+Value}} (const \mbox{\hyperlink{a01946}{AAX\+\_\+\+CString}} \&value\+String, T $\ast$value) const =0
\begin{DoxyCompactList}\small\item\em Converts a string to a real parameter value. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions inherited from \mbox{\hyperlink{a02238}{AAX\+\_\+\+IDisplay\+Delegate\+Base}}}
\begin{DoxyCompactItemize}
\item 
virtual \mbox{\hyperlink{a02238_a0fdaa922b4356fb4a246053bb441a840}{$\sim$\+AAX\+\_\+\+IDisplay\+Delegate\+Base}} ()
\begin{DoxyCompactList}\small\item\em Virtual destructor. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{a02246_a1e103af1eaeb6530317db4e41843c166}\label{a02246_a1e103af1eaeb6530317db4e41843c166}} 
\index{AAX\_IDisplayDelegateDecorator$<$ T $>$@{AAX\_IDisplayDelegateDecorator$<$ T $>$}!AAX\_IDisplayDelegateDecorator@{AAX\_IDisplayDelegateDecorator}}
\index{AAX\_IDisplayDelegateDecorator@{AAX\_IDisplayDelegateDecorator}!AAX\_IDisplayDelegateDecorator$<$ T $>$@{AAX\_IDisplayDelegateDecorator$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{AAX\_IDisplayDelegateDecorator()}{AAX\_IDisplayDelegateDecorator()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{a02246}{AAX\+\_\+\+IDisplay\+Delegate\+Decorator}}$<$ T $>$\mbox{\hyperlink{a02246}{\+::\+AAX\+\_\+\+IDisplay\+Delegate\+Decorator}} (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{a02242}{AAX\+\_\+\+IDisplay\+Delegate}}$<$ T $>$ \&}]{display\+Delegate }\end{DoxyParamCaption})}



Constructor. 

This class implements the decorator pattern, which is a sort of wrapper. The object that is being wrapped is passed into this constructor. This object is passed by reference because it must be copied to prevent any potential memory ambigities.

This constructor sets the local m\+Wrapped\+Display\+Delegate member to a clone of the provided \mbox{\hyperlink{a02242}{AAX\+\_\+\+IDisplay\+Delegate}}.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em display\+Delegate} & The decorated display delegate. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{a02246_a5e3239fa6b4289dd7b3f99ce8ac1243d}\label{a02246_a5e3239fa6b4289dd7b3f99ce8ac1243d}} 
\index{AAX\_IDisplayDelegateDecorator$<$ T $>$@{AAX\_IDisplayDelegateDecorator$<$ T $>$}!AAX\_IDisplayDelegateDecorator@{AAX\_IDisplayDelegateDecorator}}
\index{AAX\_IDisplayDelegateDecorator@{AAX\_IDisplayDelegateDecorator}!AAX\_IDisplayDelegateDecorator$<$ T $>$@{AAX\_IDisplayDelegateDecorator$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{AAX\_IDisplayDelegateDecorator()}{AAX\_IDisplayDelegateDecorator()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{a02246}{AAX\+\_\+\+IDisplay\+Delegate\+Decorator}}$<$ T $>$\mbox{\hyperlink{a02246}{\+::\+AAX\+\_\+\+IDisplay\+Delegate\+Decorator}} (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{a02246}{AAX\+\_\+\+IDisplay\+Delegate\+Decorator}}$<$ T $>$ \&}]{other }\end{DoxyParamCaption})}



Copy constructor. 

This class implements the decorator pattern, which is a sort of wrapper. The object that is being wrapped is passed into this constructor. This object is passed by reference because it must be copied to prevent any potential memory ambigities.

This constructor sets the local m\+Wrapped\+Display\+Delegate member to a clone of the provided \mbox{\hyperlink{a02246}{AAX\+\_\+\+IDisplay\+Delegate\+Decorator}}, allowing multiply-\/decorated display delegates.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em other} & The display delegate decorator that will be set as the wrapped delegate of this object \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{a02246_a65993ca0ac3d206e9526985190e2add9}\label{a02246_a65993ca0ac3d206e9526985190e2add9}} 
\index{AAX\_IDisplayDelegateDecorator$<$ T $>$@{AAX\_IDisplayDelegateDecorator$<$ T $>$}!````~AAX\_IDisplayDelegateDecorator@{$\sim$AAX\_IDisplayDelegateDecorator}}
\index{````~AAX\_IDisplayDelegateDecorator@{$\sim$AAX\_IDisplayDelegateDecorator}!AAX\_IDisplayDelegateDecorator$<$ T $>$@{AAX\_IDisplayDelegateDecorator$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{$\sim$AAX\_IDisplayDelegateDecorator()}{~AAX\_IDisplayDelegateDecorator()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{a02246}{AAX\+\_\+\+IDisplay\+Delegate\+Decorator}}$<$ T $>$\+::$\sim$\mbox{\hyperlink{a02246}{AAX\+\_\+\+IDisplay\+Delegate\+Decorator}}}



Virtual destructor. 

\begin{DoxyNote}{Note}
This destructor must be overriden here in order to delete the wrapped display delegate object upon decorator destruction. 
\end{DoxyNote}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{a02246_a8e2ad7312467089a9112ba6460fe0e5b}\label{a02246_a8e2ad7312467089a9112ba6460fe0e5b}} 
\index{AAX\_IDisplayDelegateDecorator$<$ T $>$@{AAX\_IDisplayDelegateDecorator$<$ T $>$}!Clone@{Clone}}
\index{Clone@{Clone}!AAX\_IDisplayDelegateDecorator$<$ T $>$@{AAX\_IDisplayDelegateDecorator$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{Clone()}{Clone()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{a02246}{AAX\+\_\+\+IDisplay\+Delegate\+Decorator}}$<$ T $>$ $\ast$ \mbox{\hyperlink{a02246}{AAX\+\_\+\+IDisplay\+Delegate\+Decorator}}$<$ T $>$\+::\+Clone\hspace{0.3cm}{\ttfamily [virtual]}}



Constructs and returns a copy of the display delegate decorator. 

In general, this method\textquotesingle{}s implementation can use a simple copy constructor\+:


\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>}
\DoxyCodeLine{AAX\_CSubclassDisplayDelegate<T>*\ \ \ \ AAX\_CSubclassDisplayDelegate<T>::Clone()\textcolor{keyword}{\ const}}
\DoxyCodeLine{\textcolor{keyword}{}\{}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{new}\ AAX\_CSubclassDisplayDelegate(*\textcolor{keyword}{this});}
\DoxyCodeLine{\}}

\end{DoxyCode}


\begin{DoxyNote}{Note}
This is an idiomatic method in the decorator pattern, so watch for potential problems if this method is ever changed or removed. 
\end{DoxyNote}


Implements \mbox{\hyperlink{a02242_abc5378e497b2586aeb223bc3bb59154f}{AAX\+\_\+\+IDisplay\+Delegate$<$ T $>$}}.

\mbox{\Hypertarget{a02246_ada5780cfa332ac7946bf95aa65ae96f5}\label{a02246_ada5780cfa332ac7946bf95aa65ae96f5}} 
\index{AAX\_IDisplayDelegateDecorator$<$ T $>$@{AAX\_IDisplayDelegateDecorator$<$ T $>$}!ValueToString@{ValueToString}}
\index{ValueToString@{ValueToString}!AAX\_IDisplayDelegateDecorator$<$ T $>$@{AAX\_IDisplayDelegateDecorator$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{ValueToString()}{ValueToString()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
bool \mbox{\hyperlink{a02246}{AAX\+\_\+\+IDisplay\+Delegate\+Decorator}}$<$ T $>$\+::\+Value\+To\+String (\begin{DoxyParamCaption}\item[{T}]{value,  }\item[{\mbox{\hyperlink{a01946}{AAX\+\_\+\+CString}} $\ast$}]{value\+String }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Converts a string to a real parameter value. 

Override of the \mbox{\hyperlink{a02242}{AAX\+\_\+\+IDisplay\+Delegate}} implementation to call into the wrapped object. Display delegate decorators should call into this implementation to pass \mbox{\hyperlink{a02246_ada5780cfa332ac7946bf95aa65ae96f5}{Value\+To\+String()}} calls on to the wrapped object after applying their own value-\/to-\/string decoration.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em value\+String} & The string that will be converted \\
\hline
\mbox{\texttt{ out}}  & {\em value} & The real parameter value corresponding to value\+String\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em true} & The string conversion was successful \\
\hline
{\em false} & The string conversion was unsuccessful \\
\hline
\end{DoxyRetVals}


Implements \mbox{\hyperlink{a02242_a7fd1e2f55055c817937bbfa66b73b2fd}{AAX\+\_\+\+IDisplay\+Delegate$<$ T $>$}}.



Referenced by \mbox{\hyperlink{a01838_a147cb1d0b62b0a62c6e3bb98daf80027}{AAX\+\_\+\+CDecibel\+Display\+Delegate\+Decorator$<$ T $>$\+::\+Value\+To\+String()}}, \mbox{\hyperlink{a01918_a06407f0b1287891bf658bc4e4166e2e4}{AAX\+\_\+\+CPercent\+Display\+Delegate\+Decorator$<$ T $>$\+::\+Value\+To\+String()}}, \mbox{\hyperlink{a01974_a8531395e74327b93e210fd0aafaed3f7}{AAX\+\_\+\+CUnit\+Display\+Delegate\+Decorator$<$ T $>$\+::\+Value\+To\+String()}}, and \mbox{\hyperlink{a01978_a74d63ddd342455674e9b1b00dc0f76e2}{AAX\+\_\+\+CUnit\+Prefix\+Display\+Delegate\+Decorator$<$ T $>$\+::\+Value\+To\+String()}}.

Here is the caller graph for this function\+:
% FIG 2
\mbox{\Hypertarget{a02246_a29a49bb21a08c1c1e59758b08396d0a4}\label{a02246_a29a49bb21a08c1c1e59758b08396d0a4}} 
\index{AAX\_IDisplayDelegateDecorator$<$ T $>$@{AAX\_IDisplayDelegateDecorator$<$ T $>$}!ValueToString@{ValueToString}}
\index{ValueToString@{ValueToString}!AAX\_IDisplayDelegateDecorator$<$ T $>$@{AAX\_IDisplayDelegateDecorator$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{ValueToString()}{ValueToString()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
bool \mbox{\hyperlink{a02246}{AAX\+\_\+\+IDisplay\+Delegate\+Decorator}}$<$ T $>$\+::\+Value\+To\+String (\begin{DoxyParamCaption}\item[{T}]{value,  }\item[{int32\+\_\+t}]{max\+Num\+Chars,  }\item[{\mbox{\hyperlink{a01946}{AAX\+\_\+\+CString}} $\ast$}]{value\+String }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Converts a string to a real parameter value with a size constraint. 

Override of the \mbox{\hyperlink{a02242}{AAX\+\_\+\+IDisplay\+Delegate}} implementation to call into the wrapped object. Display delegate decorators should call into this implementation to pass \mbox{\hyperlink{a02246_ada5780cfa332ac7946bf95aa65ae96f5}{Value\+To\+String()}} calls on to the wrapped object after applying their own value-\/to-\/string decoration.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em value\+String} & The string that will be converted \\
\hline
\mbox{\texttt{ in}}  & {\em max\+Num\+Chars} & Size hint for the desired maximum number of characters in the string (not including null termination) \\
\hline
\mbox{\texttt{ out}}  & {\em value} & The real parameter value corresponding to value\+String\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em true} & The string conversion was successful \\
\hline
{\em false} & The string conversion was unsuccessful \\
\hline
\end{DoxyRetVals}


Implements \mbox{\hyperlink{a02242_a471c7381db773683b69216a9c3f5eda7}{AAX\+\_\+\+IDisplay\+Delegate$<$ T $>$}}.

\mbox{\Hypertarget{a02246_a18d19293f3eca619cb5bb7f1ffde1a8d}\label{a02246_a18d19293f3eca619cb5bb7f1ffde1a8d}} 
\index{AAX\_IDisplayDelegateDecorator$<$ T $>$@{AAX\_IDisplayDelegateDecorator$<$ T $>$}!StringToValue@{StringToValue}}
\index{StringToValue@{StringToValue}!AAX\_IDisplayDelegateDecorator$<$ T $>$@{AAX\_IDisplayDelegateDecorator$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{StringToValue()}{StringToValue()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
bool \mbox{\hyperlink{a02246}{AAX\+\_\+\+IDisplay\+Delegate\+Decorator}}$<$ T $>$\+::\+String\+To\+Value (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{a01946}{AAX\+\_\+\+CString}} \&}]{value\+String,  }\item[{T $\ast$}]{value }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Converts a string to a real parameter value. 

Override of the Display\+Decorator implementation to call into the wrapped object. Display delegate decorators should call into this implementation to pass \mbox{\hyperlink{a02246_a18d19293f3eca619cb5bb7f1ffde1a8d}{String\+To\+Value()}} calls on to the wrapped object after applying their own string-\/to-\/value decoding.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em value\+String} & The string that will be converted \\
\hline
\mbox{\texttt{ out}}  & {\em value} & The real parameter value corresponding to value\+String\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em true} & The string conversion was successful \\
\hline
{\em false} & The string conversion was unsuccessful \\
\hline
\end{DoxyRetVals}


Implements \mbox{\hyperlink{a02242_aed5224775c9f733f091afddfba057d5e}{AAX\+\_\+\+IDisplay\+Delegate$<$ T $>$}}.



Referenced by \mbox{\hyperlink{a01838_a7f4645d7e464d63ef22e93c4a99f3f09}{AAX\+\_\+\+CDecibel\+Display\+Delegate\+Decorator$<$ T $>$\+::\+String\+To\+Value()}}, \mbox{\hyperlink{a01918_a702a4dea21a72dc8edf6b91b5a5bf5e5}{AAX\+\_\+\+CPercent\+Display\+Delegate\+Decorator$<$ T $>$\+::\+String\+To\+Value()}}, \mbox{\hyperlink{a01974_a4577b27d63067a75deead21c25f1b932}{AAX\+\_\+\+CUnit\+Display\+Delegate\+Decorator$<$ T $>$\+::\+String\+To\+Value()}}, and \mbox{\hyperlink{a01978_a6d930afe0a249f6936504c25d9c29764}{AAX\+\_\+\+CUnit\+Prefix\+Display\+Delegate\+Decorator$<$ T $>$\+::\+String\+To\+Value()}}.

Here is the caller graph for this function\+:
% FIG 3


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