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//=============================================================================================================
83{
84public:
85 using SPtr = QSharedPointer<FiffRawData>;
86 using ConstSPtr = QSharedPointer<const FiffRawData>;
87 using UPtr = std::unique_ptr<FiffRawData>;
88 using ConstUPtr = std::unique_ptr<const FiffRawData>;
89
90 //=========================================================================================================
95
96 //=========================================================================================================
102 FiffRawData(const FiffRawData& p_FiffRawData);
103
104 //=========================================================================================================
115 FiffRawData& operator=(const FiffRawData& other) = default;
116
117 //=========================================================================================================
123 FiffRawData(QIODevice& p_IODevice);
124
125 //=========================================================================================================
132 FiffRawData(QIODevice& p_IODevice, bool b_littleEndian);
133
134 //=========================================================================================================
138 ~FiffRawData();
139
140 //=========================================================================================================
144 void clear();
145
146 //=========================================================================================================
152 inline bool isEmpty() const
153 {
154 return first_samp == -1 && info.isEmpty();
155 }
156
157 //=========================================================================================================
170 bool read_raw_segment(Eigen::MatrixXd& data,
171 Eigen::MatrixXd& times,
172 fiff_int_t from = -1,
173 fiff_int_t to = -1,
174 const Eigen::RowVectorXi& sel = defaultRowVectorXi,
175 bool do_debug = false) const;
176
177 //=========================================================================================================
191 bool read_raw_segment(Eigen::MatrixXd& data,
192 Eigen::MatrixXd& times,
193 Eigen::SparseMatrix<double>& multSegment,
194 fiff_int_t from = -1,
195 fiff_int_t to = -1,
196 const Eigen::RowVectorXi& sel = defaultRowVectorXi,
197 bool do_debug = false) const;
198
199 //=========================================================================================================
211 bool read_raw_segment_times(Eigen::MatrixXd& data,
212 Eigen::MatrixXd& times,
213 float from,
214 float to,
215 const Eigen::RowVectorXi& sel = defaultRowVectorXi) const;
216
217 //=========================================================================================================
230 bool save(QIODevice& p_IODevice,
231 const Eigen::RowVectorXi& picks = Eigen::RowVectorXi(),
232 int decim = 1,
233 int from = -1,
234 int to = -1) const;
235
236public:
241 Eigen::RowVectorXd cals;
242 QList<FiffRawDir> rawdir;
243 Eigen::MatrixXd proj;
245};
246} // NAMESPACE
247
248#endif // FIFF_RAW_DATA_H
FIFF binary tag-stream layer: wraps a QIODevice to read and write FIFF tags, directories,...
Full FIFF measurement metadata: everything from FIFFB_MEAS / FIFFB_MEAS_INFO needed to interpret a re...
Export/import macros and build-info accessors for the FIFFLIB shared library.
#define FIFFSHARED_EXPORT
Definition fiff_global.h:44
One entry of the per-buffer raw-data directory: kind, first sample, number of samples and on-disk pos...
FIFF file I/O, in-memory data structures and high-level readers/writers.
qint32 fiff_int_t
Definition fiff_types.h:86
One CTF software-gradient compensation matrix: grade kind, calibration flag and the gradiometer × ref...
Full FIFF measurement info: per-channel descriptors, sampling and filter setup, projectors,...
Definition fiff_info.h:90
Continuous FIFF raw recording: FiffInfo plus a random-access directory of FIFF_DATA_BUFFER tags.
Eigen::RowVectorXd cals
std::unique_ptr< const FiffRawData > ConstUPtr
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
FiffStream::SPtr file
bool save(QIODevice &p_IODevice, const Eigen::RowVectorXi &picks=Eigen::RowVectorXi(), int decim=1, int from=-1, int to=-1) const
Eigen::MatrixXd proj
QSharedPointer< FiffRawData > SPtr
std::unique_ptr< FiffRawData > UPtr
bool read_raw_segment_times(Eigen::MatrixXd &data, Eigen::MatrixXd &times, float from, float to, const Eigen::RowVectorXi &sel=defaultRowVectorXi) const
QList< FiffRawDir > rawdir
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
FiffRawData & operator=(const FiffRawData &other)=default
QSharedPointer< const FiffRawData > ConstSPtr
QSharedPointer< FiffStream > SPtr