CEBL  2.1
FileDataStreamConfig.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 FILEDATASTREAMCONFIG_H
26 #define FILEDATASTREAMCONFIG_H
27 
28 #include "EEGData.hpp"
29 #include "EEGTrainingData.hpp"
30 #include <string>
31 using std::string;
32 
33 //forward declarations
34 class CEBLModel;
35 
36 
38 {
39 private:
40  string filename;
41  bool ready;
42  CEBLModel * model;
43  int sample_rate;
44  //the file stream can load either a training data file or an individual data file
45  EEGData data;
46  EEGTrainingData training_data;
47 
48  //information about loaded file
49  int num_classes;
50  int num_sequences;
51  int num_samples;
52  int num_channels;
53 
54  //selection of classes to use
55  std::vector<bool> enabled_classes;
56  std::vector<bool> enabled_sequence;
57 
58 
59 public:
62 
63  //GETTING OPERATIONS
64  string getFilename() { return filename; }
65  int getSampleRate() { return sample_rate; }
66  bool isReady();
67  int getNumSamples() { return num_samples; }
68  int getNumChannels() { return num_channels; }
69  EEGData &getData() { return data; }
70  EEGTrainingData &getTrainingData() { return training_data; }
71  int getNumClasses() { return num_classes; }
72  int getNumSequences() { return num_sequences; }
73 
74  //SETTING OPERATIONS
75  void openFile(string filename);
76  void setSampleRate(int sample_rate);
77 };
78 
79 
80 #endif