73 QList<QIODevice*>::iterator i;
74 for (i = p_qlistIODevices.begin(); i != p_qlistIODevices.end(); ++i) {
87 QString t_sFileName = p_pStream->streamName();
89 qInfo(
"Opening fiff data %s...\n", t_sFileName.toUtf8().constData());
91 if (!p_pStream->open())
95 if (!p_pStream->read_meas_info(p_pStream->dirtree(), info, dirTree))
109 bool hasEvoked =
false;
115 qWarning() <<
"[FiffIO::read] Dir tree could not be read";
138 QSharedPointer<FiffRawData> p_fiffRawData(
new FiffRawData(pIODevice));
144 qInfo(
"Finished reading raw data!\n");
145 }
catch (
const std::exception& e) {
146 qWarning() <<
"[FiffIO::read] Could not read raw data:" << e.what();
158 for (qint32 i = 0; i < p_fiffEvokedSet.
evoked.size(); ++i) {
161 }
catch (
const std::exception& e) {
162 qWarning() <<
"[FiffIO::read] Could not read evoked data:" << e.what();
190 qDebug() <<
"Finished writing single raw data with index" << idx <<
".";
206 qInfo(
"------------------------ Writing fiff data ------------------------");
210 QString t_nameoftype =
"raw";
213 for (qint32 i = 0; i <
m_qlistRaw.size(); ++i) {
216 qint32 p = p_QFile.fileName().indexOf(
".fif");
217 t_fname = p_QFile.fileName().insert(p, QString(
"_" + t_nameoftype +
"-" + QString::number(i)));
220 qInfo(
"\nWriting set with index %i to file %s ...\n", i, t_fname.toUtf8().constData());
221 QFile t_file(t_fname);
228 qInfo(
"\nFinished Writing %lld raw data sets!\n",
static_cast<long long>(
m_qlistRaw.size()));
245 SparseMatrix<double> mult;
255 float quantum_sec = 30.0f;
262 bool first_buffer =
true;
268 for (first = from; first < to; first += quantum) {
269 last = first + quantum - 1;
273 if (!
m_qlistRaw[idx]->read_raw_segment(data, times, mult, first, last, sel)) {
274 qWarning(
"error during read_raw_segment\n");
282 first_buffer =
false;
284 outfid->write_raw_buffer(data, cals);
288 outfid->finish_writing_raw();
Static MATLAB-style FIFF facade: thin wrapper functions kept for parity with the historical mne-matla...
Set of averaged evoked responses sharing a FiffInfo, plus the ave-style category / rejection descript...
FIFF binary tag-stream layer: wraps a QIODevice to read and write FIFF tags, directories,...
#define FIFF_FIRST_SAMPLE
#define FIFFB_SMSH_RAW_DATA
#define FIFFB_PROCESSED_DATA
#define FIFFB_CONTINUOUS_DATA
High-level convenience reader/writer that loads a whole FIFF measurement file into FIFFLIB containers...
FIFF file I/O, in-memory data structures and high-level readers/writers.
QSharedPointer< FiffDirNode > SPtr
Single averaged evoked response: time axis, data, baseline, channel info and averaging metadata.
Set of FiffEvoked instances sharing one FiffInfo, plus channel-picking and compensation helpers.
QList< FiffEvoked > evoked
Full FIFF measurement info: per-channel descriptors, sampling and filter setup, projectors,...
QList< QSharedPointer< FiffRawData > > m_qlistRaw
bool write(QIODevice &pIODevice, const fiff_int_t type, const fiff_int_t idx) const
bool read(QIODevice &pIODevice)
bool write_raw(QIODevice &pIODevice, const fiff_int_t idx) const
QList< QSharedPointer< FiffEvoked > > m_qlistEvoked
static bool setup_read(QIODevice &pIODevice, FiffInfo &info, FiffDirNode::SPtr &dirTree)
Continuous FIFF raw recording: FiffInfo plus a random-access directory of FIFF_DATA_BUFFER tags.
FIFF tag-stream reader/writer: wraps a QIODevice and exposes typed read_* / write_* methods for every...
QSharedPointer< FiffStream > SPtr
static FiffStream::SPtr start_writing_raw(QIODevice &p_IODevice, const FiffInfo &info, Eigen::RowVectorXd &cals, Eigen::MatrixXi sel=defaultMatrixXi, bool bResetRange=true)