diff --git a/Source/Processors/Channel/Channel.cpp b/Source/Processors/Channel/Channel.cpp index 843cc340c7f5977d0bf913ddbec95e68d5f7e97a..b66b9d32f0e47788014a59c6c9a75028b37bfeed 100644 --- a/Source/Processors/Channel/Channel.cpp +++ b/Source/Processors/Channel/Channel.cpp @@ -24,7 +24,7 @@ #include "Channel.h" -Channel::Channel(GenericProcessor* p, int n, ChannelType t) : index(n), processor(p), type(t), nodeIndex(0) +Channel::Channel(GenericProcessor* p, int n, ChannelType t) : index(n), processor(p), type(t), nodeIndex(0), mappedIndex(n) { reset(); } @@ -54,6 +54,7 @@ Channel::Channel(const Channel& ch) { index = ch.index; nodeIndex = ch.nodeIndex; + mappedIndex = ch.mappedIndex; nodeId = ch.nodeId; processor = ch.processor; sampleRate = ch.sampleRate; diff --git a/Source/Processors/Channel/Channel.h b/Source/Processors/Channel/Channel.h index da60b7105b2a4481b7d8f361c3b173e1e861b575..af53777607ddace822aa8a1ca8780e7e851a35ec 100644 --- a/Source/Processors/Channel/Channel.h +++ b/Source/Processors/Channel/Channel.h @@ -111,6 +111,9 @@ public: /** Channel index within the source processor relative to channel type */ int index; + /** Channel index which can be altered by the processor, useful with remappers*/ + int mappedIndex; + /** The ID of the channel's processor.*/ int nodeId; diff --git a/Source/Processors/ChannelMappingNode/ChannelMappingNode.cpp b/Source/Processors/ChannelMappingNode/ChannelMappingNode.cpp index 78f82c8c9030f28db4ef99d5fbdef26621fe78c8..1cdbfd053de57a13748648b2ec2b494eaf65c53b 100644 --- a/Source/Processors/ChannelMappingNode/ChannelMappingNode.cpp +++ b/Source/Processors/ChannelMappingNode/ChannelMappingNode.cpp @@ -80,6 +80,7 @@ void ChannelMappingNode::updateSettings() { if (enabledChannelArray[channelArray[i]]) { + oldChannels[channelArray[i]]->mappedIndex = settings.numOutputs; channels.add(oldChannels[channelArray[i]]); oldChannels.set(channelArray[i],nullptr,false); settings.numOutputs++; diff --git a/Source/Processors/GenericProcessor/GenericProcessor.cpp b/Source/Processors/GenericProcessor/GenericProcessor.cpp index 4b37e74f7574e055ce356036e120fb73bc4ef8f6..08191048b8de2d80f29bf2985b771c3f8bd78930 100755 --- a/Source/Processors/GenericProcessor/GenericProcessor.cpp +++ b/Source/Processors/GenericProcessor/GenericProcessor.cpp @@ -333,6 +333,7 @@ void GenericProcessor::update() Channel* ch = new Channel(*sourceChan); ch->setProcessor(this); ch->nodeIndex = i; + ch->mappedIndex = i; if (i < recordStatus.size()) { diff --git a/Source/Processors/RecordNode/OriginalRecording.cpp b/Source/Processors/RecordNode/OriginalRecording.cpp index 4ea3446e527f30ee2d63ddd8e76338053c8dae5b..e463d93f854e2996659d2a19a717f74be0d294b8 100644 --- a/Source/Processors/RecordNode/OriginalRecording.cpp +++ b/Source/Processors/RecordNode/OriginalRecording.cpp @@ -253,7 +253,10 @@ String OriginalRecording::getFileName(Channel* ch) filename += ch->nodeId; filename += "_"; - filename += ch->name; + if (renameFiles) + filename += renamedPrefix + String(ch->mappedIndex + 1); + else + filename += ch->name; if (experimentNumber > 1) { @@ -698,6 +701,8 @@ void OriginalRecording::writeXml() void OriginalRecording::setParameter(EngineParameter& parameter) { boolParameter(0, separateFiles); + boolParameter(1, renameFiles); + strParameter(2, renamedPrefix); } RecordEngineManager* OriginalRecording::getEngineManager() @@ -706,5 +711,9 @@ RecordEngineManager* OriginalRecording::getEngineManager() EngineParameter* param; param = new EngineParameter(EngineParameter::BOOL,0,"Separate Files",false); man->addParameter(param); + param = new EngineParameter(EngineParameter::BOOL, 1, "Rename files based on channel order", false); + man->addParameter(param); + param = new EngineParameter(EngineParameter::STR, 2, "Renamed files prefix", "CH"); + man->addParameter(param); return man; } \ No newline at end of file diff --git a/Source/Processors/RecordNode/OriginalRecording.h b/Source/Processors/RecordNode/OriginalRecording.h index 5a1447167d4f763e3c84f46c46120ff30607e49c..2048f1b02637a708b89f1520aeebf4733745dd1e 100644 --- a/Source/Processors/RecordNode/OriginalRecording.h +++ b/Source/Processors/RecordNode/OriginalRecording.h @@ -82,6 +82,9 @@ private: int recordingNumber; int experimentNumber; + bool renameFiles; + String renamedPrefix; + /** Holds data that has been converted from float to int16 before saving. */