From d8cfb037980ccddeafe154209b65e81528c401bf Mon Sep 17 00:00:00 2001 From: Aaron Cuevas Lopez <aacuelo@teleco.upv.es> Date: Tue, 11 Jul 2017 04:46:58 +0200 Subject: [PATCH] Fix channel duplication bug inside record node --- .../GenericProcessor/GenericProcessor.cpp | 13 +++++++------ Source/Processors/RecordNode/RecordNode.cpp | 6 ++++-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Source/Processors/GenericProcessor/GenericProcessor.cpp b/Source/Processors/GenericProcessor/GenericProcessor.cpp index 0e41d7b4d..b0f11fd1e 100755 --- a/Source/Processors/GenericProcessor/GenericProcessor.cpp +++ b/Source/Processors/GenericProcessor/GenericProcessor.cpp @@ -333,19 +333,20 @@ void GenericProcessor::update() dataChannelArray.add (ch); } - for (int i = 0; i < sourceNode->eventChannelArray.size(); ++i) - { - EventChannel* sourceChan = sourceNode->eventChannelArray[i]; - EventChannel* ch = new EventChannel (*sourceChan); + for (int i = 0; i < sourceNode->eventChannelArray.size(); ++i) + { + EventChannel* sourceChan = sourceNode->eventChannelArray[i]; + EventChannel* ch = new EventChannel(*sourceChan); ch->eventMetaDataLock = true; - eventChannelArray.add (ch); - } + eventChannelArray.add(ch); + } for (int i = 0; i < sourceNode->spikeChannelArray.size(); ++i) { SpikeChannel* sourceChan = sourceNode->spikeChannelArray[i]; SpikeChannel* ch = new SpikeChannel(*sourceChan); ch->eventMetaDataLock = true; spikeChannelArray.add(ch); + } for (int i = 0; i < sourceNode->configurationObjectArray.size(); ++i) { diff --git a/Source/Processors/RecordNode/RecordNode.cpp b/Source/Processors/RecordNode/RecordNode.cpp index 592f1cf8a..b0c04492b 100755 --- a/Source/Processors/RecordNode/RecordNode.cpp +++ b/Source/Processors/RecordNode/RecordNode.cpp @@ -159,8 +159,10 @@ void RecordNode::addInputChannel(const GenericProcessor* sourceNode, int chan) for (int n = 0; n < sourceNode->getTotalEventChannels(); n++) { - - eventChannelArray.add(new EventChannel(*sourceNode->getEventChannel(n))); + const EventChannel* orig = sourceNode->getEventChannel(n); + //only add to the record node the events originating from this processor, to avoid duplicates + if (orig->getSourceNodeID() == sourceNode->getNodeId()) + eventChannelArray.add(new EventChannel(*orig)); } -- GitLab