MNE-CPP  beta 1.0
rapmusictoolbox.h
Go to the documentation of this file.
1 //=============================================================================================================
36 #ifndef RAPMUSICTOOLBOX_H
37 #define RAPMUSICTOOLBOX_H
38 
39 
40 //*************************************************************************************************************
41 //=============================================================================================================
42 // INCLUDES
43 //=============================================================================================================
44 
45 #include "rapmusictoolbox_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 
59 #include <xMeas/realtimeevoked.h>
60 
61 
62 //*************************************************************************************************************
63 //=============================================================================================================
64 // QT INCLUDES
65 //=============================================================================================================
66 
67 #include <QtWidgets>
68 #include <QFile>
69 
70 
71 //*************************************************************************************************************
72 //=============================================================================================================
73 // DEFINE NAMESPACE RapMusicToolboxPlugin
74 //=============================================================================================================
75 
76 namespace RapMusicToolboxPlugin
77 {
78 
79 
80 //*************************************************************************************************************
81 //=============================================================================================================
82 // USED NAMESPACES
83 //=============================================================================================================
84 
85 using namespace FSLIB;
86 using namespace FIFFLIB;
87 using namespace MNELIB;
88 using namespace MNEX;
89 using namespace XMEASLIB;
90 using namespace IOBuffer;
91 using namespace INVERSELIB;
92 
93 
94 //*************************************************************************************************************
95 //=============================================================================================================
96 // FORWARD DECLARATIONS
97 //=============================================================================================================
98 
99 
100 //=============================================================================================================
107 {
108  Q_OBJECT
109  Q_PLUGIN_METADATA(IID "mne_x/1.0" FILE "rapmusictoolbox.json") //NEw Qt5 Plugin system replaces Q_EXPORT_PLUGIN2 macro
110  // Use the Q_INTERFACES() macro to tell Qt's meta-object system about the interfaces
111  Q_INTERFACES(MNEX::IAlgorithm)
112 
113  friend class RapMusicToolboxSetupWidget;
114 
115 public:
116 
117  //=========================================================================================================
121  RapMusicToolbox();
122  //=========================================================================================================
126  ~RapMusicToolbox();
127 
128  //=========================================================================================================
132  virtual QSharedPointer<IPlugin> clone() const;
133 
134  //=========================================================================================================
138  virtual void init();
139 
140  //=========================================================================================================
144  virtual void unload();
145 
146  void calcFiffInfo();
147 
148  void doClustering();
149 
150  void finishedClustering();
151 
152  virtual bool start();
153  virtual bool stop();
154 
155  virtual IPlugin::PluginType getType() const;
156  virtual QString getName() const;
157 
158  virtual QWidget* setupWidget();
159 
160  //=========================================================================================================
166  void updateRTE(XMEASLIB::NewMeasurement::SPtr pMeasurement);
167 
168 signals:
169  //=========================================================================================================
173  void clusteringStarted();
174 
175  //=========================================================================================================
179  void clusteringFinished();
180 
181 protected:
182  virtual void run();
183 
184 private:
189  QMutex m_qMutex;
190 
191  QVector<FiffEvoked> m_qVecFiffEvoked;
192  qint32 m_iNumAverages;
193 
194  bool m_bIsRunning;
195  bool m_bReceiveData;
196  bool m_bProcessData;
198  //RapMusicToolbox stuff
199  QFile m_qFileFwdSolution;
200  MNEForwardSolution::SPtr m_pFwd;
201  MNEForwardSolution::SPtr m_pClusteredFwd;
203  bool m_bFinishedClustering;
205  QString m_sAtlasDir;
206  AnnotationSet::SPtr m_pAnnotationSet;
207  QString m_sSurfaceDir;
208  SurfaceSet::SPtr m_pSurfaceSet;
210  FiffInfo::SPtr m_pFiffInfo;
211  FiffInfo::SPtr m_pFiffInfoEvoked;
212  FiffInfoBase::SPtr m_pFiffInfoForward;
214  QStringList m_qListPickChannels;
216  PwlRapMusic::SPtr m_pPwlRapMusic;
217  qint32 m_iDownSample;
219 // RealTimeSourceEstimate::SPtr m_pRTSE_MNE; /**< Source Estimate output channel. */
220 };
221 
222 } // NAMESPACE
223 
224 #endif // RAPMUSICTOOLBOX_H
Contains the RapMusicToolbox library export/import macros.
Contains the declaration of the RealTimeSourceEstimate class.
Contains declaration of IAlgorithm interface class.
QSharedPointer< RapMusic > SPtr
Definition: rapmusic.h:112
CircularMatrixBuffer class declaration.
SurfaceSet class declaration.
QSharedPointer< MNEForwardSolution > SPtr
#define RAPMUSICTOOLBOXSHARED_EXPORT
QSharedPointer< PluginOutputData< T > > SPtr
QSharedPointer< FiffInfo > SPtr
Definition: fiff_info.h:99
FiffInfo class declaration.
PwlRapMusic algorithm class declaration.
Contains the declaration of the RealTimeEvoked class.
The IAlgorithm class provides an interface for a real-time algorithm plugin.
Definition: IAlgorithm.h:70
QSharedPointer< PluginInputData > SPtr
MNEForwardSolution class declaration, which provides the forward solution including the source space ...
The RapMusicToolbox class provides a dummy algorithm structure.
QSharedPointer< SurfaceSet > SPtr
Definition: surfaceset.h:86
Definition: arrow.h:75
Definition: fiff.h:98
QSharedPointer< NewMeasurement > SPtr
QSharedPointer< AnnotationSet > SPtr
Definition: annotationset.h:99
MNESourceEstimate class declaration.
AnnotationSet class declaration.
The DummySetupWidget class provides the DummyToolbox configuration window.
QSharedPointer< FiffInfoBase > SPtr