Index: library/doc/html/config2mxstruct_8h-source.html
===================================================================
--- library/doc/html/config2mxstruct_8h-source.html (revision 401)
+++ library/doc/html/config2mxstruct_8h-source.html (revision 538)
@@ -52,5 +52,4 @@
       <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
       <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
-      <li><a href="modules.html"><span>Modules</span></a></li>
       <li><a href="annotated.html"><span>Classes</span></a></li>
       <li class="current"><a href="files.html"><span>Files</span></a></li>
@@ -72,138 +71,144 @@
 <a name="l00008"></a>00008 <span class="keyword">using namespace </span>libconfig;
 <a name="l00009"></a>00009 
-<a name="l00010"></a>00010 <span class="keyword">class </span>UImxConfig : <span class="keyword">public</span> Config {
-<a name="l00011"></a>00011 <span class="keyword">public</span>:
-<a name="l00012"></a>00012         mxArray *mxconfig;
-<a name="l00013"></a>00013         UImxConfig(<span class="keyword">const</span> <span class="keywordtype">char</span> * filename) {
-<a name="l00014"></a>00014                 Config config;
-<a name="l00015"></a>00015                 config.readFile(filename);
-<a name="l00016"></a>00016                 mxconfig = group2mxstruct(config.getRoot());
-<a name="l00017"></a>00017         }
-<a name="l00018"></a>00018         UImxConfig(<span class="keyword">const</span> Setting &amp;setting) {
-<a name="l00019"></a>00019                 mxconfig = group2mxstruct(setting);
+<a name="l00011"></a><a class="code" href="classUImxConfig.html">00011</a> <span class="keyword">class </span><a class="code" href="classUImxConfig.html" title="Reimplementation of libconfig&amp;#39;s Config class for Matlab mxArray structures.">UImxConfig</a> : <span class="keyword">public</span> Config {
+<a name="l00012"></a>00012 <span class="keyword">public</span>:
+<a name="l00014"></a><a class="code" href="classUImxConfig.html#ccf378aab12b7709d644441fd2e30d00">00014</a>         mxArray *<a class="code" href="classUImxConfig.html#ccf378aab12b7709d644441fd2e30d00" title="Matlab structure where the info is stored.">mxconfig</a>;
+<a name="l00016"></a><a class="code" href="classUImxConfig.html#412edc44fdc05586fcda662c27692630">00016</a>         <a class="code" href="classUImxConfig.html#412edc44fdc05586fcda662c27692630" title="Load file in libconfig syntax to Matlab arrays.">UImxConfig</a> ( <span class="keyword">const</span> <span class="keywordtype">char</span> * filename ) {
+<a name="l00017"></a>00017                 Config config;
+<a name="l00018"></a>00018                 config.readFile ( filename );
+<a name="l00019"></a>00019                 <a class="code" href="classUImxConfig.html#ccf378aab12b7709d644441fd2e30d00" title="Matlab structure where the info is stored.">mxconfig</a> = group2mxstruct ( config.getRoot() );
 <a name="l00020"></a>00020         }
-<a name="l00021"></a>00021 
-<a name="l00022"></a>00022 <span class="keyword">private</span>:
-<a name="l00023"></a>00023 
-<a name="l00024"></a>00024         mxArray* array2mxvector(<span class="keyword">const</span> Setting &amp;setting)  {
-<a name="l00025"></a>00025                 <span class="keywordflow">if</span> (!setting.isArray()) mexErrMsgTxt(<span class="stringliteral">"Given setting is not an array"</span>);
-<a name="l00026"></a>00026                 <span class="keywordtype">double</span> *elements = <span class="keyword">new</span> <span class="keywordtype">double</span>[setting.getLength()];
-<a name="l00027"></a>00027                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i&lt;setting.getLength(); i++) {
-<a name="l00028"></a>00028                         elements[i] = setting[i];
-<a name="l00029"></a>00029                 }
-<a name="l00030"></a>00030                 vec &amp;v = *(<span class="keyword">new</span> vec(elements, setting.getLength()));
-<a name="l00031"></a>00031                 mxArray *result;
-<a name="l00032"></a>00032                 vec2mxArray(v, result);
-<a name="l00033"></a>00033                 <span class="keyword">delete</span> &amp;v;
-<a name="l00034"></a>00034                 <span class="keyword">delete</span> [] elements;
-<a name="l00035"></a>00035                 <span class="keywordflow">return</span> result;
-<a name="l00036"></a>00036         }
-<a name="l00037"></a>00037 
-<a name="l00038"></a>00038         mxArray* list2mxmatrix(<span class="keyword">const</span> Setting &amp;setting)  {
-<a name="l00039"></a>00039                 <span class="keywordflow">if</span> (!setting.isList() || (<span class="stringliteral">"matrix"</span> != setting[0]))
-<a name="l00040"></a>00040                         mexErrMsgTxt(<span class="stringliteral">"Given setting is not a matrix"</span>);
-<a name="l00041"></a>00041                 <span class="keywordtype">int</span> rows = setting[1];
-<a name="l00042"></a>00042                 <span class="keywordtype">int</span> cols = setting[2];
-<a name="l00043"></a>00043                 <span class="keywordflow">if</span> (setting[3].getLength() != rows*cols)
-<a name="l00044"></a>00044                         mexErrMsgTxt(<span class="stringliteral">"Matrix elements do not fit to rows*cols"</span>);
-<a name="l00045"></a>00045                 <span class="keywordtype">double</span> *elements = <span class="keyword">new</span> <span class="keywordtype">double</span>[rows*cols];
-<a name="l00046"></a>00046                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i&lt;rows*cols; i++) {
-<a name="l00047"></a>00047                         elements[i] = setting[3][i];
-<a name="l00048"></a>00048                 }
-<a name="l00049"></a>00049                 mat &amp;m = *(<span class="keyword">new</span> mat(elements, rows, cols));
-<a name="l00050"></a>00050                 mxArray *result;
-<a name="l00051"></a>00051                 mat2mxArray(m, result);
-<a name="l00052"></a>00052                 <span class="keyword">delete</span> &amp;m;
-<a name="l00053"></a>00053                 <span class="keyword">delete</span> [] elements;
-<a name="l00054"></a>00054                 <span class="keywordflow">return</span> result;
-<a name="l00055"></a>00055         }
-<a name="l00056"></a>00056 
-<a name="l00057"></a>00057         mxArray* group2mxstruct(<span class="keyword">const</span> Setting &amp;setting) {
-<a name="l00058"></a>00058                 <span class="keywordflow">if</span> (!setting.isGroup()) mexErrMsgTxt(<span class="stringliteral">"Given setting is not a group."</span>);
-<a name="l00059"></a>00059                 <span class="keyword">const</span> <span class="keywordtype">char</span> ** keys = <span class="keyword">new</span> <span class="keyword">const</span> <span class="keywordtype">char</span>*[setting.getLength()];
-<a name="l00060"></a>00060                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i &lt; setting.getLength(); i++) {
-<a name="l00061"></a>00061                         keys[i] = setting[i].getName();
-<a name="l00062"></a>00062                 }
-<a name="l00063"></a>00063                 mxArray *result = mxCreateStructMatrix(1, 1, setting.getLength(), keys);
-<a name="l00064"></a>00064                 <span class="keyword">delete</span> keys;
-<a name="l00065"></a>00065                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i &lt; setting.getLength(); i++) {
-<a name="l00066"></a>00066                         Setting &amp;value = setting[i];
-<a name="l00067"></a>00067                         mxArray *old = mxGetFieldByNumber(result, 0, i);
-<a name="l00068"></a>00068                         <span class="keywordflow">if</span> (old) mxDestroyArray(old);
-<a name="l00069"></a>00069                         <span class="keywordflow">switch</span> (value.getType()) {
-<a name="l00070"></a>00070                         <span class="keywordflow">case</span> Setting::TypeString:
-<a name="l00071"></a>00071                                 mxSetFieldByNumber(result, 0, i, mxCreateString(value));
-<a name="l00072"></a>00072                                 <span class="keywordflow">break</span>;
-<a name="l00073"></a>00073                         <span class="keywordflow">case</span> Setting::TypeBoolean:
-<a name="l00074"></a>00074                                 mxSetFieldByNumber(result, 0, i, mxCreateLogicalScalar(value));
-<a name="l00075"></a>00075                                 <span class="keywordflow">break</span>;
-<a name="l00076"></a>00076                         <span class="keywordflow">case</span> Setting::TypeGroup:
-<a name="l00077"></a>00077                                 mxSetFieldByNumber(result, 0, i, group2mxstruct(value));
-<a name="l00078"></a>00078                                 <span class="keywordflow">break</span>;
-<a name="l00079"></a>00079                         <span class="keywordflow">case</span> Setting::TypeList:
-<a name="l00080"></a>00080                                 mxSetFieldByNumber(result, 0, i, list2mxcell(value));
-<a name="l00081"></a>00081                                 <span class="keywordflow">break</span>;
-<a name="l00082"></a>00082                         <span class="keywordflow">case</span> Setting::TypeArray:
-<a name="l00083"></a>00083                                 mxSetFieldByNumber(result, 0, i, array2mxvector(value));
-<a name="l00084"></a>00084                                 <span class="keywordflow">break</span>;
-<a name="l00085"></a>00085                         <span class="keywordflow">case</span> Setting::TypeInt:
-<a name="l00086"></a>00086                         <span class="keywordflow">case</span> Setting::TypeInt64:
-<a name="l00087"></a>00087                                 mxSetFieldByNumber(result, 0, i, mxCreateDoubleScalar((<span class="keywordtype">int</span>) value));
+<a name="l00022"></a><a class="code" href="classUImxConfig.html#324906cf1f31cab56ead72a512a16861">00022</a>         <a class="code" href="classUImxConfig.html#324906cf1f31cab56ead72a512a16861" title="Convert existing Setting to Matlab arrays.">UImxConfig</a> ( <span class="keyword">const</span> Setting &amp;setting ) {
+<a name="l00023"></a>00023                 <a class="code" href="classUImxConfig.html#ccf378aab12b7709d644441fd2e30d00" title="Matlab structure where the info is stored.">mxconfig</a> = group2mxstruct ( setting );
+<a name="l00024"></a>00024         }
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 <span class="keyword">private</span>:
+<a name="l00028"></a>00028         mxArray* array2mxvector ( <span class="keyword">const</span> Setting &amp;setting )  {
+<a name="l00029"></a>00029                 <span class="keywordflow">if</span> ( !setting.isArray() ) mexErrMsgTxt ( <span class="stringliteral">"Given setting is not an array"</span> );
+<a name="l00030"></a>00030                 <span class="keywordtype">double</span> *elements = <span class="keyword">new</span> <span class="keywordtype">double</span>[setting.getLength() ];
+<a name="l00031"></a>00031                 <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; setting.getLength(); i++ ) {
+<a name="l00032"></a>00032                         <span class="keywordflow">if</span> ( setting.getType() == Setting::TypeInt ) { <span class="comment">//TODO: tady je chyba -- zaporna cisla nejsou TypeInt</span>
+<a name="l00033"></a>00033                                 elements[i] = setting[i];
+<a name="l00034"></a>00034                         } <span class="keywordflow">else</span> {
+<a name="l00035"></a>00035                                 elements[i] = ( int ) setting[i];
+<a name="l00036"></a>00036                         }
+<a name="l00037"></a>00037                 }
+<a name="l00038"></a>00038                 vec &amp;v = * ( <span class="keyword">new</span> vec ( elements, setting.getLength() ) );
+<a name="l00039"></a>00039                 mxArray *result = mxCreateDoubleMatrix ( 1, setting.getLength(), mxREAL );
+<a name="l00040"></a>00040                 vec2mxArray ( v, result );
+<a name="l00041"></a>00041                 <span class="keyword">delete</span> &amp;v;
+<a name="l00042"></a>00042                 <span class="keyword">delete</span> [] elements;
+<a name="l00043"></a>00043                 <span class="keywordflow">return</span> result;
+<a name="l00044"></a>00044         }
+<a name="l00045"></a>00045 
+<a name="l00047"></a>00047         mxArray* list2mxmatrix ( <span class="keyword">const</span> Setting &amp;setting )  {
+<a name="l00048"></a>00048                 <span class="keywordflow">if</span> ( !setting.isList() || ( <span class="stringliteral">"matrix"</span> != setting[0] ) )
+<a name="l00049"></a>00049                         mexErrMsgTxt ( <span class="stringliteral">"Given setting is not a matrix"</span> );
+<a name="l00050"></a>00050                 <span class="keywordtype">int</span> rows = setting[1];
+<a name="l00051"></a>00051                 <span class="keywordtype">int</span> cols = setting[2];
+<a name="l00052"></a>00052                 <span class="keywordflow">if</span> ( setting[3].getLength() != rows*cols )
+<a name="l00053"></a>00053                         mexErrMsgTxt ( <span class="stringliteral">"Matrix elements do not fit to rows*cols"</span> );
+<a name="l00054"></a>00054                 <span class="keywordtype">double</span> *elements = <span class="keyword">new</span> <span class="keywordtype">double</span>[rows*cols];
+<a name="l00055"></a>00055                 <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; rows*cols; i++ ) {
+<a name="l00056"></a>00056                         elements[i] = setting[3][i];
+<a name="l00057"></a>00057                 }
+<a name="l00058"></a>00058                 mat &amp;m = * ( <span class="keyword">new</span> mat ( elements, rows, cols ) );
+<a name="l00059"></a>00059                 mxArray *result = mxCreateDoubleMatrix ( rows, cols, mxREAL );
+<a name="l00060"></a>00060                 mat2mxArray ( m, result );
+<a name="l00061"></a>00061                 <span class="keyword">delete</span> &amp;m;
+<a name="l00062"></a>00062                 <span class="keyword">delete</span> [] elements;
+<a name="l00063"></a>00063                 <span class="keywordflow">return</span> result;
+<a name="l00064"></a>00064         }
+<a name="l00065"></a>00065         
+<a name="l00067"></a>00067         mxArray* group2mxstruct ( <span class="keyword">const</span> Setting &amp;setting ) {
+<a name="l00068"></a>00068                 <span class="keywordflow">if</span> ( !setting.isGroup() ) mexErrMsgTxt ( <span class="stringliteral">"Given setting is not a group."</span> );
+<a name="l00069"></a>00069                 <span class="keyword">const</span> <span class="keywordtype">char</span> ** keys = <span class="keyword">new</span> <span class="keyword">const</span> <span class="keywordtype">char</span>*[setting.getLength() ];
+<a name="l00070"></a>00070                 <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; setting.getLength(); i++ ) {
+<a name="l00071"></a>00071                         keys[i] = setting[i].getName();
+<a name="l00072"></a>00072                 }
+<a name="l00073"></a>00073                 mxArray *result = mxCreateStructMatrix ( 1, 1, setting.getLength(), keys );
+<a name="l00074"></a>00074                 <span class="keyword">delete</span> keys;
+<a name="l00075"></a>00075                 <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; setting.getLength(); i++ ) {
+<a name="l00076"></a>00076                         Setting &amp;value = setting[i];
+<a name="l00077"></a>00077                         mxArray *old = mxGetFieldByNumber ( result, 0, i );
+<a name="l00078"></a>00078                         <span class="keywordflow">if</span> ( old ) mxDestroyArray ( old );
+<a name="l00079"></a>00079                         <span class="keywordflow">switch</span> ( value.getType() ) {
+<a name="l00080"></a>00080                         <span class="keywordflow">case</span> Setting::TypeString:
+<a name="l00081"></a>00081                                 mxSetFieldByNumber ( result, 0, i, mxCreateString ( value ) );
+<a name="l00082"></a>00082                                 <span class="keywordflow">break</span>;
+<a name="l00083"></a>00083                         <span class="keywordflow">case</span> Setting::TypeBoolean:
+<a name="l00084"></a>00084                                 mxSetFieldByNumber ( result, 0, i, mxCreateLogicalScalar ( value ) );
+<a name="l00085"></a>00085                                 <span class="keywordflow">break</span>;
+<a name="l00086"></a>00086                         <span class="keywordflow">case</span> Setting::TypeGroup:
+<a name="l00087"></a>00087                                 mxSetFieldByNumber ( result, 0, i, group2mxstruct ( value ) );
 <a name="l00088"></a>00088                                 <span class="keywordflow">break</span>;
-<a name="l00089"></a>00089                         <span class="keywordflow">case</span> Setting::TypeFloat:
-<a name="l00090"></a>00090                                 mxSetFieldByNumber(result, 0, i, mxCreateDoubleScalar(value));
+<a name="l00089"></a>00089                         <span class="keywordflow">case</span> Setting::TypeList:
+<a name="l00090"></a>00090                                 mxSetFieldByNumber ( result, 0, i, list2mxcell ( value ) );
 <a name="l00091"></a>00091                                 <span class="keywordflow">break</span>;
-<a name="l00092"></a>00092                         <span class="keywordflow">default</span>:
-<a name="l00093"></a>00093                                 <span class="comment">//this should never happen</span>
-<a name="l00094"></a>00094                                 mexErrMsgTxt(<span class="stringliteral">"Unknown type of a setting."</span>);
-<a name="l00095"></a>00095                         }
-<a name="l00096"></a>00096                 }
-<a name="l00097"></a>00097                 <span class="keywordflow">return</span> result;
-<a name="l00098"></a>00098 
-<a name="l00099"></a>00099         }
-<a name="l00100"></a>00100         
-<a name="l00101"></a>00101         mxArray* list2mxcell(<span class="keyword">const</span> Setting &amp;setting)  {
-<a name="l00102"></a>00102                 <span class="keywordflow">if</span> (!setting.isList()) mexErrMsgTxt(<span class="stringliteral">"Given setting is not a list."</span>);
-<a name="l00103"></a>00103                 <span class="keywordflow">if</span> ((setting[0].getType() == Setting::TypeString) &amp;&amp; (<span class="stringliteral">"matrix"</span> == setting[0])) {
-<a name="l00104"></a>00104                         <span class="keywordflow">return</span> list2mxmatrix(setting);
-<a name="l00105"></a>00105                 }
-<a name="l00106"></a>00106                 mxArray *result = mxCreateCellMatrix(1, setting.getLength());
-<a name="l00107"></a>00107                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i &lt; setting.getLength(); i++) {
-<a name="l00108"></a>00108                         Setting &amp;value = setting[i];
-<a name="l00109"></a>00109                         mxArray *old = mxGetCell(result, i);
-<a name="l00110"></a>00110                         <span class="keywordflow">if</span> (old) mxDestroyArray(old);
-<a name="l00111"></a>00111                         <span class="keywordflow">switch</span> (value.getType()) {
-<a name="l00112"></a>00112                         <span class="keywordflow">case</span> Setting::TypeString:
-<a name="l00113"></a>00113                                 mxSetCell(result, i, mxCreateString(value));
-<a name="l00114"></a>00114                                 <span class="keywordflow">break</span>;
-<a name="l00115"></a>00115                         <span class="keywordflow">case</span> Setting::TypeBoolean:
-<a name="l00116"></a>00116                                 mxSetCell(result, i, mxCreateLogicalScalar(value));
-<a name="l00117"></a>00117                                 <span class="keywordflow">break</span>;
-<a name="l00118"></a>00118                         <span class="keywordflow">case</span> Setting::TypeGroup:
-<a name="l00119"></a>00119                                 mxSetCell(result, i, group2mxstruct(value));
-<a name="l00120"></a>00120                                 <span class="keywordflow">break</span>;
-<a name="l00121"></a>00121                         <span class="keywordflow">case</span> Setting::TypeList:
-<a name="l00122"></a>00122                                 mxSetCell(result, i, list2mxcell(value));
-<a name="l00123"></a>00123                                 <span class="keywordflow">break</span>;
-<a name="l00124"></a>00124                         <span class="keywordflow">case</span> Setting::TypeArray:
-<a name="l00125"></a>00125                                 mxSetCell(result, i, array2mxvector(value));
-<a name="l00126"></a>00126                                 <span class="keywordflow">break</span>;
-<a name="l00127"></a>00127                         <span class="keywordflow">case</span> Setting::TypeInt:
-<a name="l00128"></a>00128                         <span class="keywordflow">case</span> Setting::TypeInt64:
-<a name="l00129"></a>00129                                 mxSetCell(result, i, mxCreateDoubleScalar((<span class="keywordtype">int</span>) value));
-<a name="l00130"></a>00130                                 <span class="keywordflow">break</span>;
-<a name="l00131"></a>00131                         <span class="keywordflow">case</span> Setting::TypeFloat:
-<a name="l00132"></a>00132                                 mxSetCell(result, i, mxCreateDoubleScalar(value));
-<a name="l00133"></a>00133                                 <span class="keywordflow">break</span>;
-<a name="l00134"></a>00134                         <span class="keywordflow">default</span>:
-<a name="l00135"></a>00135                                 <span class="comment">//this should never happen</span>
-<a name="l00136"></a>00136                                 mexErrMsgTxt(<span class="stringliteral">"Unknown type of a setting."</span>);
-<a name="l00137"></a>00137                         }
-<a name="l00138"></a>00138                 }
-<a name="l00139"></a>00139                 <span class="keywordflow">return</span> result;
-<a name="l00140"></a>00140         }
-<a name="l00141"></a>00141 };
+<a name="l00092"></a>00092                         <span class="keywordflow">case</span> Setting::TypeArray:
+<a name="l00093"></a>00093                                 mxSetFieldByNumber ( result, 0, i, array2mxvector ( value ) );
+<a name="l00094"></a>00094                                 <span class="keywordflow">break</span>;
+<a name="l00095"></a>00095                         <span class="keywordflow">case</span> Setting::TypeInt:
+<a name="l00096"></a>00096                         <span class="keywordflow">case</span> Setting::TypeInt64:
+<a name="l00097"></a>00097                                 mxSetFieldByNumber ( result, 0, i, mxCreateDoubleScalar ( ( <span class="keywordtype">int</span> ) value ) );
+<a name="l00098"></a>00098                                 <span class="keywordflow">break</span>;
+<a name="l00099"></a>00099                         <span class="keywordflow">case</span> Setting::TypeFloat:
+<a name="l00100"></a>00100                                 mxSetFieldByNumber ( result, 0, i, mxCreateDoubleScalar ( value ) );
+<a name="l00101"></a>00101                                 <span class="keywordflow">break</span>;
+<a name="l00102"></a>00102                         <span class="keywordflow">default</span>:
+<a name="l00103"></a>00103                                 <span class="comment">//this should never happen</span>
+<a name="l00104"></a>00104                                 mexErrMsgTxt ( <span class="stringliteral">"Unknown type of a setting."</span> );
+<a name="l00105"></a>00105                         }
+<a name="l00106"></a>00106                 }
+<a name="l00107"></a>00107                 <span class="keywordflow">return</span> result;
+<a name="l00108"></a>00108 
+<a name="l00109"></a>00109         }
+<a name="l00111"></a>00111         mxArray* list2mxcell ( <span class="keyword">const</span> Setting &amp;setting )  {
+<a name="l00112"></a>00112                 <span class="keywordflow">if</span> ( !setting.isList() ) mexErrMsgTxt ( <span class="stringliteral">"Given setting is not a list."</span> );
+<a name="l00113"></a>00113                 <span class="keywordflow">if</span> ( setting.getLength() == 0 ) {
+<a name="l00114"></a>00114                         mxArray *result = mxCreateCellMatrix ( 1, 0 );
+<a name="l00115"></a>00115                         <span class="keywordflow">return</span> result;
+<a name="l00116"></a>00116                 }
+<a name="l00117"></a>00117                 <span class="keywordflow">if</span> ( ( setting[0].getType() == Setting::TypeString ) &amp;&amp; ( <span class="stringliteral">"matrix"</span> == setting[0] ) ) {
+<a name="l00118"></a>00118                         <span class="keywordflow">return</span> list2mxmatrix ( setting );
+<a name="l00119"></a>00119                 }
+<a name="l00120"></a>00120                 mxArray *result = mxCreateCellMatrix ( 1, setting.getLength() );
+<a name="l00121"></a>00121                 <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; setting.getLength(); i++ ) {
+<a name="l00122"></a>00122                         Setting &amp;value = setting[i];
+<a name="l00123"></a>00123                         mxArray *old = mxGetCell ( result, i );
+<a name="l00124"></a>00124                         <span class="keywordflow">if</span> ( old ) mxDestroyArray ( old );
+<a name="l00125"></a>00125                         <span class="keywordflow">switch</span> ( value.getType() ) {
+<a name="l00126"></a>00126                         <span class="keywordflow">case</span> Setting::TypeString:
+<a name="l00127"></a>00127                                 mxSetCell ( result, i, mxCreateString ( value ) );
+<a name="l00128"></a>00128                                 <span class="keywordflow">break</span>;
+<a name="l00129"></a>00129                         <span class="keywordflow">case</span> Setting::TypeBoolean:
+<a name="l00130"></a>00130                                 mxSetCell ( result, i, mxCreateLogicalScalar ( value ) );
+<a name="l00131"></a>00131                                 <span class="keywordflow">break</span>;
+<a name="l00132"></a>00132                         <span class="keywordflow">case</span> Setting::TypeGroup:
+<a name="l00133"></a>00133                                 mxSetCell ( result, i, group2mxstruct ( value ) );
+<a name="l00134"></a>00134                                 <span class="keywordflow">break</span>;
+<a name="l00135"></a>00135                         <span class="keywordflow">case</span> Setting::TypeList:
+<a name="l00136"></a>00136                                 mxSetCell ( result, i, list2mxcell ( value ) );
+<a name="l00137"></a>00137                                 <span class="keywordflow">break</span>;
+<a name="l00138"></a>00138                         <span class="keywordflow">case</span> Setting::TypeArray:
+<a name="l00139"></a>00139                                 mxSetCell ( result, i, array2mxvector ( value ) );
+<a name="l00140"></a>00140                                 <span class="keywordflow">break</span>;
+<a name="l00141"></a>00141                         <span class="keywordflow">case</span> Setting::TypeInt:
+<a name="l00142"></a>00142                         <span class="keywordflow">case</span> Setting::TypeInt64:
+<a name="l00143"></a>00143                                 mxSetCell ( result, i, mxCreateDoubleScalar ( ( <span class="keywordtype">int</span> ) value ) );
+<a name="l00144"></a>00144                                 <span class="keywordflow">break</span>;
+<a name="l00145"></a>00145                         <span class="keywordflow">case</span> Setting::TypeFloat:
+<a name="l00146"></a>00146                                 mxSetCell ( result, i, mxCreateDoubleScalar ( value ) );
+<a name="l00147"></a>00147                                 <span class="keywordflow">break</span>;
+<a name="l00148"></a>00148                         <span class="keywordflow">default</span>:
+<a name="l00149"></a>00149                                 <span class="comment">//this should never happen</span>
+<a name="l00150"></a>00150                                 mexErrMsgTxt ( <span class="stringliteral">"Unknown type of a setting."</span> );
+<a name="l00151"></a>00151                         }
+<a name="l00152"></a>00152                 }
+<a name="l00153"></a>00153                 <span class="keywordflow">return</span> result;
+<a name="l00154"></a>00154         }
+<a name="l00155"></a>00155 };
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 1 13:05:55 2009 for mixpp by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Sun Aug 16 17:58:18 2009 for mixpp by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
