AwReadWrite
Read Write Library for AnyWave
AwReadWriteLib.h
1 //
3 // Université d’Aix Marseille (AMU) -
4 // Institut National de la Santé et de la Recherche Médicale (INSERM)
5 // Copyright © 2013 AMU, INSERM
6 //
7 // This library is free software; you can redistribute it and/or
8 // modify it under the terms of the GNU Lesser General Public
9 // License as published by the Free Software Foundation; either
10 // version 3 of the License, or (at your option) any later version.
11 //
12 // This library is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 // Lesser General Public License for more details.
16 //
17 // You should have received a copy of the GNU Lesser General Public
18 // License along with this library; if not, write to the Free Software
19 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 //
21 //
22 //
23 // Author: Bruno Colombet – Laboratoire UMR INS INSERM 1106 - Bruno.Colombet@univ-amu.fr
24 //
26 #ifndef AWREADWRITELIB_H
27 #define AWREADWRITELIB_H
28 
29 #include <QtGlobal>
30 #include <QList>
31 #include <AwChannel.h>
32 #include <AwMarker.h>
33 
34 
48 class AwBlock
49 {
50 public:
51  AwBlock();
52  AwBlock(int index);
53  ~AwBlock();
54 
56  inline float duration() { return m_duration; }
58  inline void setDuration(float duration) { m_duration = duration; }
60  inline quint32 samples() { return m_samples; }
62  inline void setSamples(quint32 samples) { m_samples = samples; }
64  inline void setStartPosition(float pos) { m_start = pos; }
66  inline float start() { return m_start; }
68  inline int index() { return m_id; }
70  inline AwMarkerList& markers() { return m_markers; }
72  inline qint32 markersCount() { return m_markers.size(); }
74  AwMarker* addMarker(AwMarker& marker);
76  AwMarker* addMarker(AwMarker *marker);
78  void setMarkers(const AwMarkerList& markers) { m_markers = markers; }
79 
80 protected:
81  float m_duration;
82  quint32 m_samples;
83  float m_start;
84  int m_id;
85  AwMarkerList m_markers;
86 };
87 
88 typedef QList<AwBlock *> AwBlockList;
89 
106 {
107 public:
108  AwDataInfo();
109  virtual ~AwDataInfo();
110 
112  inline AwBlockList& blocks() { return m_blocks; }
114  inline AwChannelList& channels() { return m_channels; }
116  inline qint32 channelsCount() { return m_channels.size(); }
118  inline QString& patientName() { return m_patientName; }
120  inline QString& recordingDate() { return m_date; }
122  inline QString& recordingTime() { return m_time; }
124  inline QString& manufacturer() { return m_manufacturer; }
125 
127  AwBlock *newBlock();
128 
130  float totalDuration();
132  quint32 totalSamples();
133 
135  inline bool isEpoched() { return m_blocks.size() > 1; }
136 
138  inline QString& fileName() { return m_fileName; }
139 
141  inline void setFileName(const QString& name) { m_fileName = name; }
143  inline void setManufacturer(const QString& man) { m_manufacturer = man; }
145  inline void setTime(const QString& time) { m_time = time; }
147  inline void setDate(const QString& date) { m_date = date; }
149  inline void setPatientName(const QString& name) { m_patientName = name; }
150 protected:
151  AwBlockList m_blocks;
152  AwChannelList m_channels;
153  QString m_patientName;
154  QString m_date;
155  QString m_time;
156  QString m_manufacturer;
157  QString m_fileName;
158 };
159 
160 
174 {
175 public:
177  ~AwDataInfoReader();
178 
181  int indexOfChannel(const QString& name);
182 
185  AwChannel* addChannel(AwChannel *channel);
188  AwChannel* addChannel(AwChannel& channel);
191  void changeChannelName(const QString& oldName, const QString& newName);
192 protected:
193  quint32 m_channelsCount;
194  // Hash table to store index of channels and their name.
195  QHash<QString, int> m_labelToIndex;
196 };
197 
211 {
212 public:
214  ~AwDataInfoWriter();
215 
218  inline void setChannels(AwChannelList& channels) { m_channels = channels; }
219 };
220 
221 #endif // AWREADWRITELIB_H
QString & fileName()
Definition: AwReadWriteLib.h:138
qint32 channelsCount()
Definition: AwReadWriteLib.h:116
float duration()
Definition: AwReadWriteLib.h:56
void setSamples(quint32 samples)
Definition: AwReadWriteLib.h:62
AwBlockList & blocks()
Definition: AwReadWriteLib.h:112
Defines class to manage file information for writer's plugins.
Definition: AwReadWriteLib.h:210
void setStartPosition(float pos)
Definition: AwReadWriteLib.h:64
qint32 markersCount()
Definition: AwReadWriteLib.h:72
float totalDuration()
Definition: AwReadWriteLib.cpp:101
void setFileName(const QString &name)
Definition: AwReadWriteLib.h:141
QString & recordingTime()
Definition: AwReadWriteLib.h:122
QString & patientName()
Definition: AwReadWriteLib.h:118
QString & manufacturer()
Definition: AwReadWriteLib.h:124
void changeChannelName(const QString &oldName, const QString &newName)
Definition: AwReadWriteLib.cpp:210
int index()
Definition: AwReadWriteLib.h:68
void setDuration(float duration)
Definition: AwReadWriteLib.h:58
quint32 samples()
Definition: AwReadWriteLib.h:60
void setMarkers(const AwMarkerList &markers)
Definition: AwReadWriteLib.h:78
void setChannels(AwChannelList &channels)
Definition: AwReadWriteLib.h:218
int indexOfChannel(const QString &name)
Definition: AwReadWriteLib.cpp:201
AwBlock defines a block of data.
Definition: AwReadWriteLib.h:48
AwChannelList & channels()
Definition: AwReadWriteLib.h:114
AwMarkerList & markers()
Definition: AwReadWriteLib.h:70
AwMarker * addMarker(AwMarker &marker)
Definition: AwReadWriteLib.cpp:52
void setDate(const QString &date)
Definition: AwReadWriteLib.h:147
QString & recordingDate()
Definition: AwReadWriteLib.h:120
AwChannel * addChannel(AwChannel *channel)
Definition: AwReadWriteLib.cpp:162
bool isEpoched()
Definition: AwReadWriteLib.h:135
quint32 totalSamples()
Definition: AwReadWriteLib.cpp:111
AwBlock * newBlock()
Definition: AwReadWriteLib.cpp:121
void setTime(const QString &time)
Definition: AwReadWriteLib.h:145
float start()
Definition: AwReadWriteLib.h:66
void setManufacturer(const QString &man)
Definition: AwReadWriteLib.h:143
void setPatientName(const QString &name)
Definition: AwReadWriteLib.h:149
This is the base class to manage informations about Reader or Writer Plugins.
Definition: AwReadWriteLib.h:105
Defines class to manage file information for reader's plug-ins.
Definition: AwReadWriteLib.h:173