|
23 | 23 |
|
24 | 24 | #include "HDF5Recording.h" |
25 | 25 | #define MAX_BUFFER_SIZE 40960 |
26 | | -#define CHANNEL_TIMESTAMP_PREALLOC_SIZE 16 |
| 26 | +#define CHANNEL_TIMESTAMP_PREALLOC_SIZE 128 |
| 27 | +#define CHANNEL_TIMESTAMP_MIN_WRITE 32 |
27 | 28 | #define TIMESTAMP_EACH_NSAMPLES 1024 |
28 | 29 |
|
29 | 30 | HDF5Recording::HDF5Recording() : processorIndex(-1), hasAcquired(false), bufferSize(MAX_BUFFER_SIZE) |
@@ -187,15 +188,6 @@ void HDF5Recording::closeFiles() |
187 | 188 | channelLeftOverSamples.clear(); |
188 | 189 | } |
189 | 190 |
|
190 | | -void HDF5Recording::startChannelBlock() |
191 | | -{ |
192 | | - int nCh = channelTimestampArray.size(); |
193 | | - for (int i = 0; i < nCh; ++i) |
194 | | - { |
195 | | - channelTimestampArray[i]->clearQuick(); |
196 | | - } |
197 | | -} |
198 | | - |
199 | 191 | void HDF5Recording::writeData(int writeChannel, int realChannel, const float* buffer, int size) |
200 | 192 | { |
201 | 193 | if (size > bufferSize) //Shouldn't happen, and if it happens it'll be slow, but better this than crashing. Will be reset on reset. |
@@ -232,17 +224,18 @@ void HDF5Recording::writeData(int writeChannel, int realChannel, const float* bu |
232 | 224 | channelLeftOverSamples.set(writeChannel, (size + sampleOffset) % TIMESTAMP_EACH_NSAMPLES); |
233 | 225 | } |
234 | 226 |
|
235 | | -void HDF5Recording::endChannelBlock() |
| 227 | +void HDF5Recording::endChannelBlock(bool lastBlock) |
236 | 228 | { |
237 | 229 | int nCh = channelTimestampArray.size(); |
238 | 230 | for (int ch = 0; ch < nCh; ++ch) |
239 | 231 | { |
240 | 232 | int tsSize = channelTimestampArray[ch]->size(); |
241 | | - if (tsSize > 0) |
| 233 | + if ((tsSize > 0) && ((tsSize > CHANNEL_TIMESTAMP_MIN_WRITE) || lastBlock)) |
242 | 234 | { |
243 | 235 | int realChan = getRealChannel(ch); |
244 | 236 | int index = processorMap[getChannel(realChan)->recordIndex]; |
245 | 237 | fileArray[index]->writeTimestamps(channelTimestampArray[ch]->getRawDataPointer(), tsSize, ch); |
| 238 | + channelTimestampArray[ch]->clearQuick(); |
246 | 239 | } |
247 | 240 | } |
248 | 241 | } |
|
0 commit comments