MNE-CPP  0.1.9
A Framework for Electrophysiology
fiff_raw_data.h
Go to the documentation of this file.
1 //=============================================================================================================
37 #ifndef FIFF_RAW_DATA_H
38 #define FIFF_RAW_DATA_H
39 
40 //=============================================================================================================
41 // INCLUDES
42 //=============================================================================================================
43 
44 #include "fiff_global.h"
45 #include "fiff_info.h"
46 #include "fiff_raw_dir.h"
47 #include "fiff_stream.h"
48 
49 //=============================================================================================================
50 // EIGEN INCLUDES
51 //=============================================================================================================
52 
53 #include <Eigen/Core>
54 #include <Eigen/SparseCore>
55 
56 //=============================================================================================================
57 // QT INCLUDES
58 //=============================================================================================================
59 
60 #include <QList>
61 #include <QSharedPointer>
62 
63 //=============================================================================================================
64 // DEFINE NAMESPACE FIFFLIB
65 //=============================================================================================================
66 
67 namespace FIFFLIB
68 {
69 
70 class FiffRawData;
71 
72 //=============================================================================================================
79 {
80 public:
81  typedef QSharedPointer<FiffRawData> SPtr;
82  typedef QSharedPointer<const FiffRawData> ConstSPtr;
84  //=========================================================================================================
88  FiffRawData();
89 
90  //=========================================================================================================
96  FiffRawData(const FiffRawData &p_FiffRawData);
97 
98  //=========================================================================================================
104  FiffRawData(QIODevice &p_IODevice);
105 
106  FiffRawData(QIODevice &p_IODevice, bool b_littleEndian);
107 
108  //=========================================================================================================
112  ~FiffRawData();
113 
114  //=========================================================================================================
118  void clear();
119 
120  //=========================================================================================================
126  inline bool isEmpty() const
127  {
128  return first_samp == -1 && info.isEmpty();
129  }
130 
131  //=========================================================================================================
145  bool read_raw_segment(Eigen::MatrixXd& data,
146  Eigen::MatrixXd& times,
147  fiff_int_t from = -1,
148  fiff_int_t to = -1,
149  const Eigen::RowVectorXi& sel = defaultRowVectorXi,
150  bool do_debug = false) const;
151 
152  //=========================================================================================================
167  bool read_raw_segment(Eigen::MatrixXd& data,
168  Eigen::MatrixXd& times,
169  Eigen::SparseMatrix<double>& multSegment,
170  fiff_int_t from = -1,
171  fiff_int_t to = -1,
172  const Eigen::RowVectorXi& sel = defaultRowVectorXi,
173  bool do_debug = false) const;
174 
175  //=========================================================================================================
189  bool read_raw_segment_times(Eigen::MatrixXd& data,
190  Eigen::MatrixXd& times,
191  float from,
192  float to,
193  const Eigen::RowVectorXi& sel = defaultRowVectorXi) const;
194 
195 public:
198  fiff_int_t first_samp;
199  fiff_int_t last_samp;
200  Eigen::RowVectorXd cals;
201  QList<FiffRawDir> rawdir;
202  Eigen::MatrixXd proj;
206 };
207 } // NAMESPACE
208 
209 #endif // FIFF_RAW_DATA_H
FiffStream class declaration.
FIFF measurement file information.
Definition: fiff_info.h:84
Eigen::RowVectorXd cals
FIFF raw measurement data.
Definition: fiff_raw_data.h:78
FiffRawDir class declaration.
CTF software compensation data.
Definition: fiff_ctf_comp.h:73
QSharedPointer< const FiffRawData > ConstSPtr
Definition: fiff_raw_data.h:82
QSharedPointer< FiffRawData > SPtr
Definition: fiff_raw_data.h:81
Eigen::MatrixXd proj
FiffStream::SPtr file
#define FIFFSHARED_EXPORT
Definition: fiff_global.h:56
QList< FiffRawDir > rawdir
QSharedPointer< FiffStream > SPtr
Definition: fiff_stream.h:107
FiffInfo class declaration.
Fiff library export/import macros.
bool isEmpty() const