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

    This file was auto-generated by the Introjucer!

    It contains the basic startup code for a Juce application.

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

#ifndef __PLUGINEDITOR_H_F74EDC4B__
#define __PLUGINEDITOR_H_F74EDC4B__

#include "PluginProcessor.h"
#include "TremoloBufferView.h"

#include "PluginLookAndFeel.h"


//==============================================================================
/**
*/
class TremoloAudioProcessorEditor : public AudioProcessorEditor,
                                    public Slider::Listener,
                                    public ChangeListener
{
public:
    TremoloAudioProcessorEditor (TremoloAudioProcessor* ownerFilter);
    ~TremoloAudioProcessorEditor() override;

    //==============================================================================
    // This is just a standard Juce paint method...
    void paint (Graphics& g) override;

    void resized() override;

    //void valueChanged (Value& value);
    void changeListenerCallback (ChangeBroadcaster* source) override;

    void sliderValueChanged (Slider* slider) override;

    void sliderDragStarted (Slider* slider) override;

    void sliderDragEnded (Slider* slider) override;

private:
    //==============================================================================
    TremoloAudioProcessor* ownerFilter;
    PluginLookAndFeel lookAndFeel;

    OwnedArray<Slider> sliders;
    OwnedArray<Label> labels;

    ScopedPointer<TremoloBufferView> bufferViewL;
    ScopedPointer<TremoloBufferView> bufferViewR;

    ScopedPointer<Label> bufferViewLLabel;
    ScopedPointer<Label> bufferViewRLabel;

    //==============================================================================
    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (TremoloAudioProcessorEditor);
};


#endif  // __PLUGINEDITOR_H_F74EDC4B__
