/**
 * \page BoxAlgorithm_CSVFileWriter CSV File Writer
__________________________________________________________________

Detailed description
__________________________________________________________________

 * |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Description|
This box allows to output some of the OpenViBE streams in a text file that is
easy to read by the machine and easy to read by the human. CSV files are text files
with different values separated by a special character such as a colon, a semicolon
or a tabulation. This basic syntax makes them very easy to read for both machine and
human. The purpose of this box is to quicly export some data to other softwares.
 * |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Description|
__________________________________________________________________

Inputs description
__________________________________________________________________

 * |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Inputs|
 * |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Inputs|

 * |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Input1|
This is input is used to know what data to dump in the considered file. The type of
this input can be modified by the user and the format of the output will be adapted
depending on this type. Supported inputs are : Signal, Spectrum, Streamed Matrix,
Feature Vector, and Stimulations.
Format specific to each of these stream types is detailed in section
\ref Doc_BoxAlgorithm_CSVFileWriter_Miscellaneous.
 * |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Input1|
__________________________________________________________________

Settings description
__________________________________________________________________

 * |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Settings|
 * |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Settings|

 * |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Setting1|
This setting contains the file where to store the data.
 * |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Setting1|

 * |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Setting2|
This setting contains the special character to use as a separation for the different
fields. Typical examples are colon, semi colon and tabulations.
 * |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Setting2|

 * |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Setting3|
This allows you to set std::precision, i.e. how many digits are used to represent each input value in the output.
 * |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Setting3|
__________________________________________________________________

Examples description
__________________________________________________________________

 * |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Examples|
 * |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Examples|
__________________________________________________________________

Miscellaneous description
__________________________________________________________________

 * |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Miscellaneous|
In this section, we detail the typical outputs that you will find in the output
file depending on the type of the input connector.

For the Signal stream, you will have something like this :
\verbatim
Time (s), Channel 1, Channel 2, ..., Channel n, Sampling Rate
Time of measure 1, Measure 1 of channel 1, Measure 1 of channel 2, ..., Measure 1 of channel n, Value of the sampling rate
Time of measure 2, Measure 2 of channel 1, Measure 2 of channel 2, ..., Measure 2 of channel n,
...
Time of measure t, Measure t of channel 1, Measure t of channel 2, ..., Measure t of channel n,
\endverbatim

For the Streamed Matrix stream, you will have something like this :
\verbatim
Time (s), Column 1, Column 2, ..., Column n
Time of matrix 1, slot [1,1] of 1, slot[1,2] of 1, ..., slot[1,n] of 1
Time of matrix 1, slot [2,1] of 1, slot[2,2] of 1, ..., slot[2,n] of 1
...
Time of matrix 1, slot [m,1] of 1, slot[m,2] of 1, ..., slot[m,n] of 1
...
Time of matrix 2, slot [1,1] of 2, slot[1,2] of 2, ..., slot[1,n] of 2
...
\endverbatim

For the Feature Vector stream, you will have something like this :
\verbatim
Time (s), Feature 1, Feature 2, ..., Feature n
Time of vector 1, feature 1, feature 2, ..., feature n
Time of vector 2, feature 1, feature 2, ..., feature n
...
Time of vector k, feature 1, feature 2, ..., feature n
\endverbatim

For the Spectrum stream, you will have something like this :
\verbatim
Time (s), Channel 1, Channel 2, ..., Channel n, Min frequency band, Max frequency band
Time of measure 1, Freq band 1 of m. 1 of chan 1, Freq band 1 of m. 1 of chan 2, ..., Freq band 1 of m. 1 of chan n, Value Min Frequency Band of band 1, Value Max Frequency Band of band 1
Time of measure 1, Freq band 2 of m. 1 of chan 1, Freq band 2 of m. 1 of chan 2, ..., Freq band 2 of m. 1 of chan n, Value Min Frequency Band of band 2, Value Max Frequency Band of band 2
...
Time of measure 1, Freq band f of m. 1 of chan 1, Freq band f of m. 1 of chan 2, ..., Freq band f of m. 1 of chan n, Value Min Frequency Band of band f, Value Max Frequency Band of band f
Time of measure 2, Freq band 1 of m. 2 of chan 1, Freq band 1 of m. 2 of chan 2, ..., Freq band 1 of m. 2 of chan n
Time of measure 2, Freq band 2 of m. 2 of chan 1, Freq band 2 of m. 2 of chan 2, ..., Freq band 2 of m. 2 of chan n
...
Time of measure 2, Freq band f of m. 2 of chan 1, Freq band f of m. 2 of chan 2, ..., Freq band f of m. 2 of chan n
...
...
...
Time of measure t, Freq band 1 of m. t of chan 1, Freq band 1 of m. t of chan 2, ..., Freq band 1 of m. t of chan n
Time of measure t, Freq band 2 of m. t of chan 1, Freq band 2 of m. t of chan 2, ..., Freq band 2 of m. t of chan n
...
Time of measure t, Freq band f of m. t of chan 1, Freq band f of m. t of chan 2, ..., Freq band f of m. t of chan n
\endverbatim

For the Stimulation stream, you will have something like this :
\verbatim
Time (s), Identifier, Duration
Time of stim 1, Identifier of stim 1, Duration of stim 1
Time of stim 2, Identifier of stim 2, Duration of stim 2
...
Time of stim n, Identifier of stim n, Duration of stim n
\endverbatim
 * |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Miscellaneous|
 */
