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

extern "C"{

    string PATH_OV = "meta/dist/Release/openvibe-designer.sh";
    string PATH_AquisitionServer = "meta/dist/Release/openvibe-acquisition-server.sh";
    string PATH_FILES = "Projekte/OpenViBE_visual_BCI-master/openvibe_visual_bci/";
    string pathOVFile = "Projekte/OpenViBE_visual_BCI-master/openvibe_visual_bci/signals/p300-xdawn-train2.ov";
    string pathClassifierCFG = "Projekte/OpenViBE_visual_BCI-master/openvibe_visual_bci/cfg/p300-classifier.cfg";
    string pathSpatialCFG = "Projekte/OpenViBE_visual_BCI-master/openvibe_visual_bci/cfg/p300-spatial-filter.cfg";
    string PATH_DEFAULT = "Projekte/OpenViBE_visual_BCI-master/openvibe_visual_bci/datasets";

    string fileCopySpellingTaktil = "p300-visual-1-acquisition.xml";
    string fileCopySpellingVisuell = "p300-visual-1-acquisition.xml";
    string fileXDawnTraining = "p300-visual-2-train-xDAWN.xml";
    string fileClassifierTraining = "p300-visual-3-train-classifier.xml";
    string filefreeSpellingTaktil = "p300-visual-4-online.xml";
    string filefreeSpellingVisuell = "p300-visual-4-online.xml";

    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).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).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).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).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()
    {
        string s = "";
        s = s.append(command).append(" ").append(PATH_OV).append(" ").append( play).append(" ").append(PATH_FILES).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()
    {
        string s = "";
        s = s.append(command).append(" ").append(PATH_OV).append(" ").append( play).append(" ").append(PATH_FILES).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()
    {
        string s = PATH_DEFAULT;
        char char_array[s.length()+1];
        strcpy(char_array, s.c_str());
        char* s_convert = char_array;
        return s_convert;
    }

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

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

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





