MNE-CPP  beta 1.0
globalobj.h
Go to the documentation of this file.
1 //=============================================================================================================
36 #ifndef GLOBALOBJ_H
37 #define GLOBALOBJ_H
38 //*************************************************************************************************************
39 //=============================================================================================================
40 // INCLUDES
41 //=============================================================================================================
42 
43 #include <QtCore>
44 #include <QList>
45 
46 #include <Eigen/Core>
47 //#include "include/3rdParty/Eigen/Core"
48 //*************************************************************************************************************
49 //=============================================================================================================
50 // external definition
51 //=============================================================================================================
52 
53 extern QQueue <Eigen::MatrixXf *> g_queue;
54 extern int g_maxlen;
55 extern QMutex g_mutex;
56 extern QWaitCondition g_queueNotFull;
57 extern QWaitCondition g_queueNotEmpty;
58 
59 //--- Global Queue for online averaging
60 extern QQueue<Eigen::MatrixXf > g_queue_avg;
61 extern int g_maxlen_avg;
62 extern QMutex g_mutex_avg1;
63 extern QWaitCondition g_queueNotFull_avg;
64 extern QWaitCondition g_queueNotEmpty_avg;
65 
66 //--- Global Queue for online display
67 extern QQueue<Eigen::MatrixXf > g_queue_disp;
68 extern int g_maxlen_disp;
69 extern QMutex g_mutex_disp;
70 extern QWaitCondition g_queueNotFull_disp;
71 extern QWaitCondition g_queueNotEmpty_disp;
72 
73 //--- Global Queue for Squid Control
74 extern QQueue<Eigen::MatrixXf > g_queue_squidctrl;
75 extern int g_maxlen_squidctrl;
76 extern QMutex g_mutex_squidctrl;
77 extern QWaitCondition g_queueNotFull_squidctrl;
78 extern QWaitCondition g_queueNotEmpty_squidctrl;
79 
80 //--- Global Queue for File Saving
81 extern QQueue<Eigen::MatrixXf > g_queue_filesave;
82 extern int g_maxlen_filesave;
83 extern QMutex g_mutex_filesave;
84 extern QWaitCondition g_queueNotFull_filesave;
85 extern QWaitCondition g_queueNotEmpty_filesave;
86 
87 
88 //*************************************************************************************************************
89 //=============================================================================================================
90 // Structures Definitions
91 //=============================================================================================================
92 
93 struct TriggerLine{
94  QString TrigChan;
95  int NrChn;
96 };
97 
98 struct AXPOS {
99  int axnum;
100  QVector <float> x;
101  QVector <float> y;
102  float w;
103  float h;
104  int lanum;
105  QList <QString> axlabel;
106 } ;
107 struct Trigger{
108  int AvgBin;
109  QString TrigName;
110  QString TrigChan;
111  float TrigVal;
112  int ArtRej;
113  int NrChn;
114 };
115 struct PROAvg {
116  QString trigfile;
117  QString axposfile;
118  QString triglinefile;
119  int NumChn;
120  AXPOS m_axpos;
121  float pretime;
122  float posttime;
123  int NumOfAvgBin;
124  QList <Trigger> m_trigger;
125  int NumOfTrigLine;
126  QList <TriggerLine> m_trigline;
127 };
128 
129 extern PROAvg m_OnlineAvg;
130 extern int AvgBufLen;
131 extern float fs;
132 extern int nChn;
133 extern float pscale;
134 
135 struct gFilter {
136  int filtertype;
137  float cutfreq1;
138  float cutfreq2;
139 };
140 
141 extern gFilter m_gFilter;
142 
143 extern QList <Eigen::MatrixXf> AvgBinSum;
144 extern QList <int> AvgBufCounts;
145 extern QMutex g_mutex_avg;
146 
147 #endif // GLOBALOBJ_H