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();
184 const fiff_int_t type,
185 const fiff_int_t idx)
const {
189 qDebug() <<
"Finished writing single raw data with index" << idx <<
".";
202 const fiff_int_t type,
203 const fiff_int_t idx)
const {
204 qInfo(
"------------------------ Writing fiff data ------------------------");
208 QString t_nameoftype =
"raw";
214 qint32 p = p_QFile.fileName().indexOf(
".fif");
215 t_fname = p_QFile.fileName().insert(p,QString(
"_"+t_nameoftype+
"-"+QString::number(i)));
218 qInfo(
"\nWriting set with index %i to file %s ...\n",i,t_fname.toUtf8().constData());
219 QFile t_file(t_fname);
227 qInfo(
"\nFinished Writing %lli raw data sets!\n",
m_qlistRaw.size());
241 const fiff_int_t idx)
const
244 SparseMatrix<double> mult;
249 fiff_int_t from =
m_qlistRaw[idx]->first_samp;
251 float quantum_sec = 30.0f;
252 fiff_int_t quantum = ceil(quantum_sec*
m_qlistRaw[idx]->info.sfreq);
258 bool first_buffer =
true;
260 fiff_int_t first, last;
264 for(first = from; first < to; first+=quantum) {
265 last = first+quantum-1;
269 if (!
m_qlistRaw[idx]->read_raw_segment(data, times, mult, first, last, sel)) {
270 qWarning(
"error during read_raw_segment\n");
278 first_buffer =
false;
280 outfid->write_raw_buffer(data, cals);
284 outfid->finish_writing_raw();
High-level convenience reader/writer that loads a whole FIFF measurement file into FIFFLIB containers...
Set of averaged evoked responses sharing a FiffInfo, plus the ave-style category / rejection descript...
#define FIFF_FIRST_SAMPLE
#define FIFFB_SMSH_RAW_DATA
#define FIFFB_PROCESSED_DATA
#define FIFFB_CONTINUOUS_DATA
Static MATLAB-style FIFF facade: thin wrapper functions kept for parity with the historical mne-matla...
FIFF binary tag-stream layer: wraps a QIODevice to read and write FIFF tags, directories,...
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,...
bool write(QIODevice &pIODevice, const fiff_int_t type, const fiff_int_t idx) const
QList< QSharedPointer< FiffEvoked > > m_qlistEvoked
bool read(QIODevice &pIODevice)
bool write_raw(QIODevice &pIODevice, const fiff_int_t idx) const
static bool setup_read(QIODevice &pIODevice, FiffInfo &info, FiffDirNode::SPtr &dirTree)
QList< QSharedPointer< FiffRawData > > m_qlistRaw
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)