/*
  ==============================================================================

    CMLSProcessorChain.h
    Created: 12 May 2025 10:05:40am
    Author:  Luigi

  ==============================================================================
*/

#pragma once
#include <JuceHeader.h>

class CMLSProcessorChain
{
	public:
		CMLSProcessorChain();
		~CMLSProcessorChain();

		void reset();
		void prepare(const juce::dsp::ProcessSpec&);
		void process(const juce::dsp::ProcessContextReplacing<float>&);
		
		int pushProcessor(juce::dsp::ProcessorBase& processor);
		void muteProcessrInSlot(int slot);
		void unmuteProcessorInSlot(int slot);
		void swapPlaces(int slot1, int slot2);
	
	private:
		std::vector<bool> slots;
		std::vector<juce::dsp::ProcessorBase*> chain;
};