v2.0.0
Loading...
Searching...
No Matches
fiff_tag.h File Reference

FIFF tag: the 16-byte tag header (kind, type, size, next) plus its decoded payload. More...

#include "fiff_global.h"
#include "fiff_constants.h"
#include "fiff_file.h"
#include "fiff_types.h"
#include "fiff_id.h"
#include "fiff_coord_trans.h"
#include "fiff_ch_info.h"
#include "fiff_ch_pos.h"
#include "fiff_dir_entry.h"
#include "fiff_dig_point.h"
#include <Eigen/Core>
#include <Eigen/SparseCore>
#include <QDebug>
#include <QByteArray>
#include <QList>
#include <QSharedPointer>
#include <QVector>
#include <iostream>
#include <memory>
Include dependency graph for fiff_tag.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  FIFFLIB::FiffTag
 FIFF tag: 16-byte header (kind, type, size, next) plus payload, with typed decoders for every FIFFT_* type. More...

Namespaces

namespace  FIFFLIB
 FIFF file I/O, in-memory data structures and high-level readers/writers.

Macros

#define NATIVE_ENDIAN   FIFFV_LITTLE_ENDIAN
#define IS_MATRIX   0xFFFF0000
#define MATRIX_CODING_DENSE   0x00004000
#define MATRIX_CODING_CCS   0x00004010
#define MATRIX_CODING_RCS   0x00004020
#define DATA_TYPE   0x0000FFFF

Detailed Description

FIFF tag: the 16-byte tag header (kind, type, size, next) plus its decoded payload.

SPDX-License-Identifier: BSD-3-Clause Copyright (c) 2012-2026 MNE-CPP Authors

Author
Christoph Dinh chris.nosp@m.toph.nosp@m..dinh.nosp@m.@mne.nosp@m.-cpp..nosp@m.org; Christof Pieloth pielo.nosp@m.th@l.nosp@m.abp.h.nosp@m.twk-.nosp@m.leipz.nosp@m.ig.d.nosp@m.e; Lorenz Esch loren.nosp@m.z.es.nosp@m.ch@tu.nosp@m.-ilm.nosp@m.enau..nosp@m.de; Juan GPC jgarc.nosp@m.iapr.nosp@m.ieto@.nosp@m.mgh..nosp@m.harva.nosp@m.rd.e.nosp@m.du; Gabriel Motta gabri.nosp@m.elbe.nosp@m.nmott.nosp@m.a@gm.nosp@m.ail.c.nosp@m.om
Since
0.1.0
Date
August 2012

A FIFF tag is the atomic unit of the format: a fixed 16-byte header (kind, type, size, next) followed by size bytes of payload whose interpretation depends on the type descriptor. The upper byte of type selects the fundamental structure — scalar (FIFFFS_SCALAR == 0x00) or multidimensional matrix (FIFFFS_MATRIX == 0x40) — and the matrix variants additionally carry a coding flag in the low bits selecting dense (MATRIX_CODING_DENSE), column-compressed sparse (MATRIX_CODING_CCS) or row-compressed sparse (MATRIX_CODING_RCS) storage. FiffTag is the C++ wrapper that holds the header fields, the raw payload bytes and a small set of typed accessors (toInt, toFloat, toMatrix, toCoordTrans, toChInfo, ...) that decode the payload on demand into the relevant FIFFLIB class.

The header also re-publishes the IS_MATRIX / MATRIX_CODING_* bitmasks and the NATIVE_ENDIAN macro driven by the OS-detection ladder above so callers can compare FiffTag::type against a canonical mask without duplicating the bit fiddling.

Definition in file fiff_tag.h.

Macro Definition Documentation

◆ DATA_TYPE

#define DATA_TYPE   0x0000FFFF

DATA_TYPE encoding 0000ffff.

Definition at line 137 of file fiff_tag.h.

◆ IS_MATRIX

#define IS_MATRIX   0xFFFF0000

Is Matrix encoding. ffff0000.

Definition at line 133 of file fiff_tag.h.

◆ MATRIX_CODING_CCS

#define MATRIX_CODING_CCS   0x00004010

MATRIX_CODING_CCS encoding. 4010.

Definition at line 135 of file fiff_tag.h.

◆ MATRIX_CODING_DENSE

#define MATRIX_CODING_DENSE   0x00004000

MATRIX_CODING_DENSE encoding. 4000.

Definition at line 134 of file fiff_tag.h.

◆ MATRIX_CODING_RCS

#define MATRIX_CODING_RCS   0x00004020

MATRIX_CODING_RCS encoding. 4020.

Definition at line 136 of file fiff_tag.h.

◆ NATIVE_ENDIAN

#define NATIVE_ENDIAN   FIFFV_LITTLE_ENDIAN

Definition at line 68 of file fiff_tag.h.