CEBL  2.1
Feature.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 
25 #ifndef FEATURE_H
26 #define FEATURE_H
27 
28 
29 #include <string>
30 #include <vector>
31 
32 #include "../cppR/cppR.hpp"
33 
34 #include "Plugin.hpp"
35 #include "EEGTrainingData.hpp"
36 
37 
38 
39 
40 namespace CEBL
41 {
42  class Feature : public Plugin
43  {
44  protected:
46 
47  public:
48  virtual ~Feature(){};
49 
53  void setSampleRate(int sample_rate) { this->sample_rate = sample_rate; };
54 
55 
56 
57 
58  //-----------------------------------------------------------------
59  //Function to override below
60 
65  virtual ublas::matrix<double> use(const ublas::matrix<double> &) = 0;
66 
69  virtual void reset(){}
70 
75  virtual bool needsTraining() { return false; }
76 
79  virtual void train() { }
80 
85  virtual bool isTrained() { return true; }
86  };
87 }
88 
89 #endif