juicysfplugin/Source/SlidersComponent.h

72 lines
2.0 KiB
C
Raw Normal View History

2019-06-30 17:59:07 +08:00
# pragma once
#include "../JuceLibraryCode/JuceHeader.h"
#include "FluidSynthModel.h"
#include "SharesParams.h"
#include "SlidersFragment.h"
2019-06-30 17:59:07 +08:00
using namespace std;
using SliderAttachment = AudioProcessorValueTreeState::SliderAttachment;
2019-06-30 17:59:07 +08:00
class SlidersComponent : public Component,
public SlidersFragment
2019-06-30 17:59:07 +08:00
{
public:
SlidersComponent(
shared_ptr<SharesParams> sharedParams,
AudioProcessorValueTreeState& state,
FluidSynthModel* fluidSynthModel);
2019-06-30 17:59:07 +08:00
~SlidersComponent();
void resized() override;
2019-06-30 18:39:39 +08:00
const int getDesiredWidth();
virtual void acceptMidiControlEvent(int controller, int value) override;
// virtual void updateAttackSlider(int value) override;
// virtual void updateDecaySlider(int value) override;
// virtual void updateSustainSlider(int value) override;
// virtual void updateReleaseSlider(int value) override;
// virtual void updateFilterCutOffSlider(int value) override;
// virtual void updateFilterResonanceSlider(int value) override;
2019-06-30 17:59:07 +08:00
private:
std::function<void()> makeSliderListener(Slider& slider, int controller);
shared_ptr<SharesParams> sharedParams;
AudioProcessorValueTreeState& state;
FluidSynthModel* fluidSynthModel;
2019-06-30 17:59:07 +08:00
GroupComponent envelopeGroup;
Slider attackSlider;
Label attackLabel;
unique_ptr<SliderAttachment> attackSliderAttachment;
2019-06-30 17:59:07 +08:00
Slider decaySlider;
Label decayLabel;
unique_ptr<SliderAttachment> decaySliderAttachment;
2019-06-30 17:59:07 +08:00
Slider sustainSlider;
Label sustainLabel;
unique_ptr<SliderAttachment> sustainSliderAttachment;
2019-06-30 17:59:07 +08:00
Slider releaseSlider;
Label releaseLabel;
unique_ptr<SliderAttachment> releaseSliderAttachment;
2019-06-30 17:59:07 +08:00
GroupComponent filterGroup;
Slider filterCutOffSlider;
Label filterCutOffLabel;
unique_ptr<SliderAttachment> filterCutOffSliderAttachment;
2019-06-30 17:59:07 +08:00
Slider filterResonanceSlider;
Label filterResonanceLabel;
unique_ptr<SliderAttachment> filterResonanceSliderAttachment;
2019-06-30 17:59:07 +08:00
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (SlidersComponent)
};