v2.0.0
Loading...
Searching...
No Matches
mna_types.h
Go to the documentation of this file.
1//=============================================================================================================
34
35#ifndef MNA_TYPES_H
36#define MNA_TYPES_H
37
38//=============================================================================================================
39// INCLUDES
40//=============================================================================================================
41
42#include <QString>
43
44//=============================================================================================================
45// DEFINE NAMESPACE MNALIB
46//=============================================================================================================
47
48namespace MNALIB{
49
50//=============================================================================================================
51// ENUMS
52//=============================================================================================================
53
74
75//=============================================================================================================
76
84
85//=============================================================================================================
86
107
108//=============================================================================================================
109
113enum class MnaPortDir {
116};
117
118//=============================================================================================================
119
129
130//=============================================================================================================
131// HELPER FUNCTIONS
132//=============================================================================================================
133
138{
139 switch(role) {
140 case MnaFileRole::Raw: return QStringLiteral("raw");
141 case MnaFileRole::Forward: return QStringLiteral("forward");
142 case MnaFileRole::Inverse: return QStringLiteral("inverse");
143 case MnaFileRole::Covariance: return QStringLiteral("covariance");
144 case MnaFileRole::SourceEstimate: return QStringLiteral("source_estimate");
145 case MnaFileRole::Bem: return QStringLiteral("bem");
146 case MnaFileRole::Surface: return QStringLiteral("surface");
147 case MnaFileRole::Annotation: return QStringLiteral("annotation"); case MnaFileRole::Digitizer: return QStringLiteral("digitizer");
148 case MnaFileRole::Transform: return QStringLiteral("transform");
149 case MnaFileRole::SourceSpace: return QStringLiteral("source_space");
150 case MnaFileRole::Evoked: return QStringLiteral("evoked");
151 case MnaFileRole::Event: return QStringLiteral("event");
152 case MnaFileRole::VirtualChannel: return QStringLiteral("virtual_channel");
153 case MnaFileRole::Custom: return QStringLiteral("custom");
154 }
155 return QStringLiteral("custom");
156}
157
158//=============================================================================================================
159
163inline MnaFileRole mnaFileRoleFromString(const QString& str)
164{
165 if(str == QLatin1String("raw")) return MnaFileRole::Raw;
166 if(str == QLatin1String("forward")) return MnaFileRole::Forward;
167 if(str == QLatin1String("inverse")) return MnaFileRole::Inverse;
168 if(str == QLatin1String("covariance")) return MnaFileRole::Covariance;
169 if(str == QLatin1String("source_estimate")) return MnaFileRole::SourceEstimate;
170 if(str == QLatin1String("bem")) return MnaFileRole::Bem;
171 if(str == QLatin1String("surface")) return MnaFileRole::Surface;
172 if(str == QLatin1String("annotation")) return MnaFileRole::Annotation;
173 if(str == QLatin1String("digitizer")) return MnaFileRole::Digitizer;
174 if(str == QLatin1String("transform")) return MnaFileRole::Transform;
175 if(str == QLatin1String("source_space")) return MnaFileRole::SourceSpace;
176 if(str == QLatin1String("evoked")) return MnaFileRole::Evoked;
177 if(str == QLatin1String("event")) return MnaFileRole::Event;
178 if(str == QLatin1String("virtual_channel")) return MnaFileRole::VirtualChannel;
179 return MnaFileRole::Custom;
180}
181
182//=============================================================================================================
183
188{
189 switch (kind) {
190 case MnaDataKind::FiffRaw: return QStringLiteral("FiffRaw");
191 case MnaDataKind::Forward: return QStringLiteral("Forward");
192 case MnaDataKind::Inverse: return QStringLiteral("Inverse");
193 case MnaDataKind::Covariance: return QStringLiteral("Covariance");
194 case MnaDataKind::SourceEstimate: return QStringLiteral("SourceEstimate");
195 case MnaDataKind::Epochs: return QStringLiteral("Epochs");
196 case MnaDataKind::Evoked: return QStringLiteral("Evoked");
197 case MnaDataKind::Matrix: return QStringLiteral("Matrix");
198 case MnaDataKind::Volume: return QStringLiteral("Volume");
199 case MnaDataKind::Surface: return QStringLiteral("Surface");
200 case MnaDataKind::Bem: return QStringLiteral("Bem");
201 case MnaDataKind::Annotation: return QStringLiteral("Annotation");
202 case MnaDataKind::Label: return QStringLiteral("Label");
203 case MnaDataKind::RealTimeStream: return QStringLiteral("RealTimeStream");
204 case MnaDataKind::Custom: return QStringLiteral("Custom");
205 }
206 return QStringLiteral("Custom");
207}
208
209//=============================================================================================================
210
214inline MnaDataKind mnaDataKindFromString(const QString& str)
215{
216 if (str == QLatin1String("FiffRaw") || str == QLatin1String("fiff_raw")) return MnaDataKind::FiffRaw;
217 if (str == QLatin1String("FiffInfo")) return MnaDataKind::Custom; // FiffInfo is a sub-kind of FiffRaw context
218 if (str == QLatin1String("Forward") || str == QLatin1String("forward")) return MnaDataKind::Forward;
219 if (str == QLatin1String("Inverse") || str == QLatin1String("inverse")) return MnaDataKind::Inverse;
220 if (str == QLatin1String("Covariance") || str == QLatin1String("covariance")) return MnaDataKind::Covariance;
221 if (str == QLatin1String("SourceEstimate") || str == QLatin1String("source_estimate")) return MnaDataKind::SourceEstimate;
222 if (str == QLatin1String("Epochs") || str == QLatin1String("epochs")) return MnaDataKind::Epochs;
223 if (str == QLatin1String("Evoked") || str == QLatin1String("evoked")) return MnaDataKind::Evoked;
224 if (str == QLatin1String("Matrix") || str == QLatin1String("matrix")) return MnaDataKind::Matrix;
225 if (str == QLatin1String("Volume") || str == QLatin1String("volume")) return MnaDataKind::Volume;
226 if (str == QLatin1String("Surface") || str == QLatin1String("surface")) return MnaDataKind::Surface;
227 if (str == QLatin1String("Bem") || str == QLatin1String("bem")) return MnaDataKind::Bem;
228 if (str == QLatin1String("Annotation") || str == QLatin1String("annotation")) return MnaDataKind::Annotation;
229 if (str == QLatin1String("Label") || str == QLatin1String("label")) return MnaDataKind::Label;
230 if (str == QLatin1String("RealTimeStream") || str == QLatin1String("real_time_stream")) return MnaDataKind::RealTimeStream;
231 if (str == QLatin1String("FilePath") || str == QLatin1String("DirectoryPath")) return MnaDataKind::Custom;
232 return MnaDataKind::Custom;
233}
234
235} // namespace MNALIB
236
237#endif // MNA_TYPES_H
MNE Analysis Container Format (mna/mnx).
MnaNodeExecMode
Definition mna_types.h:123
@ Batch
Runs once on static file-based inputs (default).
Definition mna_types.h:124
@ Ipc
Delegates to an external process via inter-process communication.
Definition mna_types.h:126
@ Stream
Runs continuously on real-time data (MNE Scan mode).
Definition mna_types.h:125
@ Script
Inline code executed via interpreter (Python, shell, R, …).
Definition mna_types.h:127
QString mnaDataKindToString(MnaDataKind kind)
Definition mna_types.h:187
MnaContainerFormat
Definition mna_types.h:80
MnaFileRole mnaFileRoleFromString(const QString &str)
Definition mna_types.h:163
MnaFileRole
Definition mna_types.h:57
MnaDataKind mnaDataKindFromString(const QString &str)
Definition mna_types.h:214
QString mnaFileRoleToString(MnaFileRole role)
Definition mna_types.h:137
MnaDataKind
Definition mna_types.h:90
@ FiffRaw
Raw MEG/EEG data (FIFF format).
Definition mna_types.h:91
@ Annotation
FreeSurfer annotation / parcellation.
Definition mna_types.h:102
@ Forward
Forward solution.
Definition mna_types.h:92
@ SourceEstimate
Source-level time series.
Definition mna_types.h:95
@ Custom
User-defined data kind.
Definition mna_types.h:105
@ Bem
BEM model.
Definition mna_types.h:101
@ Inverse
Inverse operator.
Definition mna_types.h:93
@ Surface
Surface mesh (FreeSurfer).
Definition mna_types.h:100
@ Label
ROI label.
Definition mna_types.h:103
@ Volume
MRI volume data.
Definition mna_types.h:99
@ Covariance
Noise or data covariance matrix.
Definition mna_types.h:94
@ RealTimeStream
Live data channel (MNE Scan / LSL / FIFF-RT).
Definition mna_types.h:104
@ Epochs
Epoched data.
Definition mna_types.h:96
@ Evoked
Averaged evoked response.
Definition mna_types.h:97
@ Matrix
Generic Eigen matrix (for intermediate results).
Definition mna_types.h:98