69 ,
id(p_FiffDirTree->
id)
92 if(p_Nodes.size() <= 0)
97 for(k = 0; k < p_Nodes.size(); ++k)
99 p_pStreamOut->start_block(p_Nodes[k]->
type);
100 if (p_Nodes[k]->
id.version != -1)
103 p_pStreamOut->write_id(FIFF_PARENT_FILE_ID, in_id);
105 p_pStreamOut->write_id(FIFF_BLOCK_ID);
106 p_pStreamOut->write_id(FIFF_PARENT_BLOCK_ID, p_Nodes[k]->
id);
108 for (p = 0; p < p_Nodes[k]->nent(); ++p)
113 if(p_Nodes[k]->
dir[p]->kind == FIFF_BLOCK_ID || p_Nodes[k]->
dir[p]->kind == FIFF_PARENT_BLOCK_ID || p_Nodes[k]->
dir[p]->kind == FIFF_PARENT_FILE_ID)
119 if (!p_pStreamIn->device()->seek(p_Nodes[k]->
dir[p]->pos))
121 printf(
"Could not seek to the tag\n");
129 in->setByteOrder(QDataStream::BigEndian);
146 in->readRawData(tag->data(), tag->size());
154 out->setByteOrder(QDataStream::BigEndian);
156 *out << (qint32)tag->kind;
157 *out << (qint32)tag->type;
158 *out << (qint32)tag->size();
159 *out << (qint32)FIFFV_NEXT_SEQ;
161 out->writeRawData(tag->data(),tag->size());
163 for(p = 0; p < p_Nodes[k]->nchild(); ++p)
165 QList<FiffDirNode::SPtr> childList;
166 childList << p_Nodes[k]->children[p];
169 p_pStreamOut->end_block(p_Nodes[k]->
type);
178 QList<FiffDirNode::SPtr> nodes;
179 if(this->
type == p_kind)
182 QList<FiffDirNode::SPtr>::const_iterator i;
184 nodes.append((*i)->dir_tree_find(p_kind));
193 for (qint32 p = 0; p < this->
nent(); ++p)
195 if (this->
dir[p]->kind == findkind)
211 for(qint32 p = 0; p < this->
nent(); ++p)
212 if(this->
dir.at(p)->kind == findkind)
221 if(this->
type == p_kind)
224 QList<FiffDirNode::SPtr>::const_iterator i;
226 if((*i)->has_kind(p_kind))
236 int j, prev_kind,count;
237 QList<FiffDirEntry::SPtr> dentry = this->
dir;
239 for (
int k = 0; k < indent; k++)
247 for (j = 0, prev_kind = -1, count = 0; j < this->
nent(); j++) {
248 if (dentry[j]->kind != prev_kind) {
250 printf (
" [%d]\n",count);
253 for (
int k = 0; k < indent+2; k++)
256 prev_kind = dentry[j]->kind;
261 prev_kind = dentry[j]->kind;
264 printf (
" [%d]\n",count);
267 for (j = 0; j < this->
nchild(); j++)
269 for (
int k = 0; k < indent; k++)
278 for (
int k = 0; _fiff_block_explanations[k].kind >= 0; k++) {
279 if (_fiff_block_explanations[k].kind == kind) {
280 printf (
"%d = %s",kind,_fiff_block_explanations[k].text);
284 printf (
"Cannot explain: %d",kind);
292 for (k = 0; _fiff_explanations[k].kind >= 0; k++) {
293 if (_fiff_explanations[k].kind == kind) {
294 printf (
"%d = %s",kind,_fiff_explanations[k].text);
298 printf (
"Cannot explain: %d",kind);
306 for (k = 0; _fiff_explanations[k].kind >= 0; k++) {
307 if (_fiff_explanations[k].kind == kind)
308 return _fiff_explanations[k].text;
FiffTag class declaration, which provides fiff tag I/O and processing methods.
bool find_tag(QSharedPointer< FiffStream > &p_pStream, fiff_int_t findkind, QSharedPointer< FiffTag > &p_pTag) const
bool has_kind(fiff_int_t p_kind) const
FiffStream class declaration.
bool read_tag(QSharedPointer< FiffTag > &p_pTag, fiff_long_t pos=-1)
QSharedPointer< FiffTag > SPtr
bool has_tag(fiff_int_t findkind)
static void explain(int kind)
fiff_int_t nchild() const
QList< FiffDirNode::SPtr > dir_tree_find(fiff_int_t p_kind) const
QList< FiffDirEntry::SPtr > dir
Directory Node structure.
FiffDirNode class declaration, which provides fiff dir tree processing methods.
void print(int indent) const
static bool copy_tree(QSharedPointer< FiffStream > &p_pStreamIn, const FiffId &in_id, const QList< QSharedPointer< FiffDirNode > > &p_Nodes, QSharedPointer< FiffStream > &p_pStreamOut)
QSharedPointer< FiffDirNode > SPtr
static const char * get_tag_explanation(int kind)
Universially unique identifier.
QList< FiffDirNode::SPtr > children
QSharedPointer< FiffStream > SPtr
static void explain_block(int kind)