v2.0.0
Loading...
Searching...
No Matches
fiff_raw_data.h
Go to the documentation of this file.
1//=============================================================================================================
27
28#ifndef FIFF_RAW_DATA_H
29#define FIFF_RAW_DATA_H
30
31//=============================================================================================================
32// INCLUDES
33//=============================================================================================================
34
35#include "fiff_global.h"
36#include "fiff_info.h"
37#include "fiff_raw_dir.h"
38#include "fiff_stream.h"
39
40//=============================================================================================================
41// EIGEN INCLUDES
42//=============================================================================================================
43
44#include <Eigen/Core>
45#include <Eigen/SparseCore>
46
47//=============================================================================================================
48// QT INCLUDES
49//=============================================================================================================
50
51#include <QList>
52#include <QSharedPointer>
53#include <QString>
54#include <memory>
55
56//=============================================================================================================
57// DEFINE NAMESPACE FIFFLIB
58//=============================================================================================================
59
60namespace FIFFLIB
61{
62
63class FiffRawData;
64
65//=============================================================================================================
75{
76public:
77 using SPtr = QSharedPointer<FiffRawData>;
78 using ConstSPtr = QSharedPointer<const FiffRawData>;
79 using UPtr = std::unique_ptr<FiffRawData>;
80 using ConstUPtr = std::unique_ptr<const FiffRawData>;
81
82 //=========================================================================================================
87
88 //=========================================================================================================
94 FiffRawData(const FiffRawData &p_FiffRawData);
95
96 //=========================================================================================================
102 FiffRawData(QIODevice &p_IODevice);
103
104 //=========================================================================================================
111 FiffRawData(QIODevice &p_IODevice, bool b_littleEndian);
112
113 //=========================================================================================================
117 ~FiffRawData();
118
119 //=========================================================================================================
123 void clear();
124
125 //=========================================================================================================
131 inline bool isEmpty() const
132 {
133 return first_samp == -1 && info.isEmpty();
134 }
135
136 //=========================================================================================================
148 bool read_raw_segment(Eigen::MatrixXd& data,
149 Eigen::MatrixXd& times,
150 fiff_int_t from = -1,
151 fiff_int_t to = -1,
152 const Eigen::RowVectorXi& sel = defaultRowVectorXi,
153 bool do_debug = false) const;
154
155 //=========================================================================================================
168 bool read_raw_segment(Eigen::MatrixXd& data,
169 Eigen::MatrixXd& times,
170 Eigen::SparseMatrix<double>& multSegment,
171 fiff_int_t from = -1,
172 fiff_int_t to = -1,
173 const Eigen::RowVectorXi& sel = defaultRowVectorXi,
174 bool do_debug = false) const;
175
176 //=========================================================================================================
188 bool read_raw_segment_times(Eigen::MatrixXd& data,
189 Eigen::MatrixXd& times,
190 float from,
191 float to,
192 const Eigen::RowVectorXi& sel = defaultRowVectorXi) const;
193
194 //=========================================================================================================
207 bool save(QIODevice &p_IODevice,
208 const Eigen::RowVectorXi &picks = Eigen::RowVectorXi(),
209 int decim = 1,
210 int from = -1,
211 int to = -1) const;
212
213public:
214 FiffStream::SPtr file;
215 FiffInfo info;
216 fiff_int_t first_samp;
217 fiff_int_t last_samp;
218 Eigen::RowVectorXd cals;
219 QList<FiffRawDir> rawdir;
220 Eigen::MatrixXd proj;
221 FiffCtfComp comp;
222
223};
224} // NAMESPACE
225
226#endif // FIFF_RAW_DATA_H
Full FIFF measurement metadata: everything from FIFFB_MEAS / FIFFB_MEAS_INFO needed to interpret a re...
One entry of the per-buffer raw-data directory: kind, first sample, number of samples and on-disk pos...
Export/import macros and build-info accessors for the FIFFLIB shared library.
#define FIFFSHARED_EXPORT
Definition fiff_global.h:44
FIFF binary tag-stream layer: wraps a QIODevice to read and write FIFF tags, directories,...
FIFF file I/O, in-memory data structures and high-level readers/writers.
std::unique_ptr< FiffRawData > UPtr
FiffCtfComp comp
bool read_raw_segment(Eigen::MatrixXd &data, Eigen::MatrixXd &times, Eigen::SparseMatrix< double > &multSegment, fiff_int_t from=-1, fiff_int_t to=-1, const Eigen::RowVectorXi &sel=defaultRowVectorXi, bool do_debug=false) const
bool isEmpty() const
bool save(QIODevice &p_IODevice, const Eigen::RowVectorXi &picks=Eigen::RowVectorXi(), int decim=1, int from=-1, int to=-1) const
fiff_int_t first_samp
QSharedPointer< FiffRawData > SPtr
std::unique_ptr< const FiffRawData > ConstUPtr
bool read_raw_segment_times(Eigen::MatrixXd &data, Eigen::MatrixXd &times, float from, float to, const Eigen::RowVectorXi &sel=defaultRowVectorXi) const
QSharedPointer< const FiffRawData > ConstSPtr
Eigen::RowVectorXd cals
fiff_int_t last_samp
Eigen::MatrixXd proj
FiffInfo info
FiffStream::SPtr file
bool read_raw_segment(Eigen::MatrixXd &data, Eigen::MatrixXd &times, fiff_int_t from=-1, fiff_int_t to=-1, const Eigen::RowVectorXi &sel=defaultRowVectorXi, bool do_debug=false) const
QList< FiffRawDir > rawdir