v2.0.0
Loading...
Searching...
No Matches
mne_raw_data.h
Go to the documentation of this file.
1//=============================================================================================================
19
20#ifndef MNERAWDATA_H
21#define MNERAWDATA_H
22
23//=============================================================================================================
24// INCLUDES
25//=============================================================================================================
26
27#include "mne_global.h"
28
29#include <fiff/fiff_dir_node.h>
30#include <fiff/fiff_stream.h>
31#include "mne_raw_info.h"
32#include "mne_raw_buf_def.h"
33#include "mne_proj_op.h"
34#include "mne_sss_data.h"
36#include "mne_deriv.h"
37#include "mne_deriv_set.h"
38#include "mne_types.h"
39
40//=============================================================================================================
41// STL INCLUDES
42//=============================================================================================================
43
44#include <memory>
45#include <vector>
46
47//=============================================================================================================
48// EIGEN INCLUDES
49//=============================================================================================================
50
51#include <Eigen/Core>
52
53//=============================================================================================================
54// QT INCLUDES
55//=============================================================================================================
56
57#include <QSharedPointer>
58#include <QList>
59#include <QFile>
60
61//=============================================================================================================
62// DEFINE NAMESPACE MNELIB
63//=============================================================================================================
64
65namespace MNELIB
66{
67
68//=============================================================================================================
69// FORWARD DECLARATIONS
70//=============================================================================================================
71
72struct RingBuffer;
73struct FilterData;
74
75//=============================================================================================================
82{
83public:
84 typedef QSharedPointer<MNERawData> SPtr;
85 typedef QSharedPointer<const MNERawData> ConstSPtr;
86
87 //=========================================================================================================
92 MNERawData();
93
94 //=========================================================================================================
100
107 void add_filter_response(int *highpass_effective);
108
114 void setup_filter_bufs();
115
125
135
149 int firsts,
150 int ns,
151 float **picked);
152
165 int firsts,
166 int ns,
167 float **picked);
168
178
192 int firsts,
193 int ns,
194 float **picked);
195
210 static MNERawData* open_file_comp(const QString& name, int omit_skip, int allow_maxshield, const MNEFilterDef& filter, int comp_set);
211
223 static MNERawData* open_file(const QString& name, int omit_skip, int allow_maxshield, const MNEFilterDef& filter);
224
225public:
226 QString filename;
227 // FIFFLIB::fiffFile file;
228 std::unique_ptr<QFile> file;
230 std::unique_ptr<MNELIB::MNERawInfo> info;
231 QStringList ch_names;
232 QStringList badlist;
233 int nbad;
234 Eigen::VectorXi bad;
235 std::vector<MNELIB::MNERawBufDef> bufs;
236 std::vector<MNELIB::MNERawBufDef> filt_bufs;
241 int nsamp;
242 Eigen::VectorXf first_sample_val;
243 std::unique_ptr<MNELIB::MNEProjOp> proj;
244 std::unique_ptr<MNELIB::MNESssData> sss;
245 std::unique_ptr<MNELIB::MNECTFCompDataSet> comp;
248 std::unique_ptr<MNEFilterDef> filter;
249 std::unique_ptr<FilterData> filter_data;
250 std::unique_ptr<MNEEventList> event_list;
251 unsigned int max_event;
252 QString dig_trigger;
253 unsigned int dig_trigger_mask;
254 Eigen::VectorXf offsets;
255 std::unique_ptr<RingBuffer> ring;
256 std::unique_ptr<RingBuffer> filt_ring;
257 std::unique_ptr<MNELIB::MNEDerivSet> deriv;
258 std::unique_ptr<MNELIB::MNEDeriv> deriv_matched;
259};
260
261//=============================================================================================================
262// INLINE DEFINITIONS
263//=============================================================================================================
264} // NAMESPACE MNELIB
265
266#endif // MNERAWDATA_H
Subset of FIFF measurement info needed by the legacy raw-data path.
Descriptor of a single FIFF_DATA_BUFFER block (file offset, sample range, type).
Collection of MNELIB::MNEDeriv objects forming a derivation montage.
Set of CTF compensation matrices plus the currently active grade.
Composite SSP projection operator P = I - U U^T assembled from a list of MNELIB::MNEProjItem.
Signal Space Separation (Maxwell filter) basis metadata stored alongside MEG raw data.
MNELIB shared-library export/import macros and library build metadata.
#define MNESHARED_EXPORT
Definition mne_global.h:40
Legacy MNE-C constants and shared typedefs used across MNELIB structures.
Single channel derivation (linear combination of physical channels exposed as a virtual channel).
Recursive node of the parsed FIFF block tree (FIFFB_* hierarchy with directory entries and children).
FIFF binary tag-stream layer: wraps a QIODevice to read and write FIFF tags, directories,...
Core MNE data structures (source spaces, source estimates, hemispheres).
MNEChSelection * mneChSelection
QSharedPointer< FiffStream > SPtr
Definition of one raw data buffer within a FIFF file.
Circular ring buffer for managing raw-data matrix allocations.
Pre-computed frequency-domain filter state used for FFT-based raw data filtering.
int load_one_filt_buf(MNERawBufDef *buf)
QSharedPointer< MNERawData > SPtr
std::unique_ptr< MNELIB::MNEProjOp > proj
std::unique_ptr< QFile > file
std::unique_ptr< MNELIB::MNECTFCompDataSet > comp
std::unique_ptr< FilterData > filter_data
void add_filter_response(int *highpass_effective)
int compensate_buffer(MNERawBufDef *buf)
int pick_data_proj(mneChSelection sel, int firsts, int ns, float **picked)
QSharedPointer< const MNERawData > ConstSPtr
QStringList ch_names
Eigen::VectorXi bad
std::unique_ptr< RingBuffer > filt_ring
std::unique_ptr< MNELIB::MNERawInfo > info
std::unique_ptr< MNELIB::MNEDeriv > deriv_matched
unsigned int dig_trigger_mask
QStringList badlist
Eigen::VectorXf offsets
std::vector< MNELIB::MNERawBufDef > filt_bufs
static MNERawData * open_file_comp(const QString &name, int omit_skip, int allow_maxshield, const MNEFilterDef &filter, int comp_set)
std::unique_ptr< MNEFilterDef > filter
int load_one_buffer(MNERawBufDef *buf)
Eigen::VectorXf first_sample_val
std::unique_ptr< MNEEventList > event_list
std::unique_ptr< MNELIB::MNEDerivSet > deriv
unsigned int max_event
std::vector< MNELIB::MNERawBufDef > bufs
int pick_data(mneChSelection sel, int firsts, int ns, float **picked)
FIFFLIB::FiffStream::SPtr stream
std::unique_ptr< MNELIB::MNESssData > sss
static MNERawData * open_file(const QString &name, int omit_skip, int allow_maxshield, const MNEFilterDef &filter)
int pick_data_filt(mneChSelection sel, int firsts, int ns, float **picked)
std::unique_ptr< RingBuffer > ring