Skip to content
Snippets Groups Projects
Commit 8c03babb authored by jsiegle's avatar jsiegle
Browse files

Fix issues with saving spikes

parent 61204918
No related branches found
No related tags found
No related merge requests found
......@@ -84,9 +84,7 @@ void ChannelMappingNode::process(AudioSampleBuffer& buffer,
{
// use copy constructor to set the data to refer to
channelBuffer = buffer; //.setDataToReferTo(buffer.getArrayOfChannels(),
// buffer.getNumChannels(),
// buffer.getNumSamples());
channelBuffer = buffer;
// copy it back into the buffer according to the channel mapping
buffer.clear();
......
......@@ -335,7 +335,7 @@ void SpikeDetector::addSpikeEvent(SpikeObject* s, MidiBuffer& eventBuffer, int p
s->eventType = SPIKE_EVENT_CODE;
int numBytes = packSpike(s, spikeBuffer, 256);
int numBytes = packSpike(s, spikeBuffer, MAX_SPIKE_BUFFER_LEN);
eventBuffer.addEvent(spikeBuffer, numBytes, peakIndex);
......@@ -349,10 +349,7 @@ void SpikeDetector::addWaveformToSpikeObject(SpikeObject* s,
int spikeLength = electrodes[electrodeNumber]->prePeakSamples +
+ electrodes[electrodeNumber]->postPeakSamples;
//uint8 dataSize = spikeLength*2;
// uint8 data[dataSize];
// uint8* dataptr = data;
s->timestamp = timestamp + peakIndex;
s->nSamples = spikeLength;
......@@ -399,6 +396,19 @@ void SpikeDetector::addWaveformToSpikeObject(SpikeObject* s,
sampleIndex -= spikeLength; // reset sample index
}
void SpikeDetector::handleEvent(int eventType, MidiMessage& event, int sampleNum)
{
if (eventType == TIMESTAMP)
{
const uint8* dataptr = event.getRawData();
memcpy(&timestamp, dataptr + 4, 8); // remember to skip first four bytes
}
}
void SpikeDetector::process(AudioSampleBuffer& buffer,
......@@ -410,6 +420,8 @@ void SpikeDetector::process(AudioSampleBuffer& buffer,
Electrode* electrode;
dataBuffer = buffer;
checkForEvents(events);
//std::cout << dataBuffer.getMagnitude(0,nSamples) << std::endl;
for (int i = 0; i < electrodes.size(); i++)
......
......@@ -167,6 +167,7 @@ private:
};
uint8_t* spikeBuffer;///[256];
uint64_t timestamp;
Array<Electrode*> electrodes;
......@@ -175,6 +176,8 @@ private:
// int& currentChannel,
// MidiBuffer& eventBuffer);
void handleEvent(int eventType, MidiMessage& event, int sampleNum);
void addSpikeEvent(SpikeObject* s, MidiBuffer& eventBuffer, int peakIndex);
void addWaveformToSpikeObject(SpikeObject* s,
int& peakIndex,
......
......@@ -540,9 +540,9 @@ void SpikePlot::writeSpike(const SpikeObject& s)
{
packSpike(&s, spikeBuffer, 256);
packSpike(&s, spikeBuffer, MAX_SPIKE_BUFFER_LEN);
fwrite(spikeBuffer, 1, 256, file);
fwrite(spikeBuffer, 1, MAX_SPIKE_BUFFER_LEN, file);
}
......@@ -565,7 +565,9 @@ String SpikePlot::generateHeader()
header += name;
header += "';\n";
header += "header.channelType = 'Electrode';\n";
header += "header.num_channels = ";
header += nChannels;
header += ";\n";
header = header.paddedRight(' ', HEADER_SIZE);
......
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