void ChannelMappingNode::updateSettings() { if (getNumInputs() > 0) channelBuffer.setSize(getNumInputs(), 10000); if (editorIsConfigured) { OwnedArray<Channel> oldChannels; oldChannels.swapWith(channels); channels.clear(); Array<bool> recordStates; settings.numOutputs = 0; for (int i = 0; i < getNumInputs(); i++) { if ((enabledChannelArray[channelArray[i]]) && (channelArray[i] < oldChannels.size())) { oldChannels[channelArray[i]]->mappedIndex = settings.numOutputs; channels.add(oldChannels[channelArray[i]]); recordStates.add(oldChannels[i]->getRecordState()); settings.numOutputs++; } } oldChannels.clearQuick(false); for (int i = 0; i < settings.numOutputs; i++) { channels[i]->setRecordState(recordStates[i]); } } }