Skip to content

Commit d9dd820

Browse files
committed
change writeTimestampSyncText signature
1 parent 7d8c513 commit d9dd820

File tree

4 files changed

+20
-9
lines changed

4 files changed

+20
-9
lines changed

Source/Processors/RecordNode/BinaryFormat/BinaryRecording.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -672,19 +672,18 @@ void BinaryRecording::writeSpike (int electrodeIndex, const Spike* spike)
672672
increaseEventCounts (rec);
673673
}
674674

675-
void BinaryRecording::writeTimestampSyncText (uint64 streamId, int64 sampleNumber, float sourceSampleRate, String text)
675+
void BinaryRecording::writeTimestampSyncText(DataStream* stream, int64 sampleNumber, double timestamp, String text)
676676
{
677677
if (! m_syncTextFile)
678678
return;
679679

680680
String syncString = text + ": " + String (sampleNumber);
681681
LOGD (syncString);
682682

683-
int64 fsn = firstSampleNumber[streamId];
684-
685-
if(streamId > 0)
683+
if(stream != nullptr){
684+
int64 fsn = firstSampleNumber[stream->getStreamId()];
686685
jassert (fsn == sampleNumber);
687-
686+
}
688687
m_syncTextFile->writeText (syncString + "\r\n", false, false, nullptr);
689688

690689
m_syncTextFile->flush();

Source/Processors/RecordNode/BinaryFormat/BinaryRecording.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class BinaryRecording : public RecordEngine
6969
void writeSpike (int electrodeIndex, const Spike* spike);
7070

7171
/** Writes timestamp sync texts */
72-
void writeTimestampSyncText (uint64 streamId, int64 sampleNumber, float sampleRate, String text);
72+
void writeTimestampSyncText (DataStream* stream, int64 sampleNumber, double timestamp, String text);
7373

7474
/** Sets an engine parameter (in this case TTL word writing bool) */
7575
void setParameter (EngineParameter& parameter);

Source/Processors/RecordNode/RecordEngine.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@ class PLUGIN_API RecordEngine
104104
/** Write a spike to disk */
105105
virtual void writeSpike (int electrodeIndex, const Spike* spike) = 0;
106106

107-
/** Handle the timestamp sync text messages*/
108-
virtual void writeTimestampSyncText (uint64 streamId, int64 timestamp, float sourceSampleRate, String text) = 0;
107+
/** Handle the timestamp sync text messages. */
108+
virtual void writeTimestampSyncText (DataStream* stream, int64 sampleNumber, double timestamp, String text) = 0;
109109

110110
// ------------------------------------------------------------
111111
// VIRTUAL METHODS

Source/Processors/RecordNode/RecordThread.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,19 @@ void RecordThread::writeData (const AudioBuffer<float>& dataBuffer,
240240
if (SystemEvent::getBaseType (event) == EventBase::Type::SYSTEM_EVENT)
241241
{
242242
String syncText = SystemEvent::getSyncText (event);
243-
m_engine->writeTimestampSyncText (SystemEvent::getStreamId (event), SystemEvent::getSampleNumber (event), 0.0f, SystemEvent::getSyncText (event));
243+
auto streamId = SystemEvent::getStreamId (event);
244+
DataStream* stream = recordNode->getDataStream(streamId);
245+
int64 sampleNumber = SystemEvent::getSampleNumber (event);
246+
247+
double timestamp;
248+
if (stream == nullptr){
249+
timestamp = 0;
250+
} else if(recordNode->synchronizer.streamGeneratesTimestamps (stream->getKey())){
251+
timestamp = static_cast<double>(sampleNumber) / stream->getSampleRate();
252+
} else {
253+
timestamp = recordNode->synchronizer.convertSampleNumberToTimestamp (stream->getKey(), sampleNumber);
254+
}
255+
m_engine->writeTimestampSyncText (stream, sampleNumber, timestamp, SystemEvent::getSyncText (event));
244256
}
245257
else
246258
{

0 commit comments

Comments
 (0)