MNE-CPP  beta 0.1
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
raplab.h
Go to the documentation of this file.
1 //=============================================================================================================
36 #ifndef RAPLAB_H
37 #define RAPLAB_H
38 
39 
40 //*************************************************************************************************************
41 //=============================================================================================================
42 // INCLUDES
43 //=============================================================================================================
44 
45 #include "raplab_global.h"
47 
49 
50 #include <fs/annotationset.h>
51 #include <fs/surfaceset.h>
52 #include <fiff/fiff_info.h>
53 #include <fiff/fiff_evoked.h>
55 #include <mne/mne_sourceestimate.h>
57 #include <rtInv/rtcov.h>
58 #include <rtInv/rtinvop.h>
59 #include <rtInv/rtave.h>
60 
63 
64 
65 //*************************************************************************************************************
66 //=============================================================================================================
67 // QT INCLUDES
68 //=============================================================================================================
69 
70 #include <QtWidgets>
71 #include <QFile>
72 
73 
74 //*************************************************************************************************************
75 //=============================================================================================================
76 // DEFINE NAMESPACE RapLabPlugin
77 //=============================================================================================================
78 
79 namespace RapLabPlugin
80 {
81 
82 
83 //*************************************************************************************************************
84 //=============================================================================================================
85 // USED NAMESPACES
86 //=============================================================================================================
87 
88 using namespace FSLIB;
89 using namespace FIFFLIB;
90 using namespace MNELIB;
91 using namespace INVERSELIB;
92 using namespace RTINVLIB;
93 using namespace MNEX;
94 using namespace XMEASLIB;
95 using namespace IOBuffer;
96 
97 
98 //*************************************************************************************************************
99 //=============================================================================================================
100 // FORWARD DECLARATIONS
101 //=============================================================================================================
102 
103 
104 //=============================================================================================================
111 {
112  Q_OBJECT
113  Q_PLUGIN_METADATA(IID "mne_x/1.0" FILE "raplab.json") //NEw Qt5 Plugin system replaces Q_EXPORT_PLUGIN2 macro
114  // Use the Q_INTERFACES() macro to tell Qt's meta-object system about the interfaces
115  Q_INTERFACES(MNEX::IAlgorithm)
116 
117  friend class RapLabSetupWidget;
118 
119 public:
120 
121  //=========================================================================================================
125  RapLab();
126  //=========================================================================================================
130  ~RapLab();
131 
132  //=========================================================================================================
136  virtual QSharedPointer<IPlugin> clone() const;
137 
138  //=========================================================================================================
142  void init();
143 
144  virtual bool start();
145  virtual bool stop();
146 
147  virtual IPlugin::PluginType getType() const;
148  virtual QString getName() const;
149 
150  virtual QWidget* setupWidget();
151 
152  //=========================================================================================================
158  void appendEvoked(FiffEvoked::SPtr p_pEvoked);
159 
160  void update(XMEASLIB::NewMeasurement::SPtr pMeasurement);
161 
162  //=========================================================================================================
168  void updateFiffCov(FiffCov::SPtr p_pFiffCov);
169 
170  //=========================================================================================================
176  void updateInvOp(MNEInverseOperator::SPtr p_pInvOp);
177 
178 protected:
179  virtual void run();
180 
181 private:
187  QMutex mutex;
188 
189  CircularMatrixBuffer<double>::SPtr m_pRapLabBuffer;
191  bool m_bIsRunning;
192  bool m_bReceiveData;
193  bool m_bProcessData;
195  //MNE stuff
196  QFile m_qFileFwdSolution;
197  MNEForwardSolution::SPtr m_pFwd;
198  MNEForwardSolution::SPtr m_pClusteredFwd;
200  QString m_sAtlasDir;
201  AnnotationSet::SPtr m_pAnnotationSet;
202  QString m_sSurfaceDir;
203  SurfaceSet::SPtr m_pSurfaceSet;
206  FiffInfo::SPtr m_pFiffInfo;
208  RtCov::SPtr m_pRtCov;
209  FiffCov::SPtr m_pFiffCov;
211  RtInvOp::SPtr m_pRtInvOp;
212  MNEInverseOperator::SPtr m_pInvOp;
214  RtAve::SPtr m_pRtAve;
215  qint32 m_iNumAverages;
216  bool m_bSingleTrial;
217  QVector<FiffEvoked::SPtr> m_qVecEvokedData;
218  qint32 m_iStimChan;
220  MinimumNorm::SPtr m_pMinimumNorm;
221  qint32 m_iDownSample;
223 // RealTimeSourceEstimate::SPtr m_pRTSE_RapLab; /**< Source Estimate output channel. */
224 };
225 
226 } // NAMESPACE
227 
228 #endif // RAPLAB_H
RtInvOp class declaration.
QSharedPointer< FiffCov > SPtr
Definition: fiff_cov.h:97
Contains the declaration of the RealTimeSourceEstimate class.
Contains declaration of IAlgorithm interface class.
QSharedPointer< MinimumNorm > SPtr
Definition: minimumnorm.h:85
RtCov class declaration.
CircularMatrixBuffer class declaration.
SurfaceSet class declaration.
QSharedPointer< MNEForwardSolution > SPtr
QSharedPointer< PluginOutputData< T > > SPtr
The RapLab class provides a dummy algorithm structure.
Definition: raplab.h:110
The circular matrix buffer.
QSharedPointer< FiffInfo > SPtr
Definition: fiff_info.h:99
Contains the RapLab library export/import macros.
Minimum norm class declaration.
FiffInfo class declaration.
The IAlgorithm class provides an interface for a real-time algorithm plugin.
Definition: IAlgorithm.h:70
QSharedPointer< PluginInputData > SPtr
RtAve class declaration.
MNEForwardSolution class declaration, which provides the forward solution including the source space ...
QSharedPointer< FiffEvoked > SPtr
Definition: fiff_evoked.h:94
QSharedPointer< SurfaceSet > SPtr
Definition: surfaceset.h:86
QSharedPointer< NewMeasurement > SPtr
QSharedPointer< AnnotationSet > SPtr
Definition: annotationset.h:99
Contains the declaration of the NewRealTimeMultiSampleArray class.
MNESourceEstimate class declaration.
QSharedPointer< RtCov > SPtr
Definition: rtcov.h:111
AnnotationSet class declaration.
The DummySetupWidget class provides the DummyToolbox configuration window.
#define RAPLABSHARED_EXPORT
Definition: raplab_global.h:56
QSharedPointer< RtAve > SPtr
Definition: rtave.h:114
QSharedPointer< MNEInverseOperator > SPtr
QSharedPointer< RtInvOp > SPtr
Definition: rtinvop.h:110