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]);
		}
	}
}