Skip to content
Snippets Groups Projects
Commit 7769d154 authored by jsiegle's avatar jsiegle
Browse files

Add support for 64-bit event codes

parent 9ac1f8b8
No related branches found
No related tags found
No related merge requests found
......@@ -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);
......
......@@ -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;
......
......@@ -123,7 +123,7 @@ public:
SourceNode* sn;
int16 eventCode;
uint64 eventCode;
int64 timestamp;
Time timer;
......
......@@ -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?
}
......
......@@ -110,7 +110,7 @@ private:
DataBuffer* inputBuffer;
uint64 timestamp;
int16* eventCodeBuffer;
uint64* eventCodeBuffer;
int* eventChannelState;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment