|
2 | 2 |
|
3 | 3 | #include "../../UI/EditorViewport.h" |
4 | 4 | #include "../../UI/ControlPanel.h" |
| 5 | +#include "../../Processors/MessageCenter/MessageCenterEditor.h" |
5 | 6 | #include "BinaryFormat/BinaryRecording.h" |
6 | 7 | #include "OpenEphysFormat/OriginalRecording.h" |
7 | 8 |
|
@@ -40,7 +41,8 @@ RecordNode::RecordNode() |
40 | 41 | hasRecorded(false), |
41 | 42 | settingsNeeded(false), |
42 | 43 | receivedSoftwareTime(false), |
43 | | - numSubprocessors(0) |
| 44 | + numSubprocessors(0), |
| 45 | + isConnectedToMessageCenter(false) |
44 | 46 | { |
45 | 47 | setProcessorType(PROCESSOR_TYPE_RECORD_NODE); |
46 | 48 |
|
@@ -69,6 +71,16 @@ RecordNode::~RecordNode() |
69 | 71 | { |
70 | 72 | } |
71 | 73 |
|
| 74 | +void RecordNode::connectToMessageCenter() |
| 75 | +{ |
| 76 | + |
| 77 | + const EventChannel* orig = AccessClass::getMessageCenter()->messageCenter->getEventChannel(0); |
| 78 | + eventChannelArray.add(new EventChannel(*orig)); |
| 79 | + |
| 80 | + isConnectedToMessageCenter = true; |
| 81 | + |
| 82 | +} |
| 83 | + |
72 | 84 | void RecordNode::addInputChannel(const GenericProcessor* sourceNode, int chan) |
73 | 85 | { |
74 | 86 | // not getting called |
@@ -341,6 +353,8 @@ void RecordNode::updateSubprocessorMap() |
341 | 353 | eventMap.clear(); |
342 | 354 | syncChannelMap.clear(); |
343 | 355 | syncOrderMap.clear(); |
| 356 | + |
| 357 | + LOGD("Record Node: ", getNodeId(), " has ", eventChannelArray.size(), " channels"); |
344 | 358 | for (int ch = 0; ch < eventChannelArray.size(); ch++) |
345 | 359 | { |
346 | 360 |
|
@@ -483,6 +497,9 @@ void RecordNode::startRecording() |
483 | 497 |
|
484 | 498 | hasRecorded = true; |
485 | 499 |
|
| 500 | + if (!isConnectedToMessageCenter) |
| 501 | + connectToMessageCenter(); |
| 502 | + |
486 | 503 | /* Set write properties */ |
487 | 504 | setFirstBlock = false; |
488 | 505 |
|
@@ -557,6 +574,15 @@ void RecordNode::setRecordSpikes(bool recordSpikes) |
557 | 574 | void RecordNode::handleEvent(const EventChannel* eventInfo, const MidiMessage& event, int samplePosition) |
558 | 575 | { |
559 | 576 |
|
| 577 | + //Ignore any duplicate messages from MessageCenter |
| 578 | + if (Event::getSourceID(event) > 900) |
| 579 | + { |
| 580 | + if (!msgCenterMessages.contains(Event::getTimestamp(event))) |
| 581 | + msgCenterMessages.add(Event::getTimestamp(event)); |
| 582 | + else |
| 583 | + return; |
| 584 | + } |
| 585 | + |
560 | 586 | eventMonitor->receivedEvents++; |
561 | 587 |
|
562 | 588 | if (recordEvents) |
|
0 commit comments