From 3fed3d36b0ce8f649f212ea6bcad7bb33022f37c Mon Sep 17 00:00:00 2001
From: jsiegle <jsiegle@mit.edu>
Date: Mon, 24 Mar 2014 19:59:29 -0400
Subject: [PATCH] Fix issue with clearing audio connections in ProcessorGraph

---
 Source/Processors/ProcessorGraph.cpp | 38 ++++++++--------------------
 1 file changed, 11 insertions(+), 27 deletions(-)

diff --git a/Source/Processors/ProcessorGraph.cpp b/Source/Processors/ProcessorGraph.cpp
index 5a0b59322..c6a823e35 100644
--- a/Source/Processors/ProcessorGraph.cpp
+++ b/Source/Processors/ProcessorGraph.cpp
@@ -98,23 +98,6 @@ void ProcessorGraph::createDefaultNodes()
     addNode(an, AUDIO_NODE_ID);
     addNode(arn, RESAMPLING_NODE_ID);
 
-    // connect audio subnetwork
-    for (int n = 0; n < 2; n++)
-    {
-
-        addConnection(AUDIO_NODE_ID, n,
-                      RESAMPLING_NODE_ID, n);
-
-        addConnection(RESAMPLING_NODE_ID, n,
-                      OUTPUT_NODE_ID, n);
-
-    }
-
-    addConnection(AUDIO_NODE_ID, midiChannelIndex,
-                  RESAMPLING_NODE_ID, midiChannelIndex);
-
-    //std::cout << "Default nodes created." << std::endl;
-
 }
 
 void ProcessorGraph::updatePointers()
@@ -255,11 +238,18 @@ void ProcessorGraph::clearConnections()
     for (int i = 0; i < getNumNodes(); i++)
     {
         Node* node = getNode(i);
+        int nodeId = node->nodeId;
 
-        if (node->nodeId != OUTPUT_NODE_ID)
+        if (nodeId != OUTPUT_NODE_ID &&
+            nodeId != RESAMPLING_NODE_ID)
         {
-            disconnectNode(node->nodeId);
-            GenericProcessor* p =(GenericProcessor*) node->getProcessor();
+
+            if (nodeId != RECORD_NODE_ID && nodeId != AUDIO_NODE_ID)
+            {
+                disconnectNode(node->nodeId);
+            }
+            
+            GenericProcessor* p = (GenericProcessor*) node->getProcessor();
             p->resetConnections();
 
         }
@@ -391,13 +381,7 @@ void ProcessorGraph::updateConnections(Array<SignalChainTabButton*, CriticalSect
                     newSource->setPathToProcessor(source);
                     source = newSource;
                 }
-                   
-
-                // source = splitters.getFirst()->getSourceNode(); // dest is now the splitter
-                 //splitters.remove(0); // take it out of the array
-                 //dest->switchIO(1); // switch to the other destination
-                 //dest->wasConnected = true; // don't want to re-add splitter
-                // source = dest->getSourceNode(); // splitter is now source
+                
             }
 
         } // end while source != 0
-- 
GitLab