MNE-CPP  beta 1.0
fiff_io.h
Go to the documentation of this file.
1 //=============================================================================================================
37 #ifndef FIFF_IO_H
38 #define FIFF_IO_H
39 
40 //*************************************************************************************************************
41 //=============================================================================================================
42 // INCLUDES
43 //=============================================================================================================
44 
45 #include "fiff_global.h"
46 #include "fiff_info.h"
47 #include "fiff_types.h"
48 
49 #include "fiff_raw_data.h"
50 #include "fiff_evoked.h"
51 
52 #include "fiff_stream.h"
53 
54 
55 //*************************************************************************************************************
56 //=============================================================================================================
57 // Qt INCLUDES
58 //=============================================================================================================
59 
60 #include <QList>
61 #include <QIODevice>
62 #include <QSharedPointer>
63 #include <QDebug>
64 
65 
66 //*************************************************************************************************************
67 //=============================================================================================================
68 // DEFINE NAMESPACE FIFFLIB
69 //=============================================================================================================
70 
71 namespace FIFFLIB
72 {
73 
74 //*************************************************************************************************************
75 //=============================================================================================================
76 // USED NAMESPACES
77 //=============================================================================================================
78 
79 //using namespace MNELIB;
80 
81 class FIFFSHARED_EXPORT FiffIO : public QObject
82 {
83 public:
84 // enum Type {
85 // _RAW = FIFFB_RAW_DATA, //102
86 // _EVOKED = FIFFB_EVOKED, //104
87 // _PROJ = FIFFB_PROJ, //313
88 // _FWD = FIFFB_MNE_FORWARD_SOLUTION, //352
89 // _COV = FIFFB_MNE_COV, //355
90 // _NAMED_MATRIX = FIFFB_MNE_NAMED_MATRIX //357
91 // };
92 
93  //=========================================================================================================
98  FiffIO();
99 
100  //=========================================================================================================
104  ~FiffIO();
105 
106  //=========================================================================================================
112  FiffIO(QIODevice& p_IODevice);
113 
114  //=========================================================================================================
120  FiffIO(QList<QIODevice*>& p_qlistIODevices);
121 
122  //=========================================================================================================
128  FiffIO(const FiffIO& p_FiffIO);
129 
130  //=========================================================================================================
131 
143  static bool setup_read(QIODevice& p_IODevice, FiffInfo& info, FiffDirTree& Tree, FiffDirTree& dirTree);
144 
145  //=========================================================================================================
151  bool read(QIODevice& p_IODevice);
152 
153  //=========================================================================================================
159  bool read(QList<QIODevice>& p_qlistIODevices);
160 
161  //=========================================================================================================
170  bool write(QIODevice& p_IODevice, const fiff_int_t type, const fiff_int_t idx) const;
171 
172  //=========================================================================================================
180  bool write(QFile& p_QFile, const fiff_int_t type, const fiff_int_t idx) const;
181 
182  //=========================================================================================================
191  bool write_raw(QIODevice& p_IODevice, const fiff_int_t idx) const;
192 
193  //=========================================================================================================
200  friend std::ostream& operator<<(std::ostream& out, const FiffIO &p_fiffIO) {
201  out << "\n\n---------------------- Fiff data read summary ---------------------- " << std::endl;
202  out << "fiff data contains" << std::endl;
203  out << p_fiffIO.m_qlistRaw.size() << " raw data sets" << std::endl;
204  out << p_fiffIO.m_qlistEvoked.size() << " evoked sets" << std::endl;
205 // out << p_fiffIO.m_qlistFwd.size() << " forward solutions" << std::endl;
206  return out;
207  }
208 
209 public:
210  QList<QSharedPointer<FiffRawData> > m_qlistRaw;
211  QList<QSharedPointer<FiffEvoked> > m_qlistEvoked;
212 // QList<QSharedPointer<MNEForwardSolution> > m_qlistFwd;
213  //FiffCov, MNEInverseOperator, AnnotationSet,
214 };
215 
216 //*************************************************************************************************************
217 //=============================================================================================================
218 // INLINE DEFINITIONS
219 //=============================================================================================================
220 
221 
222 
223 
224 } // NAMESPACE
225 
226 #endif // FIFF_IO_H
FIFF measurement file information.
Definition: fiff_info.h:96
Old fiff_type declarations - replace them.
friend std::ostream & operator<<(std::ostream &out, const FiffIO &p_fiffIO)
Definition: fiff_io.h:200
FiffInfo class declaration.
#define FIFFSHARED_EXPORT
Definition: fiff_global.h:58
FiffStream class declaration.
Directory tree structure.
Definition: fiff_dir_tree.h:80
Fiff library export/import macros.
Definition: fiff.h:98
FiffRawData class declaration.