@@ -800,9 +800,20 @@ void RecordNode::handleTTLEvent (TTLEventPtr event)
800800 if (recordEvents && isRecording)
801801 {
802802 size_t size = event->getChannelInfo ()->getDataSize () + event->getChannelInfo ()->getTotalEventMetadataSize () + EVENT_BASE_SIZE;
803+ uint16 streamId = event->getStreamId ();
804+
805+ double ts = -1.0 ;
806+ if (synchronizer.streamGeneratesTimestamps (streamKey))
807+ {
808+ ts = getFirstTimestampForBlock (streamId) + (sampleNumber - getFirstSampleNumberForBlock (streamId)) / getDataStream (streamId)->getSampleRate ();
809+ }
810+ else
811+ {
812+ ts = synchronizer.convertSampleNumberToTimestamp (streamKey, sampleNumber);
813+ }
803814
804815 HeapBlock<char > buffer (size);
805- event->setTimestampInSeconds (synchronizer. convertSampleNumberToTimestamp (streamKey, sampleNumber) );
816+ event->setTimestampInSeconds (ts );
806817 event->serialize (buffer, size);
807818
808819 eventQueue->addEvent (EventPacket (buffer, int (size)), sampleNumber);
@@ -835,8 +846,20 @@ void RecordNode::handleSpike (SpikePtr spike)
835846 if (recordSpikes && isRecording)
836847 {
837848 String streamKey = getDataStream (spike->getStreamId ())->getKey ();
838- spike->setTimestampInSeconds (synchronizer.convertSampleNumberToTimestamp (streamKey,
839- spike->getSampleNumber ()));
849+ uint16 streamId = spike->getStreamId ();
850+ int64 sampleNumber = spike->getSampleNumber ();
851+
852+ double ts = -1.0 ;
853+ if (synchronizer.streamGeneratesTimestamps (streamKey))
854+ {
855+ ts = getFirstTimestampForBlock (streamId) + (sampleNumber - getFirstSampleNumberForBlock (streamId)) / getDataStream (streamId)->getSampleRate ();
856+ }
857+ else
858+ {
859+ ts = synchronizer.convertSampleNumberToTimestamp (streamKey, sampleNumber);
860+ }
861+
862+ spike->setTimestampInSeconds (ts);
840863 writeSpike (spike, spike->getChannelInfo ());
841864 eventMonitor->bufferedSpikes ++;
842865 }
@@ -920,7 +943,7 @@ void RecordNode::process (AudioBuffer<float>& buffer)
920943
921944 if (numSamples > 0 )
922945 {
923- if (! stream-> generatesTimestamps ( ))
946+ if (! synchronizer. streamGeneratesTimestamps (streamKey ))
924947 {
925948 first = synchronizer.convertSampleNumberToTimestamp (streamKey, sampleNumber);
926949 second = synchronizer.convertSampleNumberToTimestamp (streamKey, sampleNumber + 1 );
0 commit comments