MNE-CPP  beta 1.0
rtinvop.h
Go to the documentation of this file.
1 //=============================================================================================================
36 #ifndef RTINVOP_H
37 #define RTINVOP_H
38 
39 //*************************************************************************************************************
40 //=============================================================================================================
41 // INCLUDES
42 //=============================================================================================================
43 
44 #include "rtinv_global.h"
45 
46 
47 //*************************************************************************************************************
48 //=============================================================================================================
49 // FIFF INCLUDES
50 //=============================================================================================================
51 
52 #include <fiff/fiff_info.h>
53 
54 //*************************************************************************************************************
55 //=============================================================================================================
56 // MNE INCLUDES
57 //=============================================================================================================
58 
61 
62 
63 //*************************************************************************************************************
64 //=============================================================================================================
65 // QT INCLUDES
66 //=============================================================================================================
67 
68 #include <QThread>
69 #include <QMutex>
70 #include <QSharedPointer>
71 
72 
73 //*************************************************************************************************************
74 //=============================================================================================================
75 // Eigen INCLUDES
76 //=============================================================================================================
77 
78 #include <Eigen/Core>
79 
80 
81 //*************************************************************************************************************
82 //=============================================================================================================
83 // DEFINE NAMESPACE RtInvLIB
84 //=============================================================================================================
85 
86 namespace RTINVLIB
87 {
88 
89 
90 //*************************************************************************************************************
91 //=============================================================================================================
92 // USED NAMESPACES
93 //=============================================================================================================
94 
95 using namespace Eigen;
96 using namespace FIFFLIB;
97 using namespace MNELIB;
98 
99 
100 //=============================================================================================================
106 class RTINVSHARED_EXPORT RtInvOp : public QThread
107 {
108  Q_OBJECT
109 public:
110  typedef QSharedPointer<RtInvOp> SPtr;
111  typedef QSharedPointer<const RtInvOp> ConstSPtr;
113  //=========================================================================================================
121  explicit RtInvOp(FiffInfo::SPtr &p_pFiffInfo, MNEForwardSolution::SPtr &p_pFwd, QObject *parent = 0);
122 
123  //=========================================================================================================
127  ~RtInvOp();
128 
129  //=========================================================================================================
135  void appendNoiseCov(FiffCov &p_NoiseCov);
136 
137  //=========================================================================================================
143  virtual bool stop();
144 
145  //=========================================================================================================
151  inline bool isRunning();
152 
153 signals:
154  //=========================================================================================================
160  void invOperatorCalculated(MNELIB::MNEInverseOperator::SPtr p_pInvOp);
161 
162 protected:
163  //=========================================================================================================
169  virtual void run();
170 
171 private:
172  QMutex mutex;
173  bool m_bIsRunning;
175  QVector<FiffCov> m_vecNoiseCov;
177  FiffInfo::SPtr m_pFiffInfo;
178  MNEForwardSolution::SPtr m_pFwd;
179 };
180 
181 //*************************************************************************************************************
182 //=============================================================================================================
183 // INLINE DEFINITIONS
184 //=============================================================================================================
185 
186 inline bool RtInvOp::isRunning()
187 {
188  return m_bIsRunning;
189 }
190 
191 } // NAMESPACE
192 
193 #ifndef metatype_mneinverseoperatorsptr
194 #define metatype_mneinverseoperatorsptr
196 #endif
197 
198 #endif // RTINV_H
Real-time inverse operator estimation.
Definition: rtinvop.h:106
QSharedPointer< MNEForwardSolution > SPtr
rtinv library export/import macros.
QSharedPointer< FiffInfo > SPtr
Definition: fiff_info.h:99
QSharedPointer< const RtInvOp > ConstSPtr
Definition: rtinvop.h:111
FiffInfo class declaration.
bool isRunning()
Definition: rtinvop.h:186
MNEForwardSolution class declaration, which provides the forward solution including the source space ...
MNEInverseOperator class declaration.
covariance data
Definition: fiff_cov.h:94
Definition: fiff.h:98
#define RTINVSHARED_EXPORT
Definition: rtinv_global.h:58
Definition: rtave.h:89
Q_DECLARE_METATYPE(MNELIB::MNEInverseOperator::SPtr)
QSharedPointer< MNEInverseOperator > SPtr
QSharedPointer< RtInvOp > SPtr
Definition: rtinvop.h:110