#include <iostream>
#include <cstring>
using namespace std;

extern "C"{

//allgemein
//-------------------------------------------------------------------------------------------------------------------------------------
    string PATH_OV = "meta/dist/Release/openvibe-designer.sh";
    string PATH_AquisitionServer = "meta/dist/Release/openvibe-acquisition-server.sh";

    string fileXDawnTraining = "p300-visual-2-train-xDAWN.xml";
    string fileClassifierTraining = "p300-visual-3-train-classifier.xml";

//visuell
//-------------------------------------------------------------------------------------------------------------------------------------
    string PATH_FILES_Visual = "Projekte/OpenViBE_visual_BCI-master/openvibe_visual_bci/";
    string pathOVFile_visuell = "Projekte/OpenViBE_visual_BCI-master/openvibe_visual_bci/signals/p300-xdawn-train2.ov";
    string pathClassifierCFG_visuell = "Projekte/OpenViBE_visual_BCI-master/openvibe_visual_bci/cfg/p300-classifier.cfg";
    string pathSpatialCFG_visuell = "Projekte/OpenViBE_visual_BCI-master/openvibe_visual_bci/cfg/p300-spatial-filter.cfg";
    string PATH_DEFAULT_visuell = "Projekte/OpenViBE_visual_BCI-master/openvibe_visual_bci/datasets";

    string fileCopySpellingVisuell = "p300-visual-1-acquisition.xml";
    string filefreeSpellingVisuell = "p300-visual-4-online.xml";

//taktil
//------------------------------------------------------------------------------------------------------------------------------------
    string fileCopySpellingTaktil = "p300-visual-1-acquisition.xml";
    string filefreeSpellingTaktil = "p300-visual-4-online.xml";

    string PATH_FILES_taktil = "Projekte/OpenViBE_visual_BCI-master/openvibe_visual_bci/";
    string pathOVFile_taktil = "Projekte/OpenViBE_visual_BCI-master/openvibe_visual_bci/signals/p300-xdawn-train2.ov";
    string pathClassifierCFG_taktil = "Projekte/OpenViBE_visual_BCI-master/openvibe_visual_bci/cfg/p300-classifier.cfg";
    string pathSpatialCFG_taktil = "Projekte/OpenViBE_visual_BCI-master/openvibe_visual_bci/cfg/p300-spatial-filter.cfg";
    string PATH_DEFAULT_taktil = "Projekte/OpenViBE_visual_BCI-master/openvibe_visual_bci/datasets";

//Befehle
//-------------------------------------------------------------------------------------------------------------------------------------
    string command = "bash";
    string nogui = "--no-gui";
    string  play = "--play";


    char* getCommandPS(){
        string s = "";
        s = s.append("ps").append(" ").append("-e");
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

    char* getCommandFreespellingTaktil()
    {
        string s = "";
        s = s.append(command).append(" ").append(PATH_OV).append(" ").append( play).append(" ").append(PATH_FILES_taktil).append(filefreeSpellingTaktil).append(" ").append(nogui);
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

      char* getCommandFreespellingVisuell()
    {
        string s = "";
        s = s.append(command).append(" ").append(PATH_OV).append(" ").append( play).append(" ").append(PATH_FILES_Visual).append(filefreeSpellingVisuell).append(" ").append(nogui);
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

      char* getCommandCopyspellingTaktil()
    {
        string s = "";
        s = s.append(command).append(" ").append(PATH_OV).append(" ").append( play).append(" ").append(PATH_FILES_taktil).append(fileCopySpellingTaktil).append(" ").append(nogui);
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

      char* getCommandCopyspellingVisuell()
    {
        string s = "";
        s = s.append(command).append(" ").append(PATH_OV).append(" ").append( play).append(" ").append(PATH_FILES_Visual).append(fileCopySpellingVisuell).append(" ").append(nogui);
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

      char* getCommandXDawn_taktil()
    {
        string s = "";
        s = s.append(command).append(" ").append(PATH_OV).append(" ").append( play).append(" ").append(PATH_FILES_taktil).append(fileXDawnTraining).append(" ").append(nogui);
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

    char* getCommandXDawn_visuell()
    {
        string s = "";
        s = s.append(command).append(" ").append(PATH_OV).append(" ").append( play).append(" ").append(PATH_FILES_Visual).append(fileXDawnTraining).append(" ").append(nogui);
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

      char* getCommandClassifier_visuell()
    {
        string s = "";
        s = s.append(command).append(" ").append(PATH_OV).append(" ").append( play).append(" ").append(PATH_FILES_Visual).append(fileClassifierTraining).append(" ").append(nogui);
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

    char* getCommandClassifier_taktil()
    {
        string s = "";
        s = s.append(command).append(" ").append(PATH_OV).append(" ").append( play).append(" ").append(PATH_FILES_taktil).append(fileClassifierTraining).append(" ").append(nogui);
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

    char* getCommandStartAquisitionServer()
    {
        string s = "";
        s = s.append(command).append(" ").append(PATH_AquisitionServer);
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

     char* getDefaultPath_visuell()
    {
        string s = PATH_DEFAULT_visuell;
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

    char* getDefaultPath_taktil()
    {
        string s = PATH_DEFAULT_taktil;
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

    char* getPathOVFile_visuell()
    {
        string s = pathOVFile_visuell;
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

    char* getSpatialCFGFile_visuell()
    {
        string s = pathSpatialCFG_visuell;
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

    char* getClassifierCFGFile_visuell()
    {
        string s = pathClassifierCFG_visuell;
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

    char* getPathOVFile_taktil()
    {
        string s = pathOVFile_taktil;
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

    char* getSpatialCFGFile_taktil()
    {
        string s = pathSpatialCFG_taktil;
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

    char* getClassifierCFGFile_taktil()
    {
        string s = pathClassifierCFG_taktil;
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }
}





