void ProcessorGraph::connectProcessors(GenericProcessor* source, GenericProcessor* dest) { if (source == nullptr || dest == nullptr) return; std::cout << " Connecting " << source->getName() << " " << source->getNodeId(); //" channel "; std::cout << " to " << dest->getName() << " " << dest->getNodeId() << std::endl; bool connectContinuous = true; bool connectEvents = true; if (source->getDestNode() != nullptr) { if (source->getDestNode()->isMerger()) { Merger* merger = (Merger*) source->getDestNode(); connectContinuous = merger->sendContinuousForSource(source); connectEvents = merger->sendEventsForSource(source); } } // 1. connect continuous channels if (connectContinuous) { for (int chan = 0; chan < source->getNumOutputs(); chan++) { //std::cout << chan << " "; addConnection(source->getNodeId(), // sourceNodeID chan, // sourceNodeChannelIndex dest->getNodeId(), // destNodeID dest->getNextChannel(true)); // destNodeChannelIndex } } // 2. connect event channel if (connectEvents) { addConnection(source->getNodeId(), // sourceNodeID midiChannelIndex, // sourceNodeChannelIndex dest->getNodeId(), // destNodeID midiChannelIndex); // destNodeChannelIndex } }