MNE-CPP  beta 1.0
realtimeevoked.h
Go to the documentation of this file.
1 //=============================================================================================================
36 #ifndef REALTIMEEVOKED_H
37 #define REALTIMEEVOKED_H
38 
39 
40 //*************************************************************************************************************
41 //=============================================================================================================
42 // INCLUDES
43 //=============================================================================================================
44 
45 #include "xmeas_global.h"
46 #include "newmeasurement.h"
48 
49 #include <fiff/fiff_evoked.h>
50 
51 
52 //*************************************************************************************************************
53 //=============================================================================================================
54 // Qt INCLUDES
55 //=============================================================================================================
56 
57 #include <QSharedPointer>
58 #include <QVector>
59 #include <QList>
60 #include <QColor>
61 #include <QMutex>
62 #include <QMutexLocker>
63 
64 
65 //*************************************************************************************************************
66 //=============================================================================================================
67 // DEFINE NAMESPACE XMEASLIB
68 //=============================================================================================================
69 
70 namespace XMEASLIB
71 {
72 
73 
74 //*************************************************************************************************************
75 //=============================================================================================================
76 // USED NAMESPACES
77 //=============================================================================================================
78 
79 using namespace FIFFLIB;
80 
81 
82 //=========================================================================================================
89 {
90  Q_OBJECT
91 public:
92  typedef QSharedPointer<RealTimeEvoked> SPtr;
93  typedef QSharedPointer<const RealTimeEvoked> ConstSPtr;
95  //=========================================================================================================
99  explicit RealTimeEvoked(QObject *parent = 0);
100 
101  //=========================================================================================================
105  virtual ~RealTimeEvoked();
106 
107  //=========================================================================================================
113  inline const QString& getXMLLayoutFile() const;
114 
115  //=========================================================================================================
121  inline void setXMLLayoutFile(const QString& layout);
122 
123  //=========================================================================================================
129  inline unsigned int getNumChannels() const;
130 
131  //=========================================================================================================
137  inline qint32 getNumPreStimSamples() const;
138 
139  //=========================================================================================================
145  inline QList<QColor>& chColor();
146 
147  //=========================================================================================================
153  inline QList<RealTimeSampleArrayChInfo>& chInfo();
154 
155  //=========================================================================================================
161  inline FiffInfo& info();
162 
163  //=========================================================================================================
169  virtual void setValue(FiffEvoked& v);
170 
171  //=========================================================================================================
178  virtual FiffEvoked::SPtr& getValue();
179 
180  //=========================================================================================================
186  inline bool isInitialized() const;
187 
188 private:
189  //=========================================================================================================
195  void init(FiffInfo &p_fiffInfo);
196 
197  mutable QMutex m_qMutex;
199  FiffEvoked::SPtr m_pFiffEvoked;
201  FiffInfo m_fiffInfo;
203  QString m_sXMLLayoutFile;
205  qint32 m_iPreStimSamples;
207  QList<QColor> m_qListChColors;
209  QList<RealTimeSampleArrayChInfo> m_qListChInfo;
211  bool m_bInitialized;
212 };
213 
214 
215 //*************************************************************************************************************
216 //=============================================================================================================
217 // INLINE DEFINITIONS
218 //=============================================================================================================
219 
220 inline const QString& RealTimeEvoked::getXMLLayoutFile() const
221 {
222  QMutexLocker locker(&m_qMutex);
223  return m_sXMLLayoutFile;
224 }
225 
226 
227 //*************************************************************************************************************
228 
229 inline void RealTimeEvoked::setXMLLayoutFile(const QString& layout)
230 {
231  QMutexLocker locker(&m_qMutex);
232  m_sXMLLayoutFile = layout;
233 }
234 
235 
236 //*************************************************************************************************************
237 
238 inline unsigned int RealTimeEvoked::getNumChannels() const
239 {
240  QMutexLocker locker(&m_qMutex);
241  return m_pFiffEvoked->info.nchan;
242 }
243 
244 
245 //*************************************************************************************************************
246 
248 {
249  QMutexLocker locker(&m_qMutex);
250  return m_iPreStimSamples;
251 }
252 
253 
254 //*************************************************************************************************************
255 
256 inline QList<QColor>& RealTimeEvoked::chColor()
257 {
258  QMutexLocker locker(&m_qMutex);
259  return m_qListChColors;
260 }
261 
262 
263 //*************************************************************************************************************
264 
265 inline QList<RealTimeSampleArrayChInfo>& RealTimeEvoked::chInfo()
266 {
267  QMutexLocker locker(&m_qMutex);
268  return m_qListChInfo;
269 }
270 
271 
272 //*************************************************************************************************************
273 
275 {
276  QMutexLocker locker(&m_qMutex);
277  return m_fiffInfo;
278 }
279 
280 
281 //*************************************************************************************************************
282 
283 inline bool RealTimeEvoked::isInitialized() const
284 {
285  QMutexLocker locker(&m_qMutex);
286  return m_bInitialized;
287 }
288 
289 } // NAMESPACE
290 
291 Q_DECLARE_METATYPE(XMEASLIB::RealTimeEvoked::SPtr)
292 
293 #endif // REALTIMEEVOKED_H
unsigned int getNumChannels() const
FIFF measurement file information.
Definition: fiff_info.h:96
const QString & getXMLLayoutFile() const
Contains the declaration of the NewMeasurement class.
#define XMEASSHARED_EXPORT
Definition: xmeas_global.h:54
evoked data
Definition: fiff_evoked.h:91
Contains the declaration of the RealTimeSampleArrayChInfo class.
QSharedPointer< const RealTimeEvoked > ConstSPtr
QSharedPointer< FiffEvoked > SPtr
Definition: fiff_evoked.h:94
QSharedPointer< RealTimeEvoked > SPtr
void setXMLLayoutFile(const QString &layout)
Definition: fiff.h:98
QList< QColor > & chColor()
QList< RealTimeSampleArrayChInfo > & chInfo()
The RealTimeMultiSampleArrayNew class is the base class of every RealTimeMultiSampleArrayNew Measurem...
Contains the xMeas library export/import macros.
qint32 getNumPreStimSamples() const