From 7769d1547b0eedcf2ba4ae920af5901c72b9b155 Mon Sep 17 00:00:00 2001 From: jsiegle <joshs@alleninstitute.org> Date: Mon, 27 Oct 2014 12:46:03 -0700 Subject: [PATCH] Add support for 64-bit event codes --- Source/Processors/DataThreads/DataBuffer.cpp | 12 ++++++------ Source/Processors/DataThreads/DataBuffer.h | 6 +++--- Source/Processors/DataThreads/DataThread.h | 2 +- Source/Processors/SourceNode/SourceNode.cpp | 2 +- Source/Processors/SourceNode/SourceNode.h | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Source/Processors/DataThreads/DataBuffer.cpp b/Source/Processors/DataThreads/DataBuffer.cpp index 3eabce007..2f4be726a 100755 --- a/Source/Processors/DataThreads/DataBuffer.cpp +++ b/Source/Processors/DataThreads/DataBuffer.cpp @@ -27,7 +27,7 @@ DataBuffer::DataBuffer(int chans, int size) : abstractFifo(size), buffer(chans, size), numChans(chans) { timestampBuffer = new int64[size]; - eventCodeBuffer = new int16[size]; + eventCodeBuffer = new uint64[size]; } @@ -44,12 +44,12 @@ void DataBuffer::resize(int chans, int size) { buffer.setSize(chans, size); timestampBuffer = new int64[size]; - eventCodeBuffer = new int16[size]; + eventCodeBuffer = new uint64[size]; numChans = chans; } -void DataBuffer::addToBuffer(float* data, int64* timestamps, int16* eventCodes, int numItems) +void DataBuffer::addToBuffer(float* data, int64* timestamps, uint64* eventCodes, int numItems) { // writes one sample for all channels int startIndex1, blockSize1, startIndex2, blockSize2; @@ -76,7 +76,7 @@ int DataBuffer::getNumSamples() } -int DataBuffer::readAllFromBuffer(AudioSampleBuffer& data, uint64* timestamp, int16* eventCodes, int maxSize) +int DataBuffer::readAllFromBuffer(AudioSampleBuffer& data, uint64* timestamp, uint64* eventCodes, int maxSize) { // check to see if the maximum size is smaller than the total number of available ints @@ -105,7 +105,7 @@ int DataBuffer::readAllFromBuffer(AudioSampleBuffer& data, uint64* timestamp, in } memcpy(timestamp, timestampBuffer+startIndex1, 8); - memcpy(eventCodes, eventCodeBuffer+startIndex1, blockSize1*2); + memcpy(eventCodes, eventCodeBuffer+startIndex1, blockSize1*8); } else { @@ -124,7 +124,7 @@ int DataBuffer::readAllFromBuffer(AudioSampleBuffer& data, uint64* timestamp, in startIndex2, // sourceStartSample blockSize2); // numSamples } - memcpy(eventCodes + blockSize1, eventCodeBuffer+startIndex2, blockSize2*2); + memcpy(eventCodes + blockSize1, eventCodeBuffer+startIndex2, blockSize2*8); } abstractFifo.finishedRead(numItems); diff --git a/Source/Processors/DataThreads/DataBuffer.h b/Source/Processors/DataThreads/DataBuffer.h index 7bcb29a0b..2e238a605 100755 --- a/Source/Processors/DataThreads/DataBuffer.h +++ b/Source/Processors/DataThreads/DataBuffer.h @@ -45,13 +45,13 @@ public: void clear(); /** Add an array of floats to the buffer.*/ - void addToBuffer(float* data, int64* ts, int16* eventCodes, int numItems); + void addToBuffer(float* data, int64* ts, uint64* eventCodes, int numItems); /** Returns the number of samples currently available in the buffer.*/ int getNumSamples(); /** Copies as many samples as possible from the DataBuffer to an AudioSampleBuffer.*/ - int readAllFromBuffer(AudioSampleBuffer& data, uint64* ts, int16* eventCodes, int maxSize); + int readAllFromBuffer(AudioSampleBuffer& data, uint64* ts, uint64* eventCodes, int maxSize); /** Resizes the data buffer */ void resize(int chans, int size); @@ -61,7 +61,7 @@ private: AudioSampleBuffer buffer; int64* timestampBuffer; - int16* eventCodeBuffer; + uint64* eventCodeBuffer; int numChans; diff --git a/Source/Processors/DataThreads/DataThread.h b/Source/Processors/DataThreads/DataThread.h index db3d1bf79..e22a48622 100755 --- a/Source/Processors/DataThreads/DataThread.h +++ b/Source/Processors/DataThreads/DataThread.h @@ -123,7 +123,7 @@ public: SourceNode* sn; - int16 eventCode; + uint64 eventCode; int64 timestamp; Time timer; diff --git a/Source/Processors/SourceNode/SourceNode.cpp b/Source/Processors/SourceNode/SourceNode.cpp index f0785f505..c6039f53f 100755 --- a/Source/Processors/SourceNode/SourceNode.cpp +++ b/Source/Processors/SourceNode/SourceNode.cpp @@ -92,7 +92,7 @@ SourceNode::SourceNode(const String& name_) startTimer(sourceCheckInterval); timestamp = 0; - eventCodeBuffer = new int16[10000]; //10000 samples per buffer max? + eventCodeBuffer = new uint64[10000]; //10000 samples per buffer max? } diff --git a/Source/Processors/SourceNode/SourceNode.h b/Source/Processors/SourceNode/SourceNode.h index 535eed558..494481fb2 100755 --- a/Source/Processors/SourceNode/SourceNode.h +++ b/Source/Processors/SourceNode/SourceNode.h @@ -110,7 +110,7 @@ private: DataBuffer* inputBuffer; uint64 timestamp; - int16* eventCodeBuffer; + uint64* eventCodeBuffer; int* eventChannelState; -- GitLab