CEBL  2.1
TabEEGRecording.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 TABEEGRECORDING_H
27 #define TABEEGRECORDING_H
28 
29 #include "Tab.hpp"
30 
31 class TabEEGRecording : public Tab
32 {
33 private:
34 
35 
36  // Layout Widgets
37  GtkWidget *label_filename;
38  vector<GtkWidget *> enabled_boxes;
39  vector<GtkWidget *> reference_boxes;
40  vector<GtkWidget *> entry_electrode_names;
41  int num_channel_boxes;
42  bool suppress_channel_callbacks;
43 
44  //Data Process
45  GtkWidget *description_viewer;
46  GtkTreeModel *tree_model;
47 
48 
49  // Control Widgets
50  GtkWidget *control_btn_load,
51  *control_btn_save,
52  *control_btn_clear;
53 
54  // CALLBACKS
55 
56  //channels config
57  static void CB_LoadChannelsFile(GtkWidget *, gpointer);
58  static void CB_SaveChannelsFile(GtkWidget *, gpointer);
59  static void CB_ClearChannels(GtkWidget *, gpointer);
60  static void CB_ChangeChannel(GtkWidget *, gpointer);
61  //data process
62  static gboolean CB_SelectProcess(GtkTreeSelection *, GtkTreeModel *, GtkTreePath *, gboolean, gpointer);
63  static void CB_ToggleProcess(GtkCellRendererToggle *, gchar *, gpointer);
64 
65 
66 protected:
68  void CreateGUI();
69 
70 public:
71 
72  //Constructors / Destructors
73  TabEEGRecording(string title, GtkWidget* notebook, CEBLViewGTK * view) : Tab(title,notebook,view) { CreateGUI(); }
75 
76 
77  //update view
78  void updateView();
79  //update model
80  void updateModel();
81 };
82 
83 
84 
86 enum
87  {
90  COL,
92  };
93 
94 
97  {
102  };
103 
104 #endif
105