MNE-CPP  0.1.9
A Framework for Electrophysiology
fiff_evoked.h
Go to the documentation of this file.
1 //=============================================================================================================
37 #ifndef FIFF_EVOKED_H
38 #define FIFF_EVOKED_H
39 
40 //=============================================================================================================
41 // INCLUDES
42 //=============================================================================================================
43 
44 #include "fiff_global.h"
45 #include "fiff_info.h"
46 #include "fiff_types.h"
47 #include "fiff_file.h"
48 
49 //=============================================================================================================
50 // EIGEN INCLUDES
51 //=============================================================================================================
52 
53 #include <Eigen/Core>
54 
55 //=============================================================================================================
56 // QT INCLUDES
57 //=============================================================================================================
58 
59 #include <QString>
60 #include <QVariant>
61 #include <QPair>
62 #include <QSharedPointer>
63 
64 //=============================================================================================================
65 // DEFINE NAMESPACE MNELIB
66 //=============================================================================================================
67 
68 namespace FIFFLIB
69 {
70 
71 //=============================================================================================================
78 {
79 public:
80  typedef QSharedPointer<FiffEvoked> SPtr;
81  typedef QSharedPointer<const FiffEvoked> ConstSPtr;
83  //=========================================================================================================
87  FiffEvoked();
88 
89  //=========================================================================================================
102  FiffEvoked(QIODevice& p_IODevice,
103  QVariant setno = 0,
104  QPair<float,float> t_baseline = defaultFloatPair,
105  bool proj = true,
106  fiff_int_t p_aspect_kind = FIFFV_ASPECT_AVERAGE);
107 
108  //=========================================================================================================
114  FiffEvoked(const FiffEvoked& p_FiffEvoked);
115 
116  //=========================================================================================================
120  ~FiffEvoked();
121 
122  //=========================================================================================================
126  inline QStringList ch_names();
127 
128  //=========================================================================================================
132  void clear();
133 
134  //=========================================================================================================
141  inline QString aspectKindToString() const;
142 
143  //=========================================================================================================
149  inline bool isEmpty();
150 
151  //=========================================================================================================
164  FiffEvoked pick_channels(const QStringList& include = defaultQStringList,
165  const QStringList& exclude = defaultQStringList) const;
166 
167  //=========================================================================================================
189  static bool read(QIODevice& p_IODevice,
190  FiffEvoked& p_FiffEvoked,
191  QVariant setno = 0, QPair<float,float> t_baseline = defaultFloatPair,
192  bool proj = true,
193  fiff_int_t p_aspect_kind = FIFFV_ASPECT_AVERAGE);
194 
195  //=========================================================================================================
202  void setInfo(const FiffInfo &p_info,
203  bool proj = true);
204 
205  //=========================================================================================================
213  FiffEvoked & operator+=(const Eigen::MatrixXd &newData);
214 
215  //=========================================================================================================
221  void applyBaselineCorrection(QPair<float,float>& p_baseline);
222 
223 public:
225  fiff_int_t nave;
226  fiff_int_t aspect_kind;
227  fiff_int_t first;
228  fiff_int_t last;
229  QString comment;
230  Eigen::RowVectorXf times;
231  Eigen::MatrixXd data;
232  Eigen::MatrixXd proj;
233  QPair<float,float> baseline;
234 };
235 
236 //=============================================================================================================
237 // INLINE DEFINITIONS
238 //=============================================================================================================
239 
240 inline QStringList FiffEvoked::ch_names()
241 {
242  return info.ch_names;
243 }
244 
245 //=============================================================================================================
246 
247 inline QString FiffEvoked::aspectKindToString() const
248 {
249  if(aspect_kind == FIFFV_ASPECT_AVERAGE)
250  return QString("Average");
251  else if(aspect_kind == FIFFV_ASPECT_STD_ERR)
252  return QString("Standard_error");
253  else
254  return QString("Unknown");
255 }
256 
257 //=============================================================================================================
258 
259 inline bool FiffEvoked::isEmpty()
260 {
261  return nave == -1;
262 }
263 
264 } // NAMESPACE
265 
266 #ifndef metatype_fiffevoked
267 #define metatype_fiffevoked
269 #endif
270 
271 #ifndef metatype_fiffevokedsptr
272 #define metatype_fiffevokedsptr
274 #endif
275 
276 #endif // FIFF_EVOKED_H
QSharedPointer< FiffEvoked > SPtr
Definition: fiff_evoked.h:80
Old fiff_type declarations - replace them.
Eigen::RowVectorXf times
Definition: fiff_evoked.h:230
FIFF measurement file information.
Definition: fiff_info.h:84
Header file describing the numerical values used in fif files.
QString aspectKindToString() const
Definition: fiff_evoked.h:247
#define FIFFV_ASPECT_STD_ERR
Definition: fiff_file.h:439
Q_DECLARE_METATYPE(FIFFLIB::FiffEvoked)
QPair< float, float > baseline
Definition: fiff_evoked.h:233
fiff_int_t aspect_kind
Definition: fiff_evoked.h:226
evoked data
Definition: fiff_evoked.h:77
#define FIFFSHARED_EXPORT
Definition: fiff_global.h:56
#define FIFFV_ASPECT_AVERAGE
Definition: fiff_file.h:438
QStringList ch_names()
Definition: fiff_evoked.h:240
QSharedPointer< const FiffEvoked > ConstSPtr
Definition: fiff_evoked.h:81
FiffInfo class declaration.
Eigen::MatrixXd proj
Definition: fiff_evoked.h:232
Eigen::MatrixXd data
Definition: fiff_evoked.h:231
Fiff library export/import macros.