diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1fa04baf51080f73d6112aaa1d1771782dbaf963..e1f6f253706408a0a5f0a7995d5272d5095298d2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -183,6 +183,7 @@ ADD_DEFINITIONS(-DOV_CMAKE_PATH_BIN="${CMAKE_INSTALL_FULL_BINDIR}")
 ADD_DEFINITIONS(-DOV_CMAKE_PATH_DATA="${CMAKE_INSTALL_FULL_DATADIR}/openvibe")
 ADD_DEFINITIONS(-DOV_CMAKE_PATH_LIB="${CMAKE_INSTALL_FULL_LIBDIR}")
 
+ADD_SUBDIRECTORY("build-tool/")
 # Traverse these directories and build their components
 ADD_SUBDIRECTORY("common/")
 ADD_SUBDIRECTORY("openvibe/")
@@ -199,6 +200,8 @@ ADD_SUBDIRECTORY("documentation/") # needs to be the last since it uses the list
 IF(openvibe-documentation)
 	ADD_DEPENDENCIES(openvibe-documentation openvibe-plugin-inspector)
 ENDIF(openvibe-documentation)
+
+ADD_DEPENDENCIES(openvibe-toolkit openvibe-stimulation-generator )
 # make a copy of the dependency script, this is done so we can use the same launch scripts both in win install and win devel situations.
 IF(WIN32)
 	INSTALL(PROGRAMS ${CMAKE_SOURCE_DIR}/scripts/win32-dependencies.cmd DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} RENAME "openvibe-set-env.cmd")
diff --git a/build-tool/CMakeLists.txt b/build-tool/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f4f62fdd2354070c1a7f752c4fce37a97313cdae
--- /dev/null
+++ b/build-tool/CMakeLists.txt
@@ -0,0 +1,3 @@
+
+# Add all the subdirs as projects of the named branch
+OV_ADD_PROJECTS("BUILD_TOOL")
diff --git a/build-tool/stimulation-generator/CMakeLists.txt b/build-tool/stimulation-generator/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cb69c8a498d8d9d9911536764b2cfb74b79507d5
--- /dev/null
+++ b/build-tool/stimulation-generator/CMakeLists.txt
@@ -0,0 +1,36 @@
+PROJECT(openvibe-stimulation-generator)
+
+SET(PROJECT_VERSION_MAJOR ${OV_GLOBAL_VERSION_MAJOR})
+SET(PROJECT_VERSION_MINOR ${OV_GLOBAL_VERSION_MINOR})
+SET(PROJECT_VERSION_PATCH ${OV_GLOBAL_VERSION_PATCH})
+SET(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
+
+FILE(GLOB_RECURSE source_files src/*.cpp src/*.h src/*.inl)
+ADD_EXECUTABLE(openvibe-stimulation-generator ${source_files})
+
+if(UNIX)
+SET(stim_generator_path  "${CMAKE_CURRENT_BINARY_DIR}" CACHE INTERNAL "stim_generator_path")
+else()
+get_property(path_to_target TARGET openvibe-stimulation-generator PROPERTY LOCATION)
+SET(stim_generator_path  "${path_to_target}" CACHE INTERNAL "stim_generator_path")
+endif()
+# ---------------------------------
+# Target macros
+# Defines target operating system
+# Defines target architecture
+# Defines target compiler
+# ---------------------------------
+IF(WIN32)
+	ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE)
+	ADD_DEFINITIONS(-DTARGET_OS_Windows)
+	ADD_DEFINITIONS(-DTARGET_ARCHITECTURE_i386)
+	ADD_DEFINITIONS(-DTARGET_COMPILER_VisualStudio)
+ENDIF(WIN32)
+IF(UNIX)
+	# ADD_DEFINITIONS(-fvisibility=hidden) # This flag should be present... man gcc
+	ADD_DEFINITIONS(-g)
+	ADD_DEFINITIONS(-fnon-call-exceptions)
+	ADD_DEFINITIONS(-DTARGET_OS_Linux)
+	ADD_DEFINITIONS(-DTARGET_ARCHITECTURE_i386)
+	ADD_DEFINITIONS(-DTARGET_COMPILER_GCC)
+ENDIF(UNIX)
diff --git a/build-tool/stimulation-generator/src/ovbt_sg_cpp_code_generator.cpp b/build-tool/stimulation-generator/src/ovbt_sg_cpp_code_generator.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a9692759a233e98c30b72a8ddcf0d0decfc67a9c
--- /dev/null
+++ b/build-tool/stimulation-generator/src/ovbt_sg_cpp_code_generator.cpp
@@ -0,0 +1,45 @@
+#include "ovbt_sg_defines.h"
+#include "ovbt_sg_file_generator_base.h"
+
+#include <fstream>
+
+using namespace std;
+
+bool CCppCodeGenerator::openFile(const char* sFilename)
+{
+	m_oFile.open(sFilename, ios::out | ios::trunc);
+	if(!m_oFile.is_open())
+		return false;
+	m_oFile << "#include \"toolkit/ovtk_all.h\"" << endl << endl;
+
+
+	m_oFile << "using namespace OpenViBE;" << endl;
+	m_oFile << "using namespace OpenViBE::Kernel;" << endl;
+	m_oFile << "using namespace OpenViBEToolkit;" << endl << endl << endl;
+
+	m_oFile << "boolean OpenViBEToolkit::initializeStimulationList(const IKernelContext& rKernelContext)" << endl;
+	m_oFile << "{" << endl;
+	m_oFile << "\tITypeManager& l_rTypeManager=rKernelContext.getTypeManager();" << endl << endl;
+	return true;
+}
+
+
+bool CCppCodeGenerator::appendStimulation(SStimulation &rStim)
+{
+	m_oFile << "\tl_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, \""
+			<< rStim.m_sName
+			<< "\", "
+			<< rStim.m_sId
+			<< ");"
+			<< endl;
+	return true;
+}
+
+
+bool CCppCodeGenerator::closeFile(void)
+{
+	m_oFile << endl << "\treturn true;" << endl;
+	m_oFile << "}" << endl;
+	m_oFile.close();
+	return true;
+}
diff --git a/build-tool/stimulation-generator/src/ovbt_sg_cpp_define_generator.cpp b/build-tool/stimulation-generator/src/ovbt_sg_cpp_define_generator.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..6d7d8c8ee16c86f159b11f89c88fcb35c8252509
--- /dev/null
+++ b/build-tool/stimulation-generator/src/ovbt_sg_cpp_define_generator.cpp
@@ -0,0 +1,32 @@
+#include "ovbt_sg_defines.h"
+#include "ovbt_sg_file_generator_base.h"
+
+#include <fstream>
+
+using namespace std;
+
+bool CCppDefineGenerator::openFile(const char* sFilename)
+{
+	m_oFile.open(sFilename, ios::out | ios::trunc);
+	if(!m_oFile.is_open())
+		return false;
+	m_oFile << "#ifndef __OpenViBEToolkit_Stimulations_Defines_H__" << endl;
+	m_oFile << "#define __OpenViBEToolkit_Stimulations_Defines_H__" << endl << endl;
+
+	return true;
+}
+
+
+bool CCppDefineGenerator::appendStimulation(SStimulation &rStim)
+{
+	m_oFile << "#define " << rStim.m_sId << "  " << rStim.m_sHexaCode << endl;
+	return true;
+}
+
+
+bool CCppDefineGenerator::closeFile(void)
+{
+	m_oFile << endl << "#endif // __OpenViBEToolkit_Stimulations_Defines_H__" << endl;
+	m_oFile.close();
+	return true;
+}
diff --git a/build-tool/stimulation-generator/src/ovbt_sg_defines.h b/build-tool/stimulation-generator/src/ovbt_sg_defines.h
new file mode 100644
index 0000000000000000000000000000000000000000..0d183af8a673716ad68fc1898588f1d1b37762c3
--- /dev/null
+++ b/build-tool/stimulation-generator/src/ovbt_sg_defines.h
@@ -0,0 +1,13 @@
+#ifndef DEFINES_H
+#define DEFINES_H
+
+
+#include <string>
+
+struct SStimulation{
+	std::string m_sName;
+	std::string m_sId;
+	std::string m_sHexaCode;
+};
+
+#endif
diff --git a/build-tool/stimulation-generator/src/ovbt_sg_file_generator_base.h b/build-tool/stimulation-generator/src/ovbt_sg_file_generator_base.h
new file mode 100644
index 0000000000000000000000000000000000000000..009615c2e7f985ba3503d56006b4a9fa8a1df12b
--- /dev/null
+++ b/build-tool/stimulation-generator/src/ovbt_sg_file_generator_base.h
@@ -0,0 +1,35 @@
+#include "ovbt_sg_defines.h"
+
+#include <fstream>
+
+class CFileGeneratorBase{
+public:
+	virtual bool openFile(const char* sFilename) =0;
+	virtual bool appendStimulation(SStimulation &rStim) =0;
+	virtual bool closeFile(void) =0;
+protected:
+	std::ofstream m_oFile;
+};
+
+
+
+class CCppDefineGenerator: public CFileGeneratorBase{
+public:
+	virtual bool openFile(const char* sFilename);
+	virtual bool appendStimulation(SStimulation &rStim);
+	virtual bool closeFile(void);
+};
+
+class CCppCodeGenerator: public CFileGeneratorBase{
+public:
+	virtual bool openFile(const char* sFilename);
+	virtual bool appendStimulation(SStimulation &rStim);
+	virtual bool closeFile(void);
+};
+
+class CMatlabGenerator: public CFileGeneratorBase{
+public:
+	virtual bool openFile(const char* sFilename);
+	virtual bool appendStimulation(SStimulation &rStim);
+	virtual bool closeFile(void);
+};
diff --git a/build-tool/stimulation-generator/src/ovbt_sg_main.cpp b/build-tool/stimulation-generator/src/ovbt_sg_main.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..1cd628111c00500c1780c9766bba833687508486
--- /dev/null
+++ b/build-tool/stimulation-generator/src/ovbt_sg_main.cpp
@@ -0,0 +1,118 @@
+#include <iostream>
+#include <fstream>
+#include <string>
+#include <vector>
+
+#include "ovbt_sg_defines.h"
+#include "ovbt_sg_file_generator_base.h"
+
+using namespace std;
+
+typedef enum{
+	CPP, MATLAB, PYTHON, LUA, UNKNOWN
+}generation_type;
+
+
+generation_type parse_argument(string option)
+{
+	if(option == "--cpp"){
+		return CPP;
+	}
+	else if(option == "--matlab"){
+		return MATLAB;
+	}
+	else if(option == "--python"){
+		return PYTHON;
+	}
+	else if(option == "--lua"){
+		return LUA;
+	}
+	else{
+		return UNKNOWN;
+	}
+}
+
+int generate_generator_list(vector<CFileGeneratorBase*> & rList, generation_type rType, int argc, char** argv)
+{
+	switch(rType)
+	{
+		case CPP:
+		{
+			if(argc < 4){
+				return -1;
+			}
+			CFileGeneratorBase* gen = new CCppDefineGenerator();
+			if(!gen->openFile(argv[3])){
+				cerr << "Unable to open " << argv[3] << endl;
+				return -1;
+			}
+			rList.push_back(gen);
+
+			gen = new CCppCodeGenerator();
+			if(!gen->openFile(argv[4])){
+				cerr << "Unable to open " << argv[4] << endl;
+				return -1;
+			}
+			rList.push_back(gen);
+			return 0;
+		}
+
+		case MATLAB:
+		{
+			CFileGeneratorBase* gen = new CMatlabGenerator();
+			if(!gen->openFile(argv[3])){
+				cerr << "Unable to open " << argv[3] << endl;
+				return -1;
+			}
+			rList.push_back(gen);
+			return 0;
+		}
+		case PYTHON:
+		case LUA:
+		case UNKNOWN:
+		default:
+		{
+			cerr << "Unhandle type. Fatal error" << endl;
+			return -1;
+		}
+	}
+}
+
+int main (int argc, char** argv)
+{
+	if(argc < 3)
+		return -1;
+	generation_type l_eType = parse_argument(argv[1]);
+
+	vector<SStimulation> l_oStimulationList;
+	vector<CFileGeneratorBase*> l_oGeneratorList;
+
+	ifstream l_oStimulationFile(argv[2]);
+	string l_sName, l_sId, l_sHexaCode;
+	while(l_oStimulationFile >> l_sName >> l_sId >> l_sHexaCode)
+	{
+		SStimulation l_oTemp = {l_sName, l_sId, l_sHexaCode};
+		l_oStimulationList.push_back(l_oTemp);
+	}
+
+	if(generate_generator_list(l_oGeneratorList, l_eType, argc, argv)){
+		return -1;
+	}
+
+	//Now we generate all files that needs to be done
+	for(vector<SStimulation>::iterator it = l_oStimulationList.begin(); it != l_oStimulationList.end(); ++it)
+	{
+		SStimulation &l_oTemp = *it;
+		for(vector<CFileGeneratorBase*>::iterator it_gen = l_oGeneratorList.begin(); it_gen != l_oGeneratorList.end(); ++it_gen)
+		{
+			(*it_gen)->appendStimulation(l_oTemp);
+		}
+	}
+
+	for(vector<CFileGeneratorBase*>::iterator it_gen = l_oGeneratorList.begin(); it_gen != l_oGeneratorList.end(); ++it_gen)
+	{
+		(*it_gen)->closeFile();
+	}
+
+	return 0;
+}
diff --git a/build-tool/stimulation-generator/src/ovbt_sg_matlab_generator.cpp b/build-tool/stimulation-generator/src/ovbt_sg_matlab_generator.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..16e991392248e73d76be8cee740e97415352f9b8
--- /dev/null
+++ b/build-tool/stimulation-generator/src/ovbt_sg_matlab_generator.cpp
@@ -0,0 +1,44 @@
+#include "ovbt_sg_defines.h"
+#include "ovbt_sg_file_generator_base.h"
+
+#include <fstream>
+
+using namespace std;
+
+
+string getBrutHexaCode(string l_oFormatedHexaCode)
+{
+	string res = l_oFormatedHexaCode;
+	res.erase(res.begin(), res.begin()+2);
+	return res;
+}
+
+bool CMatlabGenerator::openFile(const char* sFilename)
+{
+	m_oFile.open(sFilename, ios::out | ios::trunc);
+	if(!m_oFile.is_open())
+		return false;
+	m_oFile << "function OV_stimulations()" << endl << endl;
+
+	m_oFile << "global OVTK_StimulationId_LabelStart;"<< endl;
+	m_oFile << "OVTK_StimulationId_LabelStart = uint64(hex2dec('00008100'));"<< endl << endl;
+	m_oFile << "global OVTK_StimulationId_LabelEnd;"<< endl;
+	m_oFile << "OVTK_StimulationId_LabelEnd = uint64(hex2dec('000081ff'));"<< endl << endl;
+
+	return true;
+}
+
+bool CMatlabGenerator::appendStimulation(SStimulation &rStim)
+{
+	m_oFile << "\tglobal " << rStim.m_sId << ";" << endl;
+	m_oFile << "\t" << rStim.m_sId << " = uint64(hex2dec('" << getBrutHexaCode(rStim.m_sHexaCode)<< "'));" << endl << endl;
+	return true;
+}
+
+
+bool CMatlabGenerator::closeFile(void)
+{
+	m_oFile << "end" << endl;
+	m_oFile.close();
+	return true;
+}
diff --git a/plugins/processing/classification/src/algorithms/ovpCAlgorithmClassifierOneVsAll.cpp b/plugins/processing/classification/src/algorithms/ovpCAlgorithmClassifierOneVsAll.cpp
index d5af02bc97b1c1495f9370a4d8db7b4ad9263683..3d4fb79cd9ec4a99764049a70f0d919ce04424ce 100644
--- a/plugins/processing/classification/src/algorithms/ovpCAlgorithmClassifierOneVsAll.cpp
+++ b/plugins/processing/classification/src/algorithms/ovpCAlgorithmClassifierOneVsAll.cpp
@@ -121,7 +121,7 @@ boolean CAlgorithmClassifierOneVsAll::classify(const IFeatureVector& rFeatureVec
 
 	const uint32 l_ui32FeatureVectorSize=rFeatureVector.getSize();
 
-	for(size_t l_iClassifierCounter = 0 ; l_iClassifierCounter < m_oSubClassifierList.size() ; ++l_iClassifierCounter )
+	for(uint64 l_iClassifierCounter = 0 ; l_iClassifierCounter < m_oSubClassifierList.size() ; ++l_iClassifierCounter )
 	{
 		IAlgorithmProxy* l_pSubClassifier = this->m_oSubClassifierList[l_iClassifierCounter];
 		TParameterHandler < IMatrix* > ip_pFeatureVector(l_pSubClassifier->getInputParameter(OVTK_Algorithm_Classifier_InputParameterId_FeatureVector));
@@ -148,7 +148,7 @@ boolean CAlgorithmClassifierOneVsAll::classify(const IFeatureVector& rFeatureVec
 		{
 			l_oClassificationVector.push_back(CClassifierOutput(static_cast<float64>(op_f64ClassificationStateClass), static_cast<IMatrix*>(op_pClassificationValues)));
 		}
-		this->getLogManager() << LogLevel_Debug << static_cast<int64>(l_iClassifierCounter) << " " << (float64)op_f64ClassificationStateClass << " " << (*op_pProbabilityValues)[0] << " " << (*op_pProbabilityValues)[1] << "\n";
+		this->getLogManager() << LogLevel_Debug << static_cast<int64>(l_iClassifierCounter) << " " << static_cast<float64>(op_f64ClassificationStateClass) << " " << static_cast<float64>(*op_pProbabilityValues)[0] << " " << static_cast<float64>(*op_pProbabilityValues)[1] << "\n";
 	}
 
 	//Now, we determine the best classification
diff --git a/plugins/processing/matlab/CMakeLists.txt b/plugins/processing/matlab/CMakeLists.txt
index 03fd27113858ba63dd2c6ac1cefe72acf607b1b7..5eb283df6e2f57de637f448332e96210ae0f4319 100644
--- a/plugins/processing/matlab/CMakeLists.txt
+++ b/plugins/processing/matlab/CMakeLists.txt
@@ -5,8 +5,21 @@ SET(PROJECT_VERSION_MINOR ${OV_GLOBAL_VERSION_MINOR})
 SET(PROJECT_VERSION_PATCH ${OV_GLOBAL_VERSION_PATCH})
 SET(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
 
+add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/share/OV_stimulations.m
+    DEPENDS openvibe-stimulation-generator ${openvibe-toolkit_SOURCE_DIR}/share/stimulation_list.txt
+    COMMAND ${stim_generator_path}/openvibe-stimulation-generator
+    --matlab
+    ${openvibe-toolkit_SOURCE_DIR}/share/stimulation_list.txt
+    ${CMAKE_CURRENT_SOURCE_DIR}/share/OV_stimulations.m
+    COMMENT "Generating matlab stimulation sources..." )
+    
+    add_custom_target(generate_matlab_stimulations_file DEPENDS share/OV_stimulations.m)
+
+
 FILE(GLOB_RECURSE source_files src/*.cpp src/*.h src/*.inl)
 ADD_LIBRARY(${PROJECT_NAME} SHARED ${source_files})
+add_dependencies(openvibe-plugins-matlab generate_matlab_stimulations_file)
+
 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES
 	VERSION ${PROJECT_VERSION}
 	SOVERSION ${PROJECT_VERSION_MAJOR}
diff --git a/plugins/processing/matlab/share/OV_define.m b/plugins/processing/matlab/share/OV_define.m
index 260e7602bf2504e4446a0de681463ee09409a2cd..5c934ed83296cd1e3ed1d1a596e8d7c2d8654c62 100644
--- a/plugins/processing/matlab/share/OV_define.m
+++ b/plugins/processing/matlab/share/OV_define.m
@@ -58,386 +58,13 @@ function OV_define()
 	
 	
 % STIM CODES:
-    global OVTK_StimulationId_ExperimentStart;
-	global OVTK_StimulationId_ExperimentStop;
-	global OVTK_StimulationId_SegmentStart;
-	global OVTK_StimulationId_SegmentStop;
-	global OVTK_StimulationId_TrialStart;
-	global OVTK_StimulationId_TrialStop;
-	global OVTK_StimulationId_BaselineStart;
-	global OVTK_StimulationId_BaselineStop;
-	global OVTK_StimulationId_RestStart;
-	global OVTK_StimulationId_RestStop;
-	global OVTK_StimulationId_VisualStimulationStart;
-	global OVTK_StimulationId_VisualStimulationStop;
-	global OVTK_StimulationId_VisualSteadyStateStimulationStart;
-	global OVTK_StimulationId_VisualSteadyStateStimulationStop;
-
-	global OVTK_StimulationId_LabelStart;
-	global OVTK_StimulationId_Label_00;
-	global OVTK_StimulationId_Label_01;
-	global OVTK_StimulationId_Label_02;
-	global OVTK_StimulationId_Label_03;
-	global OVTK_StimulationId_Label_04;
-	global OVTK_StimulationId_Label_05;
-	global OVTK_StimulationId_Label_06;
-	global OVTK_StimulationId_Label_07;
-	global OVTK_StimulationId_Label_08;
-	global OVTK_StimulationId_Label_09;
-	global OVTK_StimulationId_Label_0A;
-	global OVTK_StimulationId_Label_0B;
-	global OVTK_StimulationId_Label_0C;
-	global OVTK_StimulationId_Label_0D;
-	global OVTK_StimulationId_Label_0E;
-	global OVTK_StimulationId_Label_0F;
-	global OVTK_StimulationId_Label_10;
-	global OVTK_StimulationId_Label_11;
-	global OVTK_StimulationId_Label_12;
-	global OVTK_StimulationId_Label_13;
-	global OVTK_StimulationId_Label_14;
-	global OVTK_StimulationId_Label_15;
-	global OVTK_StimulationId_Label_16;
-	global OVTK_StimulationId_Label_17;
-	global OVTK_StimulationId_Label_18;
-	global OVTK_StimulationId_Label_19;
-	global OVTK_StimulationId_Label_1A;
-	global OVTK_StimulationId_Label_1B;
-	global OVTK_StimulationId_Label_1C;
-	global OVTK_StimulationId_Label_1D;
-	global OVTK_StimulationId_Label_1E;
-	global OVTK_StimulationId_Label_1F;
-	global OVTK_StimulationId_LabelEnd;
-
-	global OVTK_StimulationId_Train;
-	global OVTK_StimulationId_Beep;
-	global OVTK_StimulationId_DoubleBeep;
-	global OVTK_StimulationId_EndOfFile;
-	global OVTK_StimulationId_Target;
-	global OVTK_StimulationId_NonTarget;
-	global OVTK_StimulationId_TrainCompleted;
-	global OVTK_StimulationId_Reset;
-
-	 % -- ___________________________________________________________________ --
-	 % --                                                                     --
-	 % --  GDF file format stimulation identifiers                            --
-	 % -- ___________________________________________________________________ --
-	 % --                                                                     --
-
-	global OVTK_GDF_Artifact_EOG_Large;
-	global OVTK_GDF_Artifact_ECG;
-	global OVTK_GDF_Artifact_EMG;
-	global OVTK_GDF_Artifact_Movement;
-	global OVTK_GDF_Artifact_Failing_Electrode;
-	global OVTK_GDF_Artifact_Sweat;
-	global OVTK_GDF_Artifact_50_60_Hz_Interference;
-	global OVTK_GDF_Artifact_Breathing;
-	global OVTK_GDF_Artifact_Pulse;
-	global OVTK_GDF_Artifact_EOG_Small;
-
-	global OVTK_GDF_Calibration;
-
-	global OVTK_GDF_EEG_Sleep_Splindles;
-	global OVTK_GDF_EEG_K_Complexes;
-	global OVTK_GDF_EEG_Saw_Tooth_Waves;
-	global OVTK_GDF_EEG_Idling_EEG_Eyes_Open;
-	global OVTK_GDF_EEG_Idling_EEG_Eyes_Closed;
-	global OVTK_GDF_EEG_Spike;
-	global OVTK_GDF_EEG_Seizure;
-
-	global OVTK_GDF_VEP;
-	global OVTK_GDF_AEP;
-	global OVTK_GDF_SEP;
-	global OVTK_GDF_TMS;
-
-	global OVTK_GDF_SSVEP;
-	global OVTK_GDF_SSAEP;
-	global OVTK_GDF_SSSEP;
-
-	global OVTK_GDF_Start_Of_Trial;
-	global OVTK_GDF_Left;
-	global OVTK_GDF_Right;
-	global OVTK_GDF_Foot;
-	global OVTK_GDF_Tongue;
-	global OVTK_GDF_class5;
-	global OVTK_GDF_Down;
-	global OVTK_GDF_class7;
-	global OVTK_GDF_class8;
-	global OVTK_GDF_class9;
-	global OVTK_GDF_class10;
-	global OVTK_GDF_class11;
-	global OVTK_GDF_Up;
-	global OVTK_GDF_Feedback_Continuous;
-	global OVTK_GDF_Feedback_Discrete;
-	global OVTK_GDF_Cue_Unknown_Undefined;
-	global OVTK_GDF_Beep;
-	global OVTK_GDF_Cross_On_Screen;
-	global OVTK_GDF_Flashing_Light;
-	 % --  SPECIALY ADDED BY YR
-	global OVTK_GDF_End_Of_Trial;
-
-	global OVTK_GDF_Correct;
-	global OVTK_GDF_Incorrect;
-	 % --  SPECIALY ADDED BY YR
-	global OVTK_GDF_End_Of_Session;
-	global OVTK_GDF_Rejection;
-
-	global OVTK_GDF_OAHE;
-	global OVTK_GDF_RERA;
-	global OVTK_GDF_CAHE;
-	global OVTK_GDF_CSB;
-	global OVTK_GDF_Sleep_Hypoventilation;
-	global OVTK_GDF_Maximum_Inspiration;
-	global OVTK_GDF_Start_Of_Inspiration;
-
-	global OVTK_GDF_Wake;
-	global OVTK_GDF_Stage_1;
-	global OVTK_GDF_Stage_2;
-	global OVTK_GDF_Stage_3;
-	global OVTK_GDF_Stage_4;
-	global OVTK_GDF_REM;
-
-	global OVTK_GDF_Lights_On;
-	global OVTK_GDF_Lights_Off;
-
-	global OVTK_GDF_Eyes_Left;
-	global OVTK_GDF_Eyes_Right;
-	global OVTK_GDF_Eyes_Up;
-	global OVTK_GDF_Eyes_Down;
-	global OVTK_GDF_Horizontal_Eye_Movement;
-	global OVTK_GDF_Vertical_Eye_Movement;
-	global OVTK_GDF_Rotation_Clockwise;
-	global OVTK_GDF_Rotation_Counterclockwise;
-	global OVTK_GDF_Eye_Blink;
-
-	global OVTK_GDF_Left_Hand_Movement;
-	global OVTK_GDF_Right_Hand_Movement;
-	global OVTK_GDF_Head_Movement;
-	global OVTK_GDF_Tongue_Movement;
-	global OVTK_GDF_Swallowing;
-	global OVTK_GDF_Biting;
-	global OVTK_GDF_Foot_Movement;
-	global OVTK_GDF_Foot_Right_Movement;
-	global OVTK_GDF_Arm_Movement;
-	global OVTK_GDF_Arm_Right_Movement;
-
-	global OVTK_GDF_ECG_Fiducial_Point_QRS_Complex;
-	global OVTK_GDF_ECG_P_Wave;
-	global OVTK_GDF_ECG_QRS_Complex;
-	global OVTK_GDF_ECG_R_Point;
-	global OVTK_GDF_ECG_T_Wave;
-	global OVTK_GDF_ECG_U_Wave;
-
-	global OVTK_GDF_Start;
-	global OVTK_GDF_25_Watt;
-	global OVTK_GDF_50_Watt;
-	global OVTK_GDF_75_Watt;
-	global OVTK_GDF_100_Watt;
-	global OVTK_GDF_125_Watt;
-	global OVTK_GDF_150_Watt;
-	global OVTK_GDF_175_Watt;
-	global OVTK_GDF_200_Watt;
-	global OVTK_GDF_225_Watt;
-	global OVTK_GDF_250_Watt;
-	global OVTK_GDF_275_Watt;
-	global OVTK_GDF_300_Watt;
-	global OVTK_GDF_325_Watt;
-	global OVTK_GDF_350_Watt;
-
-	global OVTK_GDF_Start_Of_New_Segment;
-	global OVTK_GDF_Non_Equidistant_Sampling_Value;
-	
-	 % -- ___________________________________________________________________ --
-	 % --                                                                     --
-	 % --  OpenViBE toolkit stimulation identifiers                           --
-	 % -- ___________________________________________________________________ --
-	 % --                                                                     --
-
-	 OVTK_StimulationId_ExperimentStart                    = uint64(hex2dec('00008001'));
-	 OVTK_StimulationId_ExperimentStop                     = uint64(hex2dec('00008002'));
-	 OVTK_StimulationId_SegmentStart                       = uint64(hex2dec('00008003'));
-	 OVTK_StimulationId_SegmentStop                        = uint64(hex2dec('00008004'));
-	 OVTK_StimulationId_TrialStart                         = uint64(hex2dec('00008005'));
-	 OVTK_StimulationId_TrialStop                          = uint64(hex2dec('00008006'));
-	 OVTK_StimulationId_BaselineStart                      = uint64(hex2dec('00008007'));
-	 OVTK_StimulationId_BaselineStop                       = uint64(hex2dec('00008008'));
-	 OVTK_StimulationId_RestStart                          = uint64(hex2dec('00008009'));
-	 OVTK_StimulationId_RestStop                           = uint64(hex2dec('0000800a'));
-	 OVTK_StimulationId_VisualStimulationStart             = uint64(hex2dec('0000800b'));
-	 OVTK_StimulationId_VisualStimulationStop              = uint64(hex2dec('0000800c'));
-	 OVTK_StimulationId_VisualSteadyStateStimulationStart  = uint64(hex2dec('00008010'));
-	 OVTK_StimulationId_VisualSteadyStateStimulationStop   = uint64(hex2dec('00008011'));
-
-	 OVTK_StimulationId_LabelStart                         = uint64(hex2dec('00008100'));
-	 OVTK_StimulationId_Label_00                           = uint64(hex2dec('00008100'));
-	 OVTK_StimulationId_Label_01                           = uint64(hex2dec('00008101'));
-	 OVTK_StimulationId_Label_02                           = uint64(hex2dec('00008102'));
-	 OVTK_StimulationId_Label_03                           = uint64(hex2dec('00008103'));
-	 OVTK_StimulationId_Label_04                           = uint64(hex2dec('00008104'));
-	 OVTK_StimulationId_Label_05                           = uint64(hex2dec('00008105'));
-	 OVTK_StimulationId_Label_06                           = uint64(hex2dec('00008106'));
-	 OVTK_StimulationId_Label_07                           = uint64(hex2dec('00008107'));
-	 OVTK_StimulationId_Label_08                           = uint64(hex2dec('00008108'));
-	 OVTK_StimulationId_Label_09                           = uint64(hex2dec('00008109'));
-	 OVTK_StimulationId_Label_0A                           = uint64(hex2dec('0000810a'));
-	 OVTK_StimulationId_Label_0B                           = uint64(hex2dec('0000810b'));
-	 OVTK_StimulationId_Label_0C                           = uint64(hex2dec('0000810c'));
-	 OVTK_StimulationId_Label_0D                           = uint64(hex2dec('0000810d'));
-	 OVTK_StimulationId_Label_0E                           = uint64(hex2dec('0000810e'));
-	 OVTK_StimulationId_Label_0F                           = uint64(hex2dec('0000810f'));
-	 OVTK_StimulationId_Label_10                           = uint64(hex2dec('00008110'));
-	 OVTK_StimulationId_Label_11                           = uint64(hex2dec('00008111'));
-	 OVTK_StimulationId_Label_12                           = uint64(hex2dec('00008112'));
-	 OVTK_StimulationId_Label_13                           = uint64(hex2dec('00008113'));
-	 OVTK_StimulationId_Label_14                           = uint64(hex2dec('00008114'));
-	 OVTK_StimulationId_Label_15                           = uint64(hex2dec('00008115'));
-	 OVTK_StimulationId_Label_16                           = uint64(hex2dec('00008116'));
-	 OVTK_StimulationId_Label_17                           = uint64(hex2dec('00008117'));
-	 OVTK_StimulationId_Label_18                           = uint64(hex2dec('00008118'));
-	 OVTK_StimulationId_Label_19                           = uint64(hex2dec('00008119'));
-	 OVTK_StimulationId_Label_1A                           = uint64(hex2dec('0000811a'));
-	 OVTK_StimulationId_Label_1B                           = uint64(hex2dec('0000811b'));
-	 OVTK_StimulationId_Label_1C                           = uint64(hex2dec('0000811c'));
-	 OVTK_StimulationId_Label_1D                           = uint64(hex2dec('0000811d'));
-	 OVTK_StimulationId_Label_1E                           = uint64(hex2dec('0000811e'));
-	 OVTK_StimulationId_Label_1F                           = uint64(hex2dec('0000811f'));
-	 OVTK_StimulationId_LabelEnd                           = uint64(hex2dec('000081ff'));
-
-	 OVTK_StimulationId_Train                              = uint64(hex2dec('00008201'));
-	 OVTK_StimulationId_Beep                               = uint64(hex2dec('00008202'));
-	 OVTK_StimulationId_DoubleBeep                         = uint64(hex2dec('00008203'));
-	 OVTK_StimulationId_EndOfFile                          = uint64(hex2dec('00008204'));
-	 OVTK_StimulationId_Target                             = uint64(hex2dec('00008205'));
-	 OVTK_StimulationId_NonTarget                          = uint64(hex2dec('00008206'));
-	 OVTK_StimulationId_TrainCompleted                     = uint64(hex2dec('00008207'));
-	 OVTK_StimulationId_Reset                              = uint64(hex2dec('00008208'));
-
-	 % -- ___________________________________________________________________ --
-	 % --                                                                     --
-	 % --  GDF file format stimulation identifiers                            --
-	 % -- ___________________________________________________________________ --
-	 % --                                                                     --
-
-	 OVTK_GDF_Artifact_EOG_Large                                = uint64(hex2dec('101'));
-	 OVTK_GDF_Artifact_ECG                                      = uint64(hex2dec('102'));
-	 OVTK_GDF_Artifact_EMG                                      = uint64(hex2dec('103'));
-	 OVTK_GDF_Artifact_Movement                                 = uint64(hex2dec('104'));
-	 OVTK_GDF_Artifact_Failing_Electrode                        = uint64(hex2dec('105'));
-	 OVTK_GDF_Artifact_Sweat                                    = uint64(hex2dec('106'));
-	 OVTK_GDF_Artifact_50_60_Hz_Interference                    = uint64(hex2dec('107'));
-	 OVTK_GDF_Artifact_Breathing                                = uint64(hex2dec('108'));
-	 OVTK_GDF_Artifact_Pulse                                    = uint64(hex2dec('109'));
-	 OVTK_GDF_Artifact_EOG_Small                                = uint64(hex2dec('10A'));
-
-	 OVTK_GDF_Calibration                                       = uint64(hex2dec('10F'));
-
-	 OVTK_GDF_EEG_Sleep_Splindles                               = uint64(hex2dec('111'));
-	 OVTK_GDF_EEG_K_Complexes                                   = uint64(hex2dec('112'));
-	 OVTK_GDF_EEG_Saw_Tooth_Waves                               = uint64(hex2dec('113'));
-	 OVTK_GDF_EEG_Idling_EEG_Eyes_Open                          = uint64(hex2dec('114'));
-	 OVTK_GDF_EEG_Idling_EEG_Eyes_Closed                        = uint64(hex2dec('115'));
-	 OVTK_GDF_EEG_Spike                                         = uint64(hex2dec('116'));
-	 OVTK_GDF_EEG_Seizure                                       = uint64(hex2dec('117'));
-
-	 OVTK_GDF_VEP                                               = uint64(hex2dec('121'));
-	 OVTK_GDF_AEP                                               = uint64(hex2dec('122'));
-	 OVTK_GDF_SEP                                               = uint64(hex2dec('123'));
-	 OVTK_GDF_TMS                                               = uint64(hex2dec('12F'));
-
-	 OVTK_GDF_SSVEP                                             = uint64(hex2dec('131'));
-	 OVTK_GDF_SSAEP                                             = uint64(hex2dec('132'));
-	 OVTK_GDF_SSSEP                                             = uint64(hex2dec('133'));
-
-	 OVTK_GDF_Start_Of_Trial                                    = uint64(hex2dec('300'));
-	 OVTK_GDF_Left                                              = uint64(hex2dec('301'));
-	 OVTK_GDF_Right                                             = uint64(hex2dec('302'));
-	 OVTK_GDF_Foot                                              = uint64(hex2dec('303'));
-	 OVTK_GDF_Tongue                                            = uint64(hex2dec('304'));
-	 OVTK_GDF_class5                                            = uint64(hex2dec('305'));
-	 OVTK_GDF_Down                                              = uint64(hex2dec('306'));
-	 OVTK_GDF_class7                                            = uint64(hex2dec('307'));
-	 OVTK_GDF_class8                                            = uint64(hex2dec('308'));
-	 OVTK_GDF_class9                                            = uint64(hex2dec('309'));
-	 OVTK_GDF_class10                                           = uint64(hex2dec('30A'));
-	 OVTK_GDF_class11                                           = uint64(hex2dec('30B'));
-	 OVTK_GDF_Up                                                = uint64(hex2dec('30C'));
-	 OVTK_GDF_Feedback_Continuous                               = uint64(hex2dec('30D'));
-	 OVTK_GDF_Feedback_Discrete                                 = uint64(hex2dec('30E'));
-	 OVTK_GDF_Cue_Unknown_Undefined                             = uint64(hex2dec('30F'));
-	 OVTK_GDF_Beep                                              = uint64(hex2dec('311'));
-	 OVTK_GDF_Cross_On_Screen                                   = uint64(hex2dec('312'));
-	 OVTK_GDF_Flashing_Light                                    = uint64(hex2dec('313'));
-	 % --  SPECIALY ADDED BY YR
-	 OVTK_GDF_End_Of_Trial                                      = uint64(hex2dec('320'));
-
-	 OVTK_GDF_Correct                                           = uint64(hex2dec('381'));
-	 OVTK_GDF_Incorrect                                         = uint64(hex2dec('382'));
-	 % --  SPECIALY ADDED BY YR
-	 OVTK_GDF_End_Of_Session                                    = uint64(hex2dec('3F2'));
-	 OVTK_GDF_Rejection                                         = uint64(hex2dec('3FF'));
-
-	 OVTK_GDF_OAHE                                              = uint64(hex2dec('401'));
-	 OVTK_GDF_RERA                                              = uint64(hex2dec('402'));
-	 OVTK_GDF_CAHE                                              = uint64(hex2dec('403'));
-	 OVTK_GDF_CSB                                               = uint64(hex2dec('404'));
-	 OVTK_GDF_Sleep_Hypoventilation                             = uint64(hex2dec('405'));
-	 OVTK_GDF_Maximum_Inspiration                               = uint64(hex2dec('40E'));
-	 OVTK_GDF_Start_Of_Inspiration                              = uint64(hex2dec('40F'));
-
-	 OVTK_GDF_Wake                                              = uint64(hex2dec('410'));
-	 OVTK_GDF_Stage_1                                           = uint64(hex2dec('411'));
-	 OVTK_GDF_Stage_2                                           = uint64(hex2dec('412'));
-	 OVTK_GDF_Stage_3                                           = uint64(hex2dec('413'));
-	 OVTK_GDF_Stage_4                                           = uint64(hex2dec('414'));
-	 OVTK_GDF_REM                                               = uint64(hex2dec('415'));
-
-	 OVTK_GDF_Lights_On                                         = uint64(hex2dec('420'));
-	 OVTK_GDF_Lights_Off                                        = uint64(hex2dec('8420'));
-
-	 OVTK_GDF_Eyes_Left                                         = uint64(hex2dec('431'));
-	 OVTK_GDF_Eyes_Right                                        = uint64(hex2dec('432'));
-	 OVTK_GDF_Eyes_Up                                           = uint64(hex2dec('433'));
-	 OVTK_GDF_Eyes_Down                                         = uint64(hex2dec('434'));
-	 OVTK_GDF_Horizontal_Eye_Movement                           = uint64(hex2dec('435'));
-	 OVTK_GDF_Vertical_Eye_Movement                             = uint64(hex2dec('436'));
-	 OVTK_GDF_Rotation_Clockwise                                = uint64(hex2dec('437'));
-	 OVTK_GDF_Rotation_Counterclockwise                         = uint64(hex2dec('438'));
-	 OVTK_GDF_Eye_Blink                                         = uint64(hex2dec('439'));
-
-	 OVTK_GDF_Left_Hand_Movement                                = uint64(hex2dec('441'));
-	 OVTK_GDF_Right_Hand_Movement                               = uint64(hex2dec('442'));
-	 OVTK_GDF_Head_Movement                                     = uint64(hex2dec('443'));
-	 OVTK_GDF_Tongue_Movement                                   = uint64(hex2dec('444'));
-	 OVTK_GDF_Swallowing                                        = uint64(hex2dec('445'));
-	 OVTK_GDF_Biting                                            = uint64(hex2dec('446'));
-	 OVTK_GDF_Foot_Movement                                     = uint64(hex2dec('447'));
-	 OVTK_GDF_Foot_Right_Movement                               = uint64(hex2dec('448'));
-	 OVTK_GDF_Arm_Movement                                      = uint64(hex2dec('449'));
-	 OVTK_GDF_Arm_Right_Movement                                = uint64(hex2dec('44A'));
-
-	 OVTK_GDF_ECG_Fiducial_Point_QRS_Complex                    = uint64(hex2dec('501'));
-	 OVTK_GDF_ECG_P_Wave                                        = uint64(hex2dec('502'));
-	 OVTK_GDF_ECG_QRS_Complex                                   = uint64(hex2dec('503'));
-	 OVTK_GDF_ECG_R_Point                                       = uint64(hex2dec('504'));
-	 OVTK_GDF_ECG_T_Wave                                        = uint64(hex2dec('506'));
-	 OVTK_GDF_ECG_U_Wave                                        = uint64(hex2dec('507'));
-
-	 OVTK_GDF_Start                                             = uint64(hex2dec('580'));
-	 OVTK_GDF_25_Watt                                           = uint64(hex2dec('581'));
-	 OVTK_GDF_50_Watt                                           = uint64(hex2dec('582'));
-	 OVTK_GDF_75_Watt                                           = uint64(hex2dec('583'));
-	 OVTK_GDF_100_Watt                                          = uint64(hex2dec('584'));
-	 OVTK_GDF_125_Watt                                          = uint64(hex2dec('585'));
-	 OVTK_GDF_150_Watt                                          = uint64(hex2dec('586'));
-	 OVTK_GDF_175_Watt                                          = uint64(hex2dec('587'));
-	 OVTK_GDF_200_Watt                                          = uint64(hex2dec('588'));
-	 OVTK_GDF_225_Watt                                          = uint64(hex2dec('589'));
-	 OVTK_GDF_250_Watt                                          = uint64(hex2dec('58A'));
-	 OVTK_GDF_275_Watt                                          = uint64(hex2dec('58B'));
-	 OVTK_GDF_300_Watt                                          = uint64(hex2dec('58C'));
-	 OVTK_GDF_325_Watt                                          = uint64(hex2dec('58D'));
-	 OVTK_GDF_350_Watt                                          = uint64(hex2dec('58E'));
-
-	 OVTK_GDF_Start_Of_New_Segment                              = uint64(hex2dec('7FFE'));
-	 OVTK_GDF_Non_Equidistant_Sampling_Value                    = uint64(hex2dec('7FFF'));
- 
+    global OVTK_StimulationId_LabelStart;
+     OVTK_StimulationId_LabelStart                         = uint64(hex2dec('00008100'));
+    global OVTK_StimulationId_LabelEnd;
+     OVTK_StimulationId_LabelEnd                           = uint64(hex2dec('000081ff'));
+     
+    global OVTK_StimulationId_NumberStart;
+     OVTK_StimulationId_NumberStart                         = uint64(hex2dec('00000000'));
+    global OVTK_StimulationId_NumberEnd;
+     OVTK_StimulationId_NumberEnd                           = uint64(hex2dec('000000ff'));
 end
diff --git a/plugins/processing/matlab/src/box-algorithms/ovpCBoxAlgorithmMatlabScripting.cpp b/plugins/processing/matlab/src/box-algorithms/ovpCBoxAlgorithmMatlabScripting.cpp
index 631ba39e81f7c5053c1dd2b73304f9a89e0ff5b3..f538e09a05065839e45f4b996b56119165c1187f 100644
--- a/plugins/processing/matlab/src/box-algorithms/ovpCBoxAlgorithmMatlabScripting.cpp
+++ b/plugins/processing/matlab/src/box-algorithms/ovpCBoxAlgorithmMatlabScripting.cpp
@@ -313,6 +313,9 @@ boolean CBoxAlgorithmMatlabScripting::initialize(void)
 	// executes the pre-run routine that defines the global identifiers for streams and stimulations codes
 	l_sCommand = CString("run '") + OpenViBE::Directories::getDataDir() + "/plugins/matlab/OV_define.m'";
 	if(!checkFailureRoutine(::engEvalString(m_pMatlabEngine, l_sCommand) == 0, "An error occurred while calling OV_define.m")) return false;
+	
+	l_sCommand = CString("run '") + OpenViBE::Directories::getDataDir() + "/plugins/matlab/OV_stimulations.m'";
+	if(!checkFailureRoutine(::engEvalString(m_pMatlabEngine, l_sCommand) == 0, "An error occurred while calling OV_stimulations.m")) return false;
 
 	// executes the pre-run routine that construct the ov_box object
 	char l_sInputCount[32]; sprintf(l_sInputCount, "%i", this->getStaticBoxContext().getInputCount());
diff --git a/toolkit/CMakeLists.txt b/toolkit/CMakeLists.txt
index 1714f25ea543d22273c437e83aa930aef1b2e96e..fe2e0340dd905820c6bba2faf62e1ff0c949dcfa 100644
--- a/toolkit/CMakeLists.txt
+++ b/toolkit/CMakeLists.txt
@@ -6,6 +6,19 @@ SET(PROJECT_VERSION_MINOR ${OV_GLOBAL_VERSION_MINOR})
 SET(PROJECT_VERSION_PATCH ${OV_GLOBAL_VERSION_PATCH})
 SET(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
 
+
+#We need to generate the stimulation files
+add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/include/toolkit/ovtk_stimulations.h ${CMAKE_CURRENT_SOURCE_DIR}/src/ovtk_stimulations.cpp
+    DEPENDS openvibe-stimulation-generator ${CMAKE_CURRENT_SOURCE_DIR}/share/stimulation_list.txt
+    COMMAND ${stim_generator_path}/openvibe-stimulation-generator
+    --cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/share/stimulation_list.txt
+    ${CMAKE_CURRENT_SOURCE_DIR}/include/toolkit/ovtk_stimulations.h
+    ${CMAKE_CURRENT_SOURCE_DIR}/src/ovtk_stimulations.cpp
+    COMMENT "Generating stimulation sources..." )
+    
+add_custom_target(generate_stimulations_file DEPENDS include/toolkit/ovtk_stimulations.h src/ovtk_stimulations.cpp)
+
 FILE(GLOB_RECURSE source_files src/*.cpp src/*.h src/*.inl src/*.hpp include/*.h)
 
 INCLUDE_DIRECTORIES(${openvibe-toolkit_SOURCE_DIR}/include/)
@@ -16,7 +29,9 @@ INCLUDE_DIRECTORIES(${openvibe-toolkit_SOURCE_DIR}/include/toolkit/deprecated/re
 INCLUDE_DIRECTORIES(${openvibe-toolkit_SOURCE_DIR}/include/toolkit/training)
 INCLUDE_DIRECTORIES(${openvibe-toolkit_SOURCE_DIR}/include/toolkit/tools)
 
-ADD_LIBRARY(${PROJECT_NAME} SHARED ${source_files})
+ADD_LIBRARY(${PROJECT_NAME} SHARED ${source_files} ${CMAKE_CURRENT_SOURCE_DIR}/src/ovtk_stimulations.cpp)
+add_dependencies(openvibe-toolkit generate_stimulations_file)
+
 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES
 	VERSION ${PROJECT_VERSION}
 	SOVERSION ${PROJECT_VERSION_MAJOR}
diff --git a/toolkit/include/toolkit/ovtk_all.h b/toolkit/include/toolkit/ovtk_all.h
index 3b733b2937199645f30e622f8c84e04a0fb1530a..48c4dcd86fbbb7691fc8ccd11592a1549db62b96 100644
--- a/toolkit/include/toolkit/ovtk_all.h
+++ b/toolkit/include/toolkit/ovtk_all.h
@@ -87,10 +87,14 @@
 //___________________________________________________________________//
 //                                                                   //
 
+
 namespace OpenViBEToolkit
 {
 	OV_API OpenViBE::boolean initialize(const OpenViBE::Kernel::IKernelContext& rKernelContext);
 	OV_API OpenViBE::boolean uninitialize(const OpenViBE::Kernel::IKernelContext& rKernelContext);
+
+	//
+	OpenViBE::boolean initializeStimulationList(const OpenViBE::Kernel::IKernelContext& rKernelContext);
 };
 
 #endif // __OpenViBEToolkit_All_H__
diff --git a/toolkit/include/toolkit/ovtk_defines.h b/toolkit/include/toolkit/ovtk_defines.h
index c4a0ec9ee22d133478838104877908874df30d24..0e218f2774533a8309cd28ba15f044939f20d5e6 100644
--- a/toolkit/include/toolkit/ovtk_defines.h
+++ b/toolkit/include/toolkit/ovtk_defines.h
@@ -1,6 +1,8 @@
 #ifndef __OpenViBEToolkit_Defines_H__
 #define __OpenViBEToolkit_Defines_H__
 
+#include "ovtk_stimulations.h"
+
 //___________________________________________________________________//
 //                                                                   //
 // OpenViBE toolkit input and output type identifiers                //
@@ -60,241 +62,17 @@
 //___________________________________________________________________//
 //                                                                   //
 
-#define OVTK_StimulationId_ExperimentStart                   0x00008001
-#define OVTK_StimulationId_ExperimentStop                    0x00008002
-#define OVTK_StimulationId_SegmentStart                      0x00008003
-#define OVTK_StimulationId_SegmentStop                       0x00008004
-#define OVTK_StimulationId_TrialStart                        0x00008005
-#define OVTK_StimulationId_TrialStop                         0x00008006
-#define OVTK_StimulationId_BaselineStart                     0x00008007
-#define OVTK_StimulationId_BaselineStop                      0x00008008
-#define OVTK_StimulationId_RestStart                         0x00008009
-#define OVTK_StimulationId_RestStop                          0x0000800a
-#define OVTK_StimulationId_VisualStimulationStart            0x0000800b
-#define OVTK_StimulationId_VisualStimulationStop             0x0000800c
-#define OVTK_StimulationId_VisualSteadyStateStimulationStart 0x00008010
-#define OVTK_StimulationId_VisualSteadyStateStimulationStop  0x00008011
-#define OVTK_StimulationId_Button1_Pressed                   0x00008012
-#define OVTK_StimulationId_Button1_Released                  0x00008013
-#define OVTK_StimulationId_Button2_Pressed                   0x00008014
-#define OVTK_StimulationId_Button2_Released                  0x00008015
-#define OVTK_StimulationId_Button3_Pressed                   0x00008016
-#define OVTK_StimulationId_Button3_Released                  0x00008017
-#define OVTK_StimulationId_Button4_Pressed                   0x00008018
-#define OVTK_StimulationId_Button4_Released                  0x00008019
-
 #define OVTK_StimulationId_Label(i)                          0x00008100|((i)&0xff)
 #define OVTK_StimulationId_LabelStart                        0x00008100
-#define OVTK_StimulationId_Label_00                          0x00008100
-#define OVTK_StimulationId_Label_01                          0x00008101
-#define OVTK_StimulationId_Label_02                          0x00008102
-#define OVTK_StimulationId_Label_03                          0x00008103
-#define OVTK_StimulationId_Label_04                          0x00008104
-#define OVTK_StimulationId_Label_05                          0x00008105
-#define OVTK_StimulationId_Label_06                          0x00008106
-#define OVTK_StimulationId_Label_07                          0x00008107
-#define OVTK_StimulationId_Label_08                          0x00008108
-#define OVTK_StimulationId_Label_09                          0x00008109
-#define OVTK_StimulationId_Label_0A                          0x0000810a
-#define OVTK_StimulationId_Label_0B                          0x0000810b
-#define OVTK_StimulationId_Label_0C                          0x0000810c
-#define OVTK_StimulationId_Label_0D                          0x0000810d
-#define OVTK_StimulationId_Label_0E                          0x0000810e
-#define OVTK_StimulationId_Label_0F                          0x0000810f
-#define OVTK_StimulationId_Label_10                          0x00008110
-#define OVTK_StimulationId_Label_11                          0x00008111
-#define OVTK_StimulationId_Label_12                          0x00008112
-#define OVTK_StimulationId_Label_13                          0x00008113
-#define OVTK_StimulationId_Label_14                          0x00008114
-#define OVTK_StimulationId_Label_15                          0x00008115
-#define OVTK_StimulationId_Label_16                          0x00008116
-#define OVTK_StimulationId_Label_17                          0x00008117
-#define OVTK_StimulationId_Label_18                          0x00008118
-#define OVTK_StimulationId_Label_19                          0x00008119
-#define OVTK_StimulationId_Label_1A                          0x0000811a
-#define OVTK_StimulationId_Label_1B                          0x0000811b
-#define OVTK_StimulationId_Label_1C                          0x0000811c
-#define OVTK_StimulationId_Label_1D                          0x0000811d
-#define OVTK_StimulationId_Label_1E                          0x0000811e
-#define OVTK_StimulationId_Label_1F                          0x0000811f
 #define OVTK_StimulationId_LabelEnd                          0x000081ff
 
-#define OVTK_StimulationId_Train                             0x00008201
-#define OVTK_StimulationId_Beep                              0x00008202
-#define OVTK_StimulationId_DoubleBeep                        0x00008203
-#define OVTK_StimulationId_EndOfFile                         0x00008204
-#define OVTK_StimulationId_Target                            0x00008205
-#define OVTK_StimulationId_NonTarget                         0x00008206
-#define OVTK_StimulationId_TrainCompleted                    0x00008207
-#define OVTK_StimulationId_Reset                             0x00008208
-
 // These are low-order stimulations that may be required for some legacy communication 
 // channels like parallel port handling only 1 byte codes. The name and number of these stimuli exactly matches.
 #define OVTK_StimulationId_NumberStart                        0x00000000
-#define OVTK_StimulationId_Number_00                          0x00000000
-#define OVTK_StimulationId_Number_01                          0x00000001
-#define OVTK_StimulationId_Number_02                          0x00000002
-#define OVTK_StimulationId_Number_03                          0x00000003
-#define OVTK_StimulationId_Number_04                          0x00000004
-#define OVTK_StimulationId_Number_05                          0x00000005
-#define OVTK_StimulationId_Number_06                          0x00000006
-#define OVTK_StimulationId_Number_07                          0x00000007
-#define OVTK_StimulationId_Number_08                          0x00000008
-#define OVTK_StimulationId_Number_09                          0x00000009
-#define OVTK_StimulationId_Number_0A                          0x0000000a
-#define OVTK_StimulationId_Number_0B                          0x0000000b
-#define OVTK_StimulationId_Number_0C                          0x0000000c
-#define OVTK_StimulationId_Number_0D                          0x0000000d
-#define OVTK_StimulationId_Number_0E                          0x0000000e
-#define OVTK_StimulationId_Number_0F                          0x0000000f
-#define OVTK_StimulationId_Number_10                          0x00000010
-#define OVTK_StimulationId_Number_11                          0x00000011
-#define OVTK_StimulationId_Number_12                          0x00000012
-#define OVTK_StimulationId_Number_13                          0x00000013
-#define OVTK_StimulationId_Number_14                          0x00000014
-#define OVTK_StimulationId_Number_15                          0x00000015
-#define OVTK_StimulationId_Number_16                          0x00000016
-#define OVTK_StimulationId_Number_17                          0x00000017
-#define OVTK_StimulationId_Number_18                          0x00000018
-#define OVTK_StimulationId_Number_19                          0x00000019
-#define OVTK_StimulationId_Number_1A                          0x0000001a
-#define OVTK_StimulationId_Number_1B                          0x0000001b
-#define OVTK_StimulationId_Number_1C                          0x0000001c
-#define OVTK_StimulationId_Number_1D                          0x0000001d
-#define OVTK_StimulationId_Number_1E                          0x0000001e
-#define OVTK_StimulationId_Number_1F                          0x0000001f
 #define OVTK_StimulationId_NumberEnd                          0x000000ff
 
-//___________________________________________________________________//
-//                                                                   //
-// GDF file format stimulation identifiers                           //
-//___________________________________________________________________//
-//                                                                   //
-
-#define OVTK_GDF_Artifact_EOG_Large                               0x101
-#define OVTK_GDF_Artifact_ECG                                     0x102
-#define OVTK_GDF_Artifact_EMG                                     0x103
-#define OVTK_GDF_Artifact_Movement                                0x104
-#define OVTK_GDF_Artifact_Failing_Electrode                       0x105
-#define OVTK_GDF_Artifact_Sweat                                   0x106
-#define OVTK_GDF_Artifact_50_60_Hz_Interference                   0x107
-#define OVTK_GDF_Artifact_Breathing                               0x108
-#define OVTK_GDF_Artifact_Pulse                                   0x109
-#define OVTK_GDF_Artifact_EOG_Small                               0x10A
-
-#define OVTK_GDF_Calibration                                      0x10F
-
-#define OVTK_GDF_EEG_Sleep_Splindles                              0x111
-#define OVTK_GDF_EEG_K_Complexes                                  0x112
-#define OVTK_GDF_EEG_Saw_Tooth_Waves                              0x113
-#define OVTK_GDF_EEG_Idling_EEG_Eyes_Open                         0x114
-#define OVTK_GDF_EEG_Idling_EEG_Eyes_Closed                       0x115
-#define OVTK_GDF_EEG_Spike                                        0x116
-#define OVTK_GDF_EEG_Seizure                                      0x117
-
-#define OVTK_GDF_VEP                                              0x121
-#define OVTK_GDF_AEP                                              0x122
-#define OVTK_GDF_SEP                                              0x123
-#define OVTK_GDF_TMS                                              0x12F
-
-#define OVTK_GDF_SSVEP                                            0x131
-#define OVTK_GDF_SSAEP                                            0x132
-#define OVTK_GDF_SSSEP                                            0x133
-
-#define OVTK_GDF_Start_Of_Trial                                   0x300
-#define OVTK_GDF_Left                                             0x301
-#define OVTK_GDF_Right                                            0x302
-#define OVTK_GDF_Foot                                             0x303
-#define OVTK_GDF_Tongue                                           0x304
-#define OVTK_GDF_class5                                           0x305
-#define OVTK_GDF_Down                                             0x306
-#define OVTK_GDF_class7                                           0x307
-#define OVTK_GDF_class8                                           0x308
-#define OVTK_GDF_class9                                           0x309
-#define OVTK_GDF_class10                                          0x30A
-#define OVTK_GDF_class11                                          0x30B
-#define OVTK_GDF_Up                                               0x30C
-#define OVTK_GDF_Feedback_Continuous                              0x30D
-#define OVTK_GDF_Feedback_Discrete                                0x30E
-#define OVTK_GDF_Cue_Unknown_Undefined                            0x30F
-#define OVTK_GDF_Beep                                             0x311
-#define OVTK_GDF_Cross_On_Screen                                  0x312
-#define OVTK_GDF_Flashing_Light                                   0x313
-// SPECIALY ADDED BY YR
-#define OVTK_GDF_End_Of_Trial                                     0x320
-
-#define OVTK_GDF_Correct                                          0x381
-#define OVTK_GDF_Incorrect                                        0x382
-// SPECIALY ADDED BY YR
-#define OVTK_GDF_End_Of_Session                                   0x3F2
-#define OVTK_GDF_Rejection                                        0x3FF
-
-#define OVTK_GDF_OAHE                                             0x401
-#define OVTK_GDF_RERA                                             0x402
-#define OVTK_GDF_CAHE                                             0x403
-#define OVTK_GDF_CSB                                              0x404
-#define OVTK_GDF_Sleep_Hypoventilation                            0x405
-#define OVTK_GDF_Maximum_Inspiration                              0x40E
-#define OVTK_GDF_Start_Of_Inspiration                             0x40F
-
-#define OVTK_GDF_Wake                                             0x410
-#define OVTK_GDF_Stage_1                                          0x411
-#define OVTK_GDF_Stage_2                                          0x412
-#define OVTK_GDF_Stage_3                                          0x413
-#define OVTK_GDF_Stage_4                                          0x414
-#define OVTK_GDF_REM                                              0x415
-
-#define OVTK_GDF_Lights_On                                        0x420
-#define OVTK_GDF_Lights_Off                                       0x8420
-
-#define OVTK_GDF_Eyes_Left                                        0x431
-#define OVTK_GDF_Eyes_Right                                       0x432
-#define OVTK_GDF_Eyes_Up                                          0x433
-#define OVTK_GDF_Eyes_Down                                        0x434
-#define OVTK_GDF_Horizontal_Eye_Movement                          0x435
-#define OVTK_GDF_Vertical_Eye_Movement                            0x436
-#define OVTK_GDF_Rotation_Clockwise                               0x437
-#define OVTK_GDF_Rotation_Counterclockwise                        0x438
-#define OVTK_GDF_Eye_Blink                                        0x439
-
-#define OVTK_GDF_Left_Hand_Movement                               0x441
-#define OVTK_GDF_Right_Hand_Movement                              0x442
-#define OVTK_GDF_Head_Movement                                    0x443
-#define OVTK_GDF_Tongue_Movement                                  0x444
-#define OVTK_GDF_Swallowing                                       0x445
-#define OVTK_GDF_Biting                                           0x446
-#define OVTK_GDF_Foot_Movement                                    0x447
-#define OVTK_GDF_Foot_Right_Movement                              0x448
-#define OVTK_GDF_Arm_Movement                                     0x449
-#define OVTK_GDF_Arm_Right_Movement                               0x44A
-
-#define OVTK_GDF_ECG_Fiducial_Point_QRS_Complex                   0x501
-#define OVTK_GDF_ECG_P_Wave                                       0x502
-#define OVTK_GDF_ECG_QRS_Complex                                  0x503
-#define OVTK_GDF_ECG_R_Point                                      0x504
-#define OVTK_GDF_ECG_T_Wave                                       0x506
-#define OVTK_GDF_ECG_U_Wave                                       0x507
-
-#define OVTK_GDF_Start                                            0x580
-#define OVTK_GDF_25_Watt                                          0x581
-#define OVTK_GDF_50_Watt                                          0x582
-#define OVTK_GDF_75_Watt                                          0x583
-#define OVTK_GDF_100_Watt                                         0x584
-#define OVTK_GDF_125_Watt                                         0x585
-#define OVTK_GDF_150_Watt                                         0x586
-#define OVTK_GDF_175_Watt                                         0x587
-#define OVTK_GDF_200_Watt                                         0x588
-#define OVTK_GDF_225_Watt                                         0x589
-#define OVTK_GDF_250_Watt                                         0x58A
-#define OVTK_GDF_275_Watt                                         0x58B
-#define OVTK_GDF_300_Watt                                         0x58C
-#define OVTK_GDF_325_Watt                                         0x58D
-#define OVTK_GDF_350_Watt                                         0x58E
-
 #define OVTK_GDF_Condition(i)                                       (i)
 
-#define OVTK_GDF_Start_Of_New_Segment                            0x7FFE
-#define OVTK_GDF_Non_Equidistant_Sampling_Value                  0x7FFF
 
 //___________________________________________________________________//
 //                                                                   //
diff --git a/toolkit/share/stimulation_list.txt b/toolkit/share/stimulation_list.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5f5c8bd09f55ba9114eb32d52c6320ea654c3cf6
--- /dev/null
+++ b/toolkit/share/stimulation_list.txt
@@ -0,0 +1,200 @@
+ OVTK_StimulationId_ExperimentStart OVTK_StimulationId_ExperimentStart  0x00008001
+ OVTK_StimulationId_ExperimentStop OVTK_StimulationId_ExperimentStop  0x00008002
+ OVTK_StimulationId_SegmentStart OVTK_StimulationId_SegmentStart  0x00008003
+ OVTK_StimulationId_SegmentStop OVTK_StimulationId_SegmentStop  0x00008004
+ OVTK_StimulationId_TrialStart OVTK_StimulationId_TrialStart 0x00008005
+ OVTK_StimulationId_TrialStop OVTK_StimulationId_TrialStop 0x00008006
+ OVTK_StimulationId_BaselineStart OVTK_StimulationId_BaselineStart 0x00008007
+ OVTK_StimulationId_BaselineStop OVTK_StimulationId_BaselineStop 0x00008008
+ OVTK_StimulationId_RestStart OVTK_StimulationId_RestStart 0x00008009
+ OVTK_StimulationId_RestStop OVTK_StimulationId_RestStop 0x0000800a
+ OVTK_StimulationId_VisualStimulationStart OVTK_StimulationId_VisualStimulationStart 0x0000800b
+ OVTK_StimulationId_VisualStimulationStop OVTK_StimulationId_VisualStimulationStop 0x0000800c
+ OVTK_StimulationId_VisualSteadyStateStimulationStart OVTK_StimulationId_VisualSteadyStateStimulationStart 0x00008010
+ OVTK_StimulationId_VisualSteadyStateStimulationStop OVTK_StimulationId_VisualSteadyStateStimulationStop 0x00008011
+ OVTK_StimulationId_Button1_Pressed OVTK_StimulationId_Button1_Pressed 0x00008012
+ OVTK_StimulationId_Button1_Released OVTK_StimulationId_Button1_Released 0x00008013
+ OVTK_StimulationId_Button2_Pressed OVTK_StimulationId_Button2_Pressed 0x00008014
+ OVTK_StimulationId_Button2_Released OVTK_StimulationId_Button2_Released 0x00008015
+ OVTK_StimulationId_Button3_Pressed OVTK_StimulationId_Button3_Pressed 0x00008016
+ OVTK_StimulationId_Button3_Released OVTK_StimulationId_Button3_Released 0x00008017
+ OVTK_StimulationId_Button4_Pressed OVTK_StimulationId_Button4_Pressed 0x00008018
+ OVTK_StimulationId_Button4_Released OVTK_StimulationId_Button4_Released 0x00008019
+ OVTK_StimulationId_Label_00 OVTK_StimulationId_Label_00 0x00008100
+ OVTK_StimulationId_Label_01 OVTK_StimulationId_Label_01 0x00008101
+ OVTK_StimulationId_Label_02 OVTK_StimulationId_Label_02 0x00008102
+ OVTK_StimulationId_Label_03 OVTK_StimulationId_Label_03 0x00008103
+ OVTK_StimulationId_Label_04 OVTK_StimulationId_Label_04 0x00008104
+ OVTK_StimulationId_Label_05 OVTK_StimulationId_Label_05 0x00008105
+ OVTK_StimulationId_Label_06 OVTK_StimulationId_Label_06 0x00008106
+ OVTK_StimulationId_Label_07 OVTK_StimulationId_Label_07 0x00008107
+ OVTK_StimulationId_Label_08 OVTK_StimulationId_Label_08 0x00008108
+ OVTK_StimulationId_Label_09 OVTK_StimulationId_Label_09 0x00008109
+ OVTK_StimulationId_Label_0A OVTK_StimulationId_Label_0A 0x0000810a
+ OVTK_StimulationId_Label_0B OVTK_StimulationId_Label_0B 0x0000810b
+ OVTK_StimulationId_Label_0C OVTK_StimulationId_Label_0C 0x0000810c
+ OVTK_StimulationId_Label_0D OVTK_StimulationId_Label_0D 0x0000810d
+ OVTK_StimulationId_Label_0E OVTK_StimulationId_Label_0E 0x0000810e
+ OVTK_StimulationId_Label_0F OVTK_StimulationId_Label_0F 0x0000810f
+ OVTK_StimulationId_Label_10 OVTK_StimulationId_Label_10 0x00008110
+ OVTK_StimulationId_Label_11 OVTK_StimulationId_Label_11 0x00008111
+ OVTK_StimulationId_Label_12 OVTK_StimulationId_Label_12 0x00008112
+ OVTK_StimulationId_Label_13 OVTK_StimulationId_Label_13 0x00008113
+ OVTK_StimulationId_Label_14 OVTK_StimulationId_Label_14 0x00008114
+ OVTK_StimulationId_Label_15 OVTK_StimulationId_Label_15 0x00008115
+ OVTK_StimulationId_Label_16 OVTK_StimulationId_Label_16 0x00008116
+ OVTK_StimulationId_Label_17 OVTK_StimulationId_Label_17 0x00008117
+ OVTK_StimulationId_Label_18 OVTK_StimulationId_Label_18 0x00008118
+ OVTK_StimulationId_Label_19 OVTK_StimulationId_Label_19 0x00008119
+ OVTK_StimulationId_Label_1A OVTK_StimulationId_Label_1A 0x0000811a
+ OVTK_StimulationId_Label_1B OVTK_StimulationId_Label_1B 0x0000811b
+ OVTK_StimulationId_Label_1C OVTK_StimulationId_Label_1C 0x0000811c
+ OVTK_StimulationId_Label_1D OVTK_StimulationId_Label_1D 0x0000811d
+ OVTK_StimulationId_Label_1E OVTK_StimulationId_Label_1E 0x0000811e
+ OVTK_StimulationId_Label_1F OVTK_StimulationId_Label_1F 0x0000811f
+ OVTK_StimulationId_Number_00 OVTK_StimulationId_Number_00 0x00000000
+ OVTK_StimulationId_Number_01 OVTK_StimulationId_Number_01 0x00000001
+ OVTK_StimulationId_Number_02 OVTK_StimulationId_Number_02 0x00000002
+ OVTK_StimulationId_Number_03 OVTK_StimulationId_Number_03 0x00000003
+ OVTK_StimulationId_Number_04 OVTK_StimulationId_Number_04 0x00000004
+ OVTK_StimulationId_Number_05 OVTK_StimulationId_Number_05 0x00000005
+ OVTK_StimulationId_Number_06 OVTK_StimulationId_Number_06 0x00000006
+ OVTK_StimulationId_Number_07 OVTK_StimulationId_Number_07 0x00000007
+ OVTK_StimulationId_Number_08 OVTK_StimulationId_Number_08 0x00000008
+ OVTK_StimulationId_Number_09 OVTK_StimulationId_Number_09 0x00000009
+ OVTK_StimulationId_Number_0A OVTK_StimulationId_Number_0A 0x0000000a
+ OVTK_StimulationId_Number_0B OVTK_StimulationId_Number_0B 0x0000000b
+ OVTK_StimulationId_Number_0C OVTK_StimulationId_Number_0C 0x0000000c
+ OVTK_StimulationId_Number_0D OVTK_StimulationId_Number_0D 0x0000000d
+ OVTK_StimulationId_Number_0E OVTK_StimulationId_Number_0E 0x0000000e
+ OVTK_StimulationId_Number_0F OVTK_StimulationId_Number_0F 0x0000000f
+ OVTK_StimulationId_Number_10 OVTK_StimulationId_Number_10 0x00000010
+ OVTK_StimulationId_Number_11 OVTK_StimulationId_Number_11 0x00000011
+ OVTK_StimulationId_Number_12 OVTK_StimulationId_Number_12 0x00000012
+ OVTK_StimulationId_Number_13 OVTK_StimulationId_Number_13 0x00000013
+ OVTK_StimulationId_Number_14 OVTK_StimulationId_Number_14 0x00000014
+ OVTK_StimulationId_Number_15 OVTK_StimulationId_Number_15 0x00000015
+ OVTK_StimulationId_Number_16 OVTK_StimulationId_Number_16 0x00000016
+ OVTK_StimulationId_Number_17 OVTK_StimulationId_Number_17 0x00000017
+ OVTK_StimulationId_Number_18 OVTK_StimulationId_Number_18 0x00000018
+ OVTK_StimulationId_Number_19 OVTK_StimulationId_Number_19 0x00000019
+ OVTK_StimulationId_Number_1A OVTK_StimulationId_Number_1A 0x0000001a
+ OVTK_StimulationId_Number_1B OVTK_StimulationId_Number_1B 0x0000001b
+ OVTK_StimulationId_Number_1C OVTK_StimulationId_Number_1C 0x0000001c
+ OVTK_StimulationId_Number_1D OVTK_StimulationId_Number_1D 0x0000001d
+ OVTK_StimulationId_Number_1E OVTK_StimulationId_Number_1E 0x0000001e
+ OVTK_StimulationId_Number_1F OVTK_StimulationId_Number_1F 0x0000001f
+ OVTK_StimulationId_Train OVTK_StimulationId_Train 0x00008201
+ OVTK_StimulationId_Beep OVTK_StimulationId_Beep 0x00008202
+ OVTK_StimulationId_DoubleBeep OVTK_StimulationId_DoubleBeep 0x00008203
+ OVTK_StimulationId_EndOfFile OVTK_StimulationId_EndOfFile 0x00008204
+ OVTK_StimulationId_Target OVTK_StimulationId_Target 0x00008205
+ OVTK_StimulationId_NonTarget OVTK_StimulationId_NonTarget 0x00008206
+ OVTK_StimulationId_TrainCompleted OVTK_StimulationId_TrainCompleted 0x00008207
+ OVTK_StimulationId_Reset OVTK_StimulationId_Reset 0x00008208
+ OVTK_GDF_Artifact_EOG_Large OVTK_GDF_Artifact_EOG_Large 0x101
+ OVTK_GDF_Artifact_ECG OVTK_GDF_Artifact_ECG 0x102
+ OVTK_GDF_Artifact_EMG OVTK_GDF_Artifact_EMG 0x103
+ OVTK_GDF_Artifact_Movement OVTK_GDF_Artifact_Movement 0x104
+ OVTK_GDF_Artifact_Failing_Electrode OVTK_GDF_Artifact_Failing_Electrode0x00008004 0x105
+ OVTK_GDF_Artifact_Sweat OVTK_GDF_Artifact_Sweat 0x106
+ OVTK_GDF_Artifact_50_60_Hz_Interference OVTK_GDF_Artifact_50_60_Hz_Interference 0x107
+ OVTK_GDF_Artifact_Breathing OVTK_GDF_Artifact_Breathing 0x108
+ OVTK_GDF_Artifact_Pulse OVTK_GDF_Artifact_Pulse 0x109
+ OVTK_GDF_Artifact_EOG_Small OVTK_GDF_Artifact_EOG_Small 0x10A
+ OVTK_GDF_Calibration OVTK_GDF_Calibration 0x10F
+ OVTK_GDF_EEG_Sleep_Splindles OVTK_GDF_EEG_Sleep_Splindles 0x111
+ OVTK_GDF_EEG_K_Complexes OVTK_GDF_EEG_K_Complexes 0x112
+ OVTK_GDF_EEG_Saw_Tooth_Waves OVTK_GDF_EEG_Saw_Tooth_Waves 0x113
+ OVTK_GDF_EEG_Idling_EEG_Eyes_Open OVTK_GDF_EEG_Idling_EEG_Eyes_Open 0x114
+ OVTK_GDF_EEG_Idling_EEG_Eyes_Closed OVTK_GDF_EEG_Idling_EEG_Eyes_Closed 0x115
+ OVTK_GDF_EEG_Spike OVTK_GDF_EEG_Spike 0x116
+ OVTK_GDF_EEG_Seizure OVTK_GDF_EEG_Seizure 0x117
+ OVTK_GDF_VEP OVTK_GDF_VEP 0x121
+ OVTK_GDF_AEP OVTK_GDF_AEP 0x122
+ OVTK_GDF_SEP OVTK_GDF_SEP 0x123
+ OVTK_GDF_TMS OVTK_GDF_TMS 0x12F
+ OVTK_GDF_SSVEP OVTK_GDF_SSVEP 0x131
+ OVTK_GDF_SSAEP OVTK_GDF_SSAEP 0x132
+ OVTK_GDF_SSSEP OVTK_GDF_SSSEP 0x133
+ OVTK_GDF_Start_Of_Trial OVTK_GDF_Start_Of_Trial 0x300
+ OVTK_GDF_Left OVTK_GDF_Left 0x301
+ OVTK_GDF_Right OVTK_GDF_Right 0x302
+ OVTK_GDF_Foot OVTK_GDF_Foot 0x303
+ OVTK_GDF_Tongue OVTK_GDF_Tongue 0x304
+ OVTK_GDF_class5 OVTK_GDF_class5 0x305
+ OVTK_GDF_Down OVTK_GDF_Down 0x306
+ OVTK_GDF_class7 OVTK_GDF_class7 0x307
+ OVTK_GDF_class8 OVTK_GDF_class8 0x308
+ OVTK_GDF_class9 OVTK_GDF_class9 0x309
+ OVTK_GDF_class10 OVTK_GDF_class10 0x30A
+ OVTK_GDF_class11 OVTK_GDF_class11 0x30B
+ OVTK_GDF_Up OVTK_GDF_Up 0x30C
+ OVTK_GDF_Feedback_Continuous OVTK_GDF_Feedback_Continuous 0x30D
+ OVTK_GDF_Feedback_Discrete OVTK_GDF_Feedback_Discrete 0x30E
+ OVTK_GDF_Cue_Unknown_Undefined OVTK_GDF_Cue_Unknown_Undefined 0x30F
+ OVTK_GDF_Beep OVTK_GDF_Beep 0x311
+ OVTK_GDF_Cross_On_Screen OVTK_GDF_Cross_On_Screen 0x312
+ OVTK_GDF_Flashing_Light OVTK_GDF_Flashing_Light 0x313
+ OVTK_GDF_End_Of_Trial OVTK_GDF_End_Of_Trial 0x320
+ OVTK_GDF_Correct OVTK_GDF_Correct 0x381
+ OVTK_GDF_Incorrect OVTK_GDF_Incorrect 0x382
+ OVTK_GDF_End_Of_Session OVTK_GDF_End_Of_Session 0x3F2
+ OVTK_GDF_Rejection OVTK_GDF_Rejection 0x3FF
+ OVTK_GDF_OAHE OVTK_GDF_OAHE 0x401
+ OVTK_GDF_RERA OVTK_GDF_RERA 0x402
+ OVTK_GDF_CAHE OVTK_GDF_CAHE 0x403
+ OVTK_GDF_CSB OVTK_GDF_CSB 0x404
+ OVTK_GDF_Sleep_Hypoventilation OVTK_GDF_Sleep_Hypoventilation 0x405
+ OVTK_GDF_Maximum_Inspiration OVTK_GDF_Maximum_Inspiration 0x40E
+ OVTK_GDF_Start_Of_Inspiration OVTK_GDF_Start_Of_Inspiration 0x40F
+ OVTK_GDF_Wake OVTK_GDF_Wake 0x410
+ OVTK_GDF_Stage_1 OVTK_GDF_Stage_1 0x411
+ OVTK_GDF_Stage_2 OVTK_GDF_Stage_2 0x412
+ OVTK_GDF_Stage_3 OVTK_GDF_Stage_3 0x413
+ OVTK_GDF_Stage_4 OVTK_GDF_Stage_4 0x414
+ OVTK_GDF_REM OVTK_GDF_REM 0x415
+ OVTK_GDF_Lights_On OVTK_GDF_Lights_On 0x420
+ OVTK_GDF_Lights_Off OVTK_GDF_Lights_Off 0x8420
+ OVTK_GDF_Eyes_Left OVTK_GDF_Eyes_Left 0x431
+ OVTK_GDF_Eyes_Right OVTK_GDF_Eyes_Right 0x432
+ OVTK_GDF_Eyes_Up OVTK_GDF_Eyes_Up 0x433
+ OVTK_GDF_Eyes_Down OVTK_GDF_Eyes_Down 0x434
+ OVTK_GDF_Horizontal_Eye_Movement OVTK_GDF_Horizontal_Eye_Movement 0x435
+ OVTK_GDF_Vertical_Eye_Movement OVTK_GDF_Vertical_Eye_Movement 0x436
+ OVTK_GDF_Rotation_Clockwise OVTK_GDF_Rotation_Clockwise 0x437
+ OVTK_GDF_Rotation_Counterclockwise OVTK_GDF_Rotation_Counterclockwise 0x438
+ OVTK_GDF_Eye_Blink OVTK_GDF_Eye_Blink 0x439
+ OVTK_GDF_Left_Hand_Movement OVTK_GDF_Left_Hand_Movement 0x441
+ OVTK_GDF_Right_Hand_Movement OVTK_GDF_Right_Hand_Movement 0x442
+ OVTK_GDF_Head_Movement OVTK_GDF_Head_Movement 0x443
+ OVTK_GDF_Tongue_Movement OVTK_GDF_Tongue_Movement 0x444
+ OVTK_GDF_Swallowing OVTK_GDF_Swallowing 0x445
+ OVTK_GDF_Biting OVTK_GDF_Biting 0x446
+ OVTK_GDF_Foot_Movement OVTK_GDF_Foot_Movement 0x447
+ OVTK_GDF_Foot_Right_Movement OVTK_GDF_Foot_Right_Movement 0x448
+ OVTK_GDF_Arm_Movement OVTK_GDF_Arm_Movement 0x449
+ OVTK_GDF_Arm_Right_Movement OVTK_GDF_Arm_Right_Movement 0x44A
+ OVTK_GDF_ECG_Fiducial_Point_QRS_Complex OVTK_GDF_ECG_Fiducial_Point_QRS_Complex 0x501
+ OVTK_GDF_ECG_P_Wave OVTK_GDF_ECG_P_Wave 0x502
+ OVTK_GDF_ECG_QRS_Complex OVTK_GDF_ECG_QRS_Complex 0x503
+ OVTK_GDF_ECG_R_Point OVTK_GDF_ECG_R_Point 0x504
+ OVTK_GDF_ECG_T_Wave OVTK_GDF_ECG_T_Wave 0x506
+ OVTK_GDF_ECG_U_Wave OVTK_GDF_ECG_U_Wave 0x507
+ OVTK_GDF_Start OVTK_GDF_Start 0x580
+ OVTK_GDF_25_Watt OVTK_GDF_25_Watt 0x581
+ OVTK_GDF_50_Watt OVTK_GDF_50_Watt 0x582
+ OVTK_GDF_75_Watt OVTK_GDF_75_Watt 0x583
+ OVTK_GDF_100_Watt OVTK_GDF_100_Watt 0x584
+ OVTK_GDF_125_Watt OVTK_GDF_125_Watt 0x585
+ OVTK_GDF_150_Watt OVTK_GDF_150_Watt 0x586
+ OVTK_GDF_175_Watt OVTK_GDF_175_Watt 0x587
+ OVTK_GDF_200_Watt OVTK_GDF_200_Watt 0x588
+ OVTK_GDF_225_Watt OVTK_GDF_225_Watt 0x589
+ OVTK_GDF_250_Watt OVTK_GDF_250_Watt 0x58A
+ OVTK_GDF_275_Watt OVTK_GDF_275_Watt 0x58B
+ OVTK_GDF_300_Watt OVTK_GDF_300_Watt 0x58C
+ OVTK_GDF_325_Watt OVTK_GDF_325_Watt 0x58D
+ OVTK_GDF_350_Watt OVTK_GDF_350_Watt 0x58E
+ OVTK_GDF_Start_Of_New_Segment OVTK_GDF_Start_Of_New_Segment 0x7FFE
+ OVTK_GDF_Non_Equidistant_Sampling_Value OVTK_GDF_Non_Equidistant_Sampling_Value 0x7FFF
diff --git a/toolkit/src/ovtk_main.cpp b/toolkit/src/ovtk_main.cpp
index e3968cd970e87c86d56cf0fd15d5d2bb0d53b243..6ea259f87b302e0d66d63fa3a091a52778df9fb4 100644
--- a/toolkit/src/ovtk_main.cpp
+++ b/toolkit/src/ovtk_main.cpp
@@ -16,225 +16,7 @@ boolean OpenViBEToolkit::initialize(const IKernelContext& rKernelContext)
 {
 	ITypeManager& l_rTypeManager=rKernelContext.getTypeManager();
 
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_ExperimentStart", OVTK_StimulationId_ExperimentStart);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_ExperimentStop", OVTK_StimulationId_ExperimentStop);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_SegmentStart", OVTK_StimulationId_SegmentStart);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_SegmentStop", OVTK_StimulationId_SegmentStop);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_TrialStart", OVTK_StimulationId_TrialStart);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_TrialStop", OVTK_StimulationId_TrialStop);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_BaselineStart", OVTK_StimulationId_BaselineStart);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_BaselineStop", OVTK_StimulationId_BaselineStop);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_RestStart", OVTK_StimulationId_RestStart);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_RestStop", OVTK_StimulationId_RestStop);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_VisualStimulationStart", OVTK_StimulationId_VisualStimulationStart);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_VisualStimulationStop", OVTK_StimulationId_VisualStimulationStop);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_VisualSteadyStateStimulationStart", OVTK_StimulationId_VisualSteadyStateStimulationStart);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_VisualSteadyStateStimulationStop", OVTK_StimulationId_VisualSteadyStateStimulationStop);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Button1_Pressed", OVTK_StimulationId_Button1_Pressed);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Button1_Released", OVTK_StimulationId_Button1_Released);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Button2_Pressed", OVTK_StimulationId_Button2_Pressed);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Button2_Released", OVTK_StimulationId_Button2_Released);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Button3_Pressed", OVTK_StimulationId_Button3_Pressed);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Button3_Released", OVTK_StimulationId_Button3_Released);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Button4_Pressed", OVTK_StimulationId_Button4_Pressed);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Button4_Released", OVTK_StimulationId_Button4_Released);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_00", OVTK_StimulationId_Label_00);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_01", OVTK_StimulationId_Label_01);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_02", OVTK_StimulationId_Label_02);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_03", OVTK_StimulationId_Label_03);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_04", OVTK_StimulationId_Label_04);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_05", OVTK_StimulationId_Label_05);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_06", OVTK_StimulationId_Label_06);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_07", OVTK_StimulationId_Label_07);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_08", OVTK_StimulationId_Label_08);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_09", OVTK_StimulationId_Label_09);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_0A", OVTK_StimulationId_Label_0A);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_0B", OVTK_StimulationId_Label_0B);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_0C", OVTK_StimulationId_Label_0C);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_0D", OVTK_StimulationId_Label_0D);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_0E", OVTK_StimulationId_Label_0E);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_0F", OVTK_StimulationId_Label_0F);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_10", OVTK_StimulationId_Label_10);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_11", OVTK_StimulationId_Label_11);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_12", OVTK_StimulationId_Label_12);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_13", OVTK_StimulationId_Label_13);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_14", OVTK_StimulationId_Label_14);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_15", OVTK_StimulationId_Label_15);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_16", OVTK_StimulationId_Label_16);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_17", OVTK_StimulationId_Label_17);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_18", OVTK_StimulationId_Label_18);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_19", OVTK_StimulationId_Label_19);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_1A", OVTK_StimulationId_Label_1A);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_1B", OVTK_StimulationId_Label_1B);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_1C", OVTK_StimulationId_Label_1C);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_1D", OVTK_StimulationId_Label_1D);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_1E", OVTK_StimulationId_Label_1E);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Label_1F", OVTK_StimulationId_Label_1F);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_00", OVTK_StimulationId_Number_00);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_01", OVTK_StimulationId_Number_01);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_02", OVTK_StimulationId_Number_02);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_03", OVTK_StimulationId_Number_03);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_04", OVTK_StimulationId_Number_04);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_05", OVTK_StimulationId_Number_05);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_06", OVTK_StimulationId_Number_06);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_07", OVTK_StimulationId_Number_07);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_08", OVTK_StimulationId_Number_08);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_09", OVTK_StimulationId_Number_09);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_0A", OVTK_StimulationId_Number_0A);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_0B", OVTK_StimulationId_Number_0B);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_0C", OVTK_StimulationId_Number_0C);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_0D", OVTK_StimulationId_Number_0D);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_0E", OVTK_StimulationId_Number_0E);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_0F", OVTK_StimulationId_Number_0F);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_10", OVTK_StimulationId_Number_10);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_11", OVTK_StimulationId_Number_11);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_12", OVTK_StimulationId_Number_12);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_13", OVTK_StimulationId_Number_13);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_14", OVTK_StimulationId_Number_14);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_15", OVTK_StimulationId_Number_15);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_16", OVTK_StimulationId_Number_16);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_17", OVTK_StimulationId_Number_17);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_18", OVTK_StimulationId_Number_18);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_19", OVTK_StimulationId_Number_19);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_1A", OVTK_StimulationId_Number_1A);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_1B", OVTK_StimulationId_Number_1B);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_1C", OVTK_StimulationId_Number_1C);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_1D", OVTK_StimulationId_Number_1D);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_1E", OVTK_StimulationId_Number_1E);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Number_1F", OVTK_StimulationId_Number_1F);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Train", OVTK_StimulationId_Train);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Beep", OVTK_StimulationId_Beep);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_DoubleBeep", OVTK_StimulationId_DoubleBeep);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_EndOfFile", OVTK_StimulationId_EndOfFile);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_Target", OVTK_StimulationId_Target);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_NonTarget", OVTK_StimulationId_NonTarget);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_StimulationId_TrainCompleted", OVTK_StimulationId_TrainCompleted);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Artifact_EOG_Large", OVTK_GDF_Artifact_EOG_Large);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Artifact_ECG", OVTK_GDF_Artifact_ECG);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Artifact_EMG", OVTK_GDF_Artifact_EMG);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Artifact_Movement", OVTK_GDF_Artifact_Movement);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Artifact_Failing_Electrode", OVTK_GDF_Artifact_Failing_Electrode);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Artifact_Sweat", OVTK_GDF_Artifact_Sweat);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Artifact_50_60_Hz_Interference", OVTK_GDF_Artifact_50_60_Hz_Interference);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Artifact_Breathing", OVTK_GDF_Artifact_Breathing);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Artifact_Pulse", OVTK_GDF_Artifact_Pulse);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Artifact_EOG_Small", OVTK_GDF_Artifact_EOG_Small);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Calibration", OVTK_GDF_Calibration);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_EEG_Sleep_Splindles", OVTK_GDF_EEG_Sleep_Splindles);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_EEG_K_Complexes", OVTK_GDF_EEG_K_Complexes);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_EEG_Saw_Tooth_Waves", OVTK_GDF_EEG_Saw_Tooth_Waves);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_EEG_Idling_EEG_Eyes_Open", OVTK_GDF_EEG_Idling_EEG_Eyes_Open);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_EEG_Idling_EEG_Eyes_Closed", OVTK_GDF_EEG_Idling_EEG_Eyes_Closed);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_EEG_Spike", OVTK_GDF_EEG_Spike);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_EEG_Seizure", OVTK_GDF_EEG_Seizure);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_VEP", OVTK_GDF_VEP);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_AEP", OVTK_GDF_AEP);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_SEP", OVTK_GDF_SEP);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_TMS", OVTK_GDF_TMS);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_SSVEP", OVTK_GDF_SSVEP);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_SSAEP", OVTK_GDF_SSAEP);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_SSSEP", OVTK_GDF_SSSEP);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Start_Of_Trial", OVTK_GDF_Start_Of_Trial);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Left", OVTK_GDF_Left);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Right", OVTK_GDF_Right);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Foot", OVTK_GDF_Foot);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Tongue", OVTK_GDF_Tongue);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_class5", OVTK_GDF_class5);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Down", OVTK_GDF_Down);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_class7", OVTK_GDF_class7);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_class8", OVTK_GDF_class8);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_class9", OVTK_GDF_class9);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_class10", OVTK_GDF_class10);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_class11", OVTK_GDF_class11);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Up", OVTK_GDF_Up);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Feedback_Continuous", OVTK_GDF_Feedback_Continuous);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Feedback_Discrete", OVTK_GDF_Feedback_Discrete);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Cue_Unknown_Undefined", OVTK_GDF_Cue_Unknown_Undefined);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Beep", OVTK_GDF_Beep);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Cross_On_Screen", OVTK_GDF_Cross_On_Screen);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Flashing_Light", OVTK_GDF_Flashing_Light);
-	// SPECIALY ADDED BY YR
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_End_Of_Trial", OVTK_GDF_End_Of_Trial);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Correct", OVTK_GDF_Correct);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Incorrect", OVTK_GDF_Incorrect);
-	// SPECIALY ADDED BY YR
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_End_Of_Session", OVTK_GDF_End_Of_Session);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Rejection", OVTK_GDF_Rejection);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_OAHE", OVTK_GDF_OAHE);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_RERA", OVTK_GDF_RERA);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_CAHE", OVTK_GDF_CAHE);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_CSB", OVTK_GDF_CSB);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Sleep_Hypoventilation", OVTK_GDF_Sleep_Hypoventilation);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Maximum_Inspiration", OVTK_GDF_Maximum_Inspiration);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Start_Of_Inspiration", OVTK_GDF_Start_Of_Inspiration);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Wake", OVTK_GDF_Wake);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Stage_1", OVTK_GDF_Stage_1);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Stage_2", OVTK_GDF_Stage_2);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Stage_3", OVTK_GDF_Stage_3);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Stage_4", OVTK_GDF_Stage_4);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_REM", OVTK_GDF_REM);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Lights_On", OVTK_GDF_Lights_On);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Lights_Off", OVTK_GDF_Lights_Off);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Eyes_Left", OVTK_GDF_Eyes_Left);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Eyes_Right", OVTK_GDF_Eyes_Right);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Eyes_Up", OVTK_GDF_Eyes_Up);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Eyes_Down", OVTK_GDF_Eyes_Down);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Horizontal_Eye_Movement", OVTK_GDF_Horizontal_Eye_Movement);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Vertical_Eye_Movement", OVTK_GDF_Vertical_Eye_Movement);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Rotation_Clockwise", OVTK_GDF_Rotation_Clockwise);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Rotation_Counterclockwise", OVTK_GDF_Rotation_Counterclockwise);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Eye_Blink", OVTK_GDF_Eye_Blink);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Left_Hand_Movement", OVTK_GDF_Left_Hand_Movement);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Right_Hand_Movement", OVTK_GDF_Right_Hand_Movement);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Head_Movement", OVTK_GDF_Head_Movement);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Tongue_Movement", OVTK_GDF_Tongue_Movement);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Swallowing", OVTK_GDF_Swallowing);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Biting", OVTK_GDF_Biting);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Foot_Movement", OVTK_GDF_Foot_Movement);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Foot_Right_Movement", OVTK_GDF_Foot_Right_Movement);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Arm_Movement", OVTK_GDF_Arm_Movement);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Arm_Right_Movement", OVTK_GDF_Arm_Right_Movement);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_ECG_Fiducial_Point_QRS_Complex", OVTK_GDF_ECG_Fiducial_Point_QRS_Complex);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_ECG_P_Wave", OVTK_GDF_ECG_P_Wave);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_ECG_QRS_Complex", OVTK_GDF_ECG_QRS_Complex);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_ECG_R_Point", OVTK_GDF_ECG_R_Point);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_ECG_T_Wave", OVTK_GDF_ECG_T_Wave);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_ECG_U_Wave", OVTK_GDF_ECG_U_Wave);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Start", OVTK_GDF_Start);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_25_Watt", OVTK_GDF_25_Watt);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_50_Watt", OVTK_GDF_50_Watt);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_75_Watt", OVTK_GDF_75_Watt);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_100_Watt", OVTK_GDF_100_Watt);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_125_Watt", OVTK_GDF_125_Watt);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_150_Watt", OVTK_GDF_150_Watt);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_175_Watt", OVTK_GDF_175_Watt);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_200_Watt", OVTK_GDF_200_Watt);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_225_Watt", OVTK_GDF_225_Watt);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_250_Watt", OVTK_GDF_250_Watt);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_275_Watt", OVTK_GDF_275_Watt);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_300_Watt", OVTK_GDF_300_Watt);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_325_Watt", OVTK_GDF_325_Watt);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_350_Watt", OVTK_GDF_350_Watt);
-
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Start_Of_New_Segment", OVTK_GDF_Start_Of_New_Segment);
-	l_rTypeManager.registerEnumerationEntry(OV_TypeId_Stimulation, "OVTK_GDF_Non_Equidistant_Sampling_Value", OVTK_GDF_Non_Equidistant_Sampling_Value);
+	initializeStimulationList(rKernelContext);
 
 	// Register measurement units. See ovtk_defines.h for details.
 	l_rTypeManager.registerEnumerationEntry(OV_TypeId_MeasurementUnit, "?", OVTK_UNIT_Unspecified);