Skip to content

Commit 9b098b4

Browse files
committed
Add backwards compat for 0.5.x event loading in Binary Format
1 parent 21a701a commit 9b098b4

1 file changed

Lines changed: 25 additions & 5 deletions

File tree

Source/Processors/FileReader/BinaryFileSource/BinaryFileSource.cpp

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,25 @@ bool BinaryFileSource::open(File file)
7171
void BinaryFileSource::fillRecordInfo()
7272
{
7373

74+
Identifier idGUIVersion("GUI version");
75+
String guiVersion = m_jsonData[idGUIVersion];
76+
77+
String sampleNumbersFilename;
78+
String channelStatesFilename;
79+
80+
int minorVersion = guiVersion.substring(2,3).getIntValue();
81+
82+
if (minorVersion < 6) {
83+
sampleNumbersFilename = "timestamps.npy";
84+
channelStatesFilename = "channel_states.npy";
85+
}
86+
else
87+
{
88+
sampleNumbersFilename = "sample_numbers.npy";
89+
channelStatesFilename = "states.npy";
90+
}
91+
92+
7493
const int maxSensibleFileSize = 2 * 1024 * 1024;
7594

7695
var continuousData = m_jsonData["continuous"];
@@ -110,7 +129,7 @@ void BinaryFileSource::fillRecordInfo()
110129
info.sampleRate = record[idSampleRate];
111130
info.numSamples = numSamples;
112131

113-
File tsFile = m_rootPath.getChildFile("continuous").getChildFile(streamName).getChildFile("sample_numbers.npy");
132+
File tsFile = m_rootPath.getChildFile("continuous").getChildFile(streamName).getChildFile(sampleNumbersFilename);
114133
if (tsFile.exists())
115134
{
116135
std::unique_ptr<FileInputStream> tsDataStream = tsFile.createInputStream();
@@ -169,21 +188,22 @@ void BinaryFileSource::fillRecordInfo()
169188
String streamName = events[idFolder];
170189
streamName = streamName.trimCharactersAtEnd("/");
171190

172-
File sampleNumbersFile = m_rootPath.getChildFile("events").getChildFile(streamName).getChildFile("sample_numbers.npy");
191+
File sampleNumbersFile = m_rootPath.getChildFile("events").getChildFile(streamName).getChildFile(sampleNumbersFilename);
173192
std::unique_ptr<MemoryMappedFile> sampleNumbersMap(new MemoryMappedFile(sampleNumbersFile, MemoryMappedFile::readOnly));
174193

175194
if (sampleNumbersFile.getSize() == EVENT_HEADER_SIZE_IN_BYTES)
176195
continue;
177196

178197
int nEvents = (sampleNumbersFile.getSize() - EVENT_HEADER_SIZE_IN_BYTES) / 8;
179198

180-
if (streamName.endsWith("TTL"))
199+
if (streamName.contains("TTL"))
181200
{
182201

183-
File channelStatesFile = m_rootPath.getChildFile("events").getChildFile(streamName).getChildFile("states.npy");
202+
File channelStatesFile = m_rootPath.getChildFile("events").getChildFile(streamName).getChildFile(channelStatesFilename);
184203
std::unique_ptr<MemoryMappedFile> channelStatesFileMap(new MemoryMappedFile(channelStatesFile, MemoryMappedFile::readOnly));
185204

186-
streamName = streamName.trimCharactersAtEnd("/TTL");
205+
206+
streamName = streamName.substring(0,streamName.lastIndexOf("/TTL"));
187207

188208
EventInfo eventInfo;
189209

0 commit comments

Comments
 (0)