diff --git a/Source/Processors/GenericProcessor/GenericProcessor.cpp b/Source/Processors/GenericProcessor/GenericProcessor.cpp index c6348e85b90be5c7d6b2cd796e59604e0e6276af..d630af9250b2fc1ffa4d3b33790208cfc134850d 100755 --- a/Source/Processors/GenericProcessor/GenericProcessor.cpp +++ b/Source/Processors/GenericProcessor/GenericProcessor.cpp @@ -705,7 +705,7 @@ int GenericProcessor::processEventBuffer(MidiBuffer& events) else { - if (*dataptr == TTL && // a TTL event + if (isWritableEvent(*dataptr) && // a TTL event getNodeId() < 900 && // not handled by a specialized processor (e.g. AudioNode)) *(dataptr+4) > 0) // that's flagged for saving { diff --git a/Source/Processors/GenericProcessor/GenericProcessor.h b/Source/Processors/GenericProcessor/GenericProcessor.h index 936e5fa4ab435ca60b803d20935ce419292e1dd1..cda34d6384fd0cb94e830b5c83ef12412a2181b6 100755 --- a/Source/Processors/GenericProcessor/GenericProcessor.h +++ b/Source/Processors/GenericProcessor/GenericProcessor.h @@ -28,6 +28,9 @@ enum ChannelType {HEADSTAGE_CHANNEL = 0, AUX_CHANNEL = 1, ADC_CHANNEL = 2, EVENT ELECTRODE_CHANNEL = 4, MESSAGE_CHANNEL = 5 }; +//defines which events are writable to files +#define isWritableEvent(ev) (((int)(ev) == GenericProcessor::TTL) || ((int)(ev) == GenericProcessor::MESSAGE) || ((int)(ev) == GenericProcessor::BINARY_MSG)) + #include "../../../JuceLibraryCode/JuceHeader.h" #include "../Editors/GenericEditor.h" #include "../Parameter/Parameter.h" diff --git a/Source/Processors/RecordNode/RecordEngine.h b/Source/Processors/RecordNode/RecordEngine.h index c968242f96f7d01a91fa54d17847bf7333878dfc..44d48163b229eeb3c2531db7125d1261347a23b3 100644 --- a/Source/Processors/RecordNode/RecordEngine.h +++ b/Source/Processors/RecordNode/RecordEngine.h @@ -41,8 +41,6 @@ #define strParameter(i,v) if ((parameter.id == i) && (parameter.type == EngineParameter::STR)) \ v = parameter.strParam.value -#define isWritableEvent(ev) (ev == GenericProcessor::TTL) || (ev == GenericProcessor::MESSAGE) || (ev == GenericProcessor::BINARY_MSG) - struct SpikeRecordInfo { String name; diff --git a/Source/Processors/RecordNode/RecordNode.cpp b/Source/Processors/RecordNode/RecordNode.cpp index 108c04b558d3bac2ac18aa70a3a72d6908f3f779..dd133b6dd85bc74a842f2ca27945ce57c6be34e6 100755 --- a/Source/Processors/RecordNode/RecordNode.cpp +++ b/Source/Processors/RecordNode/RecordNode.cpp @@ -421,7 +421,7 @@ void RecordNode::handleEvent(int eventType, MidiMessage& event, int samplePositi { if (isWritableEvent(eventType)) { - if (event.getRawData()+4 > 0) // saving flag > 0 (i.e., event has not already been processed) + if (*(event.getRawData()+4) > 0) // saving flag > 0 (i.e., event has not already been processed) { EVERY_ENGINE->writeEvent(eventType, event, samplePosition); }