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//=============================================================================================================
84{
85public:
86 typedef QSharedPointer<MNERawData> SPtr;
87 typedef QSharedPointer<const MNERawData> ConstSPtr;
88
89 //=========================================================================================================
94 MNERawData();
95
96 //=========================================================================================================
101 ~MNERawData();
102
109 void add_filter_response(int* highpass_effective);
110
116 void setup_filter_bufs();
117
127 bool setFilter(const MNEFilterDef& newFilter);
128
138
148
162 int firsts,
163 int ns,
164 float** picked);
165
178 int firsts,
179 int ns,
180 float** picked);
181
191
205 int firsts,
206 int ns,
207 float** picked);
208
223 static MNERawData* open_file_comp(const QString& name, int omit_skip, int allow_maxshield, const MNEFilterDef& filter, int comp_set);
224
236 static MNERawData* open_file(const QString& name, int omit_skip, int allow_maxshield, const MNEFilterDef& filter);
237
238 //=========================================================================================================
249 int attachDerivations(const MNEDerivSet& derivations, bool keepPrevious = false);
250
251public:
252 QString filename;
253 // FIFFLIB::fiffFile file;
254 std::unique_ptr<QFile> file;
256 std::unique_ptr<MNELIB::MNERawInfo> info;
257 QStringList ch_names;
258 QStringList badlist;
259 int nbad;
260 Eigen::VectorXi bad;
261 std::vector<MNELIB::MNERawBufDef> bufs;
262 std::vector<MNELIB::MNERawBufDef> filt_bufs;
267 int nsamp;
268 Eigen::VectorXf first_sample_val;
269 std::unique_ptr<MNELIB::MNEProjOp> proj;
270 std::unique_ptr<MNELIB::MNESssData> sss;
271 std::unique_ptr<MNELIB::MNECTFCompDataSet> comp;
274 std::unique_ptr<MNEFilterDef> filter;
275 std::unique_ptr<FilterData> filter_data;
276 std::unique_ptr<MNEEventList> event_list;
277 unsigned int max_event;
278 QString dig_trigger;
279 unsigned int dig_trigger_mask;
280 Eigen::VectorXf offsets;
281 std::unique_ptr<RingBuffer> ring;
282 std::unique_ptr<RingBuffer> filt_ring;
283 std::unique_ptr<MNELIB::MNEDerivSet> deriv;
284 std::unique_ptr<MNELIB::MNEDeriv> deriv_matched;
285};
286
287//=============================================================================================================
288// INLINE DEFINITIONS
289//=============================================================================================================
290} // NAMESPACE MNELIB
291
292#endif // MNERAWDATA_H
FIFF binary tag-stream layer: wraps a QIODevice to read and write FIFF tags, directories,...
Recursive node of the parsed FIFF block tree (FIFFB_* hierarchy with directory entries and children).
Set of CTF compensation matrices plus the currently active grade.
Legacy MNE-C constants and shared typedefs used across MNELIB structures.
Set of channel derivations (montages): MNE-C derivation files, text definitions and matching to recor...
Composite SSP projection operator P = I - U U^T assembled from a list of MNELIB::MNEProjItem.
One channel derivation: a sparse matrix whose rows define virtual channels as weighted sums of record...
MNELIB shared-library export/import macros and library build metadata.
#define MNESHARED_EXPORT
Definition mne_global.h:40
Signal Space Separation (Maxwell filter) basis metadata stored alongside MEG raw data.
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).
Core MNE data structures (source spaces, source estimates, hemispheres).
MNEChSelection * mneChSelection
QSharedPointer< FiffStream > SPtr
Collection of channel derivations.
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
int attachDerivations(const MNEDerivSet &derivations, bool keepPrevious=false)
std::unique_ptr< MNELIB::MNEDerivSet > deriv
bool setFilter(const MNEFilterDef &newFilter)
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