CEBL  2.1
FeaturesConfig.hpp
Go to the documentation of this file.
1 /*
2 * CEBL : CSU EEG Brain-Computer Interface Lab
3 *
4 * Author: Jeshua Bratman - jeshuabratman@gmail.com
5 *
6 * This file is part of CEBL.
7 *
8 * CEBL is free software; you can redistribute it and/or modify it.
9 * We only ask that if you use our code that you cite the source in
10 * your project or publication.
11 *
12 * EEG Group (www.cs.colostate.edu/eeg)
13 * Department of Computer Science
14 * Colorado State University
15 *
16 */
17 
18 
26 #ifndef FEATURESCONFIG_H
27 #define FEATURESCONFIG_H
28 
29 #include "PluginLoader.hpp"
30 #include "Feature.hpp"
31 #include "Param.hpp"
32 #include "SessionManager.hpp"
33 using namespace CEBL;
34 
35 //std includes
36 #include <vector>
37 using namespace std;
38 
39 //forward declarations
40 class CEBLModel;
41 
43 {
44 private:
45  //make session manager a friend
46  friend class SessionManager;
47 
48  CEBLModel *model;
49 
50  //features plugins
51  PluginLoader<Feature> * plugin_loader;
52  PluginLoader<Feature> * getPluginLoader() { return plugin_loader; }
53 
54  //selected feature
55  string selected_feature;
56 
57 public:
59  ~FeaturesConfig();
60 
61  //GETTING OPERATIONS
62  std::vector<string> getNameList();
63  std::vector<string> getPathList();
64  bool isTrained(string feature = "");
65  string getSelected();
66  std::map<std::string, CEBL::Param> getParams(string feature = "");
67 
68 
69  //SETTING OPERATIONS
70  void setSelected(string feature = "");
71  void train(string feature = "");
72  void reset(string feature = "");
73  void setParams(std::map<std::string, CEBL::Param> list, string feature = "");
74 
75  //EXTRACT FEATURES
76  EEGTrainingData extract(EEGTrainingData &data);
77  EEGData extract(EEGData &data);
78  void halt();
79 };
80 
81 #endif
82