v2.0.0
Loading...
Searching...
No Matches
mna_types.h
Go to the documentation of this file.
1//=============================================================================================================
33
34#ifndef MNA_TYPES_H
35#define MNA_TYPES_H
36
37//=============================================================================================================
38// INCLUDES
39//=============================================================================================================
40
41#include <QString>
42
43//=============================================================================================================
44// DEFINE NAMESPACE MNALIB
45//=============================================================================================================
46
47namespace MNALIB
48{
49
50//=============================================================================================================
51// ENUMS
52//=============================================================================================================
53
75
76//=============================================================================================================
77
82{
85};
86
87//=============================================================================================================
88
110
111//=============================================================================================================
112
116enum class MnaPortDir
117{
120};
121
122//=============================================================================================================
123
134
135//=============================================================================================================
136// HELPER FUNCTIONS
137//=============================================================================================================
138
147{
148 switch (role) {
149 case MnaFileRole::Raw:
150 return QStringLiteral("raw");
152 return QStringLiteral("forward");
154 return QStringLiteral("inverse");
156 return QStringLiteral("covariance");
158 return QStringLiteral("source_estimate");
159 case MnaFileRole::Bem:
160 return QStringLiteral("bem");
162 return QStringLiteral("surface");
164 return QStringLiteral("annotation");
166 return QStringLiteral("digitizer");
168 return QStringLiteral("transform");
170 return QStringLiteral("source_space");
172 return QStringLiteral("evoked");
174 return QStringLiteral("event");
176 return QStringLiteral("virtual_channel");
178 return QStringLiteral("custom");
179 }
180 return QStringLiteral("custom");
181}
182
183//=============================================================================================================
184
192inline MnaFileRole mnaFileRoleFromString(const QString& str)
193{
194 if (str == QLatin1String("raw"))
195 return MnaFileRole::Raw;
196 if (str == QLatin1String("forward"))
198 if (str == QLatin1String("inverse"))
200 if (str == QLatin1String("covariance"))
202 if (str == QLatin1String("source_estimate"))
204 if (str == QLatin1String("bem"))
205 return MnaFileRole::Bem;
206 if (str == QLatin1String("surface"))
208 if (str == QLatin1String("annotation"))
210 if (str == QLatin1String("digitizer"))
212 if (str == QLatin1String("transform"))
214 if (str == QLatin1String("source_space"))
216 if (str == QLatin1String("evoked"))
217 return MnaFileRole::Evoked;
218 if (str == QLatin1String("event"))
219 return MnaFileRole::Event;
220 if (str == QLatin1String("virtual_channel"))
222 return MnaFileRole::Custom;
223}
224
225//=============================================================================================================
226
235{
236 switch (kind) {
238 return QStringLiteral("FiffRaw");
240 return QStringLiteral("Forward");
242 return QStringLiteral("Inverse");
244 return QStringLiteral("Covariance");
246 return QStringLiteral("SourceEstimate");
248 return QStringLiteral("Epochs");
250 return QStringLiteral("Evoked");
252 return QStringLiteral("Matrix");
254 return QStringLiteral("Volume");
256 return QStringLiteral("Surface");
257 case MnaDataKind::Bem:
258 return QStringLiteral("Bem");
260 return QStringLiteral("Annotation");
262 return QStringLiteral("Label");
264 return QStringLiteral("RealTimeStream");
266 return QStringLiteral("Custom");
267 }
268 return QStringLiteral("Custom");
269}
270
271//=============================================================================================================
272
280inline MnaDataKind mnaDataKindFromString(const QString& str)
281{
282 if (str == QLatin1String("FiffRaw") || str == QLatin1String("fiff_raw"))
284 if (str == QLatin1String("FiffInfo"))
285 return MnaDataKind::Custom; // FiffInfo is a sub-kind of FiffRaw context
286 if (str == QLatin1String("Forward") || str == QLatin1String("forward"))
288 if (str == QLatin1String("Inverse") || str == QLatin1String("inverse"))
290 if (str == QLatin1String("Covariance") || str == QLatin1String("covariance"))
292 if (str == QLatin1String("SourceEstimate") || str == QLatin1String("source_estimate"))
294 if (str == QLatin1String("Epochs") || str == QLatin1String("epochs"))
295 return MnaDataKind::Epochs;
296 if (str == QLatin1String("Evoked") || str == QLatin1String("evoked"))
297 return MnaDataKind::Evoked;
298 if (str == QLatin1String("Matrix") || str == QLatin1String("matrix"))
299 return MnaDataKind::Matrix;
300 if (str == QLatin1String("Volume") || str == QLatin1String("volume"))
301 return MnaDataKind::Volume;
302 if (str == QLatin1String("Surface") || str == QLatin1String("surface"))
304 if (str == QLatin1String("Bem") || str == QLatin1String("bem"))
305 return MnaDataKind::Bem;
306 if (str == QLatin1String("Annotation") || str == QLatin1String("annotation"))
308 if (str == QLatin1String("Label") || str == QLatin1String("label"))
309 return MnaDataKind::Label;
310 if (str == QLatin1String("RealTimeStream") || str == QLatin1String("real_time_stream"))
312 if (str == QLatin1String("FilePath") || str == QLatin1String("DirectoryPath"))
313 return MnaDataKind::Custom;
314 return MnaDataKind::Custom;
315}
316
317} // namespace MNALIB
318
319#endif // MNA_TYPES_H
MNE Analysis Container Format (mna/mnx).
MnaNodeExecMode
Definition mna_types.h:128
@ Batch
Runs once on static file-based inputs (default).
Definition mna_types.h:129
@ Ipc
Delegates to an external process via inter-process communication.
Definition mna_types.h:131
@ Stream
Runs continuously on real-time data (MNE Scan mode).
Definition mna_types.h:130
@ Script
Inline code executed via interpreter (Python, shell, R, …).
Definition mna_types.h:132
QString mnaDataKindToString(MnaDataKind kind)
Definition mna_types.h:234
MnaContainerFormat
Definition mna_types.h:82
MnaFileRole mnaFileRoleFromString(const QString &str)
Definition mna_types.h:192
MnaFileRole
Definition mna_types.h:58
MnaDataKind mnaDataKindFromString(const QString &str)
Definition mna_types.h:280
QString mnaFileRoleToString(MnaFileRole role)
Definition mna_types.h:146
MnaDataKind
Definition mna_types.h:93
@ FiffRaw
Raw MEG/EEG data (FIFF format).
Definition mna_types.h:94
@ Annotation
FreeSurfer annotation / parcellation.
Definition mna_types.h:105
@ Forward
Forward solution.
Definition mna_types.h:95
@ SourceEstimate
Source-level time series.
Definition mna_types.h:98
@ Custom
User-defined data kind.
Definition mna_types.h:108
@ Bem
BEM model.
Definition mna_types.h:104
@ Inverse
Inverse operator.
Definition mna_types.h:96
@ Surface
Surface mesh (FreeSurfer).
Definition mna_types.h:103
@ Label
ROI label.
Definition mna_types.h:106
@ Volume
MRI volume data.
Definition mna_types.h:102
@ Covariance
Noise or data covariance matrix.
Definition mna_types.h:97
@ RealTimeStream
Live data channel (MNE Scan / LSL / FIFF-RT).
Definition mna_types.h:107
@ Epochs
Epoched data.
Definition mna_types.h:99
@ Evoked
Averaged evoked response.
Definition mna_types.h:100
@ Matrix
Generic Eigen matrix (for intermediate results).
Definition mna_types.h:101