CEBL  2.1
TabClassifiers.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 
26 #ifndef TABCLASSIFIERS_H
27 #define TABCLASSIFIERS_H
28 
29 #include "Tab.hpp"
30 #include "WidgetPanel.hpp"
31 #include "../model/EEGData.hpp"
32 
33 class TabClassifiers : public Tab
34 {
35 private:
36  GtkWidget *btn_start,
37  *btn_stop,
38  *btn_train,
39  *combo_classifiers,
40  *panel_container,
41  *panel_box,
42  *check_classifier_trained,
43  *hbox_classifiers;
44 
45 
46  //classifiers
47  WidgetPanel *panel;
48  int sample_rate;
49  std::vector<string> classifier_names;
50  string selected_classifier;
51  bool updating_view;
52 
53  int num_classifiers;
54 
55 
56  //CALLBACKS
57  static void CB_ChangeClassifier(GtkWidget *, gpointer);
58  static void CB_TrainClassifier(GtkWidget *, gpointer);
59 
60 protected:
62  void CreateGUI();
63 
64 public:
65 
66  //Constructors / Destructors
67  TabClassifiers(string title, GtkWidget* notebook, CEBLViewGTK * view) : Tab(title,notebook,view) { CreateGUI(); }
69 
70  //update the view
71  void updateView();
72  //update model
73  void updateModel();
74 };
75 
76 
77 #endif
78 
79 
80