From dd80c5ec007d50faf0d63e5504315ba20a96fa15 Mon Sep 17 00:00:00 2001 From: Aaron Cuevas Lopez <aacuelo@teleco.upv.es> Date: Tue, 29 Aug 2017 20:41:57 +0200 Subject: [PATCH] Update event channel handling in recordnode --- Source/Plugins/NWBFormat/NWBRecording.cpp | 16 +++++++--------- Source/Plugins/NWBFormat/NWBRecording.h | 1 - .../Processors/RecordNode/EngineConfigWindow.cpp | 2 +- Source/Processors/RecordNode/OriginalRecording.h | 2 +- Source/Processors/RecordNode/RecordEngine.cpp | 9 +++++++++ Source/Processors/RecordNode/RecordEngine.h | 7 ++++--- 6 files changed, 22 insertions(+), 15 deletions(-) diff --git a/Source/Plugins/NWBFormat/NWBRecording.cpp b/Source/Plugins/NWBFormat/NWBRecording.cpp index 081a4ff9b..e729934bb 100644 --- a/Source/Plugins/NWBFormat/NWBRecording.cpp +++ b/Source/Plugins/NWBFormat/NWBRecording.cpp @@ -98,6 +98,10 @@ for (int i = 0; i < nEvents; i++) eventChannels.add(getEventChannel(i)); + int nSpikes = getNumRecordedSpikes(); + for (int i = 0; i < nSpikes; i++) + spikeChannels.add(getSpikeChannel(i)); + //open the file recordFile->open(getNumRecordedChannels() + continuousChannels.size() + eventChannels.size() + spikeChannels.size()); //total channels + timestamp arrays, to create a big enough buffer @@ -113,19 +117,14 @@ recordFile->stopRecording(); recordFile->close(); recordFile = nullptr; - resetChannels(false); + resetChannels(); } - void NWBRecordEngine::resetChannels() - { - resetChannels(true); - } - void NWBRecordEngine::resetChannels(bool resetSpikes) + void NWBRecordEngine::resetChannels() { - if (resetSpikes) - spikeChannels.clear(); + spikeChannels.clear(); eventChannels.clear(); continuousChannels.clear(); datasetIndexes.clear(); @@ -171,7 +170,6 @@ void NWBRecordEngine::writeTimestampSyncText(uint16 sourceID, uint16 sourceIdx, void NWBRecordEngine::addSpikeElectrode(int index,const SpikeChannel* elec) { - spikeChannels.add(elec); } void NWBRecordEngine::writeSpike(int electrodeIndex, const SpikeEvent* spike) diff --git a/Source/Plugins/NWBFormat/NWBRecording.h b/Source/Plugins/NWBFormat/NWBRecording.h index e521a34c3..e74219d6c 100644 --- a/Source/Plugins/NWBFormat/NWBRecording.h +++ b/Source/Plugins/NWBFormat/NWBRecording.h @@ -48,7 +48,6 @@ static RecordEngineManager* getEngineManager(); private: - void resetChannels(bool resetSpikes); ScopedPointer<NWBFile> recordFile; Array<int> datasetIndexes; Array<int> writeChannelIndexes; diff --git a/Source/Processors/RecordNode/EngineConfigWindow.cpp b/Source/Processors/RecordNode/EngineConfigWindow.cpp index 309748230..ffd7e0054 100644 --- a/Source/Processors/RecordNode/EngineConfigWindow.cpp +++ b/Source/Processors/RecordNode/EngineConfigWindow.cpp @@ -78,7 +78,7 @@ EngineParameterComponent::EngineParameterComponent(EngineParameter& param) addAndMakeVisible(lab); control = lab; } - this->setTooltip(param.name); + this->setTooltip(name); } EngineParameterComponent::~EngineParameterComponent() diff --git a/Source/Processors/RecordNode/OriginalRecording.h b/Source/Processors/RecordNode/OriginalRecording.h index 3730992ec..849e479f1 100644 --- a/Source/Processors/RecordNode/OriginalRecording.h +++ b/Source/Processors/RecordNode/OriginalRecording.h @@ -44,7 +44,7 @@ public: OriginalRecording(); ~OriginalRecording(); - void setParameter(EngineParameter& parameter); + void setParameter(EngineParameter& parameter) override; String getEngineID() const override; void openFiles(File rootFolder, int experimentNumber, int recordingNumber) override; void closeFiles() override; diff --git a/Source/Processors/RecordNode/RecordEngine.cpp b/Source/Processors/RecordNode/RecordEngine.cpp index fc9a8db2b..c627fd54b 100644 --- a/Source/Processors/RecordNode/RecordEngine.cpp +++ b/Source/Processors/RecordNode/RecordEngine.cpp @@ -108,6 +108,11 @@ int RecordEngine::getNumRecordedEvents() const return AccessClass::getProcessorGraph()->getRecordNode()->getTotalEventChannels(); } +int RecordEngine::getNumRecordedSpikes() const +{ + return AccessClass::getProcessorGraph()->getRecordNode()->getTotalSpikeChannels(); +} + void RecordEngine::registerSpikeSource (const GenericProcessor* processor) {} int RecordEngine::getNumRecordedProcessors() const @@ -186,6 +191,10 @@ EngineParameter::EngineParameter (EngineParameter::EngineParameterType paramType { strParam.value = defaultValue; } + else if (paramType == MULTI) + { + multiParam.value = defaultValue; + } } diff --git a/Source/Processors/RecordNode/RecordEngine.h b/Source/Processors/RecordNode/RecordEngine.h index b75e45e06..d6234c07d 100644 --- a/Source/Processors/RecordNode/RecordEngine.h +++ b/Source/Processors/RecordNode/RecordEngine.h @@ -167,7 +167,7 @@ protected: /** Generate a Matlab-compatible datestring */ String generateDateString() const; - /** Gets the current block's first timestamp for a given channel */ + /** Gets the current block's first timestamp for a given recorded channel */ int64 getTimestamp (int channel) const; /** Gets the actual channel number from a recorded channel index */ @@ -180,8 +180,9 @@ protected: (right now all channels are recorded) */ int getNumRecordedEvents() const; - /** TODO: to fill when the probe system is implemented*/ - //int getNumRecordedSpikes() const; + /** Gets the number of recorded spike channels + (right now all channels are recorded) */ + int getNumRecordedSpikes() const; /** Gets the number of processors being recorded */ -- GitLab