\hypertarget{variators_8c}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/variators.c File Reference}
\label{variators_8c}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/variators.\-c@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/src/variators.\-c}}
}
{\ttfamily \#include $<$S\-D\-L\-\_\-test.\-h$>$}\\*
{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-variators.\-h\char`\"{}}\\*
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{variators_8c_ac1d82ee387a19743e47a82c87d3fb7f4}{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator} (\hyperlink{struct_s_d_l_visual_test___variator}{S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$variator, \hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$config, \hyperlink{_s_d_l__visualtest__variator__common_8h_a04bfc880abe6940d69a63c06a33acdbd}{S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type} type, Uint64 seed)
\item 
char $\ast$ \hyperlink{variators_8c_aebdd4c3c545b0063d16929fd56f1a79f}{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation} (\hyperlink{struct_s_d_l_visual_test___variator}{S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$variator)
\item 
void \hyperlink{variators_8c_a98727ef649135c3312056d7603cb70b5}{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator} (\hyperlink{struct_s_d_l_visual_test___variator}{S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$variator)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Source file for the operations that act on variators. 

\subsection{Function Documentation}
\hypertarget{variators_8c_a98727ef649135c3312056d7603cb70b5}{\index{variators.\-c@{variators.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator}}
\index{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator}!variators.c@{variators.\-c}}
\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-Free\-Variator (
\begin{DoxyParamCaption}
\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$}]{variator}
\end{DoxyParamCaption}
)}}\label{variators_8c_a98727ef649135c3312056d7603cb70b5}
Frees any resources associated with the variator. \hypertarget{variators_8c_aebdd4c3c545b0063d16929fd56f1a79f}{\index{variators.\-c@{variators.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation}}
\index{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation}!variators.c@{variators.\-c}}
\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Variation (
\begin{DoxyParamCaption}
\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$}]{variator}
\end{DoxyParamCaption}
)}}\label{variators_8c_aebdd4c3c545b0063d16929fd56f1a79f}
Gets the next variation using the variator.

\begin{DoxyReturn}{Returns}
The arguments string representing the variation on success, and N\-U\-L\-L on failure. The pointer returned should not be freed. 
\end{DoxyReturn}
\hypertarget{variators_8c_ac1d82ee387a19743e47a82c87d3fb7f4}{\index{variators.\-c@{variators.\-c}!S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator}}
\index{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator}!variators.c@{variators.\-c}}
\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Init\-Variator (
\begin{DoxyParamCaption}
\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator} $\ast$}]{variator, }
\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$}]{config, }
\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Variator\-Type}}]{type, }
\item[{Uint64}]{seed}
\end{DoxyParamCaption}
)}}\label{variators_8c_ac1d82ee387a19743e47a82c87d3fb7f4}
Initializes the variator object pointed to by {\ttfamily variator} of type {\ttfamily type} with information from the config object pointed to by {\ttfamily config}.

\begin{DoxyReturn}{Returns}
1 on success, 0 on failure 
\end{DoxyReturn}
