/*
==============================================================================
This is an automatically generated GUI class created by the Projucer!
Be careful when adding custom code to these files, as only the code within
the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded
and re-saved.
Created with Projucer version: 5.4.4
------------------------------------------------------------------------------
The Projucer is part of the JUCE library.
Copyright (c) 2017 - ROLI Ltd.
==============================================================================
*/
//[Headers] You can add your own extra header files here...
#include "AudioParameters.h"
//[/Headers]
#include "GuiReverb.h"
//[MiscUserDefs] You can add your own user definitions and misc code here...
//[/MiscUserDefs]
//==============================================================================
GUIReverb::GUIReverb ( const String& name, const String & text)
: GroupComponent (name, text)
{
//[Constructor_pre] You can add your own custom stuff here..
molossLNF = std::make_unique< MolossLookNFeel>(MolossLookNFeel::GREEN_LNF);
setLookAndFeel(molossLNF.get());
//[/Constructor_pre]
setName ("GUIReverb");
labelDamping.reset (new Label ("labelDamping",
TRANS("Damping")));
addAndMakeVisible (labelDamping.get());
labelDamping->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular"));
labelDamping->setJustificationType (Justification::centred);
labelDamping->setEditable (false, false, false);
labelDamping->setColour (TextEditor::textColourId, Colours::black);
labelDamping->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
reverbDamping.reset (new Slider ("reverbDamping"));
addAndMakeVisible (reverbDamping.get());
reverbDamping->setTooltip (TRANS("Reverb damping"));
reverbDamping->setRange (0, 100, 1);
reverbDamping->setSliderStyle (Slider::RotaryVerticalDrag);
reverbDamping->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
labelSize.reset (new Label ("labelSize",
TRANS("Size")));
addAndMakeVisible (labelSize.get());
labelSize->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular"));
labelSize->setJustificationType (Justification::centred);
labelSize->setEditable (false, false, false);
labelSize->setColour (TextEditor::textColourId, Colours::black);
labelSize->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
reverbSize.reset (new Slider ("reverbSize"));
addAndMakeVisible (reverbSize.get());
reverbSize->setTooltip (TRANS("Reverb room size"));
reverbSize->setRange (0, 100, 1);
reverbSize->setSliderStyle (Slider::RotaryVerticalDrag);
reverbSize->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
labelreverbMix.reset (new Label ("labelreverbMix",
TRANS("Mix")));
addAndMakeVisible (labelreverbMix.get());
labelreverbMix->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular"));
labelreverbMix->setJustificationType (Justification::centred);
labelreverbMix->setEditable (false, false, false);
labelreverbMix->setColour (TextEditor::textColourId, Colours::black);
labelreverbMix->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
reverbMix.reset (new Slider ("reverbMix"));
addAndMakeVisible (reverbMix.get());
reverbMix->setTooltip (TRANS("Amount of reverb in output"));
reverbMix->setRange (0, 100, 1);
reverbMix->setSliderStyle (Slider::RotaryVerticalDrag);
reverbMix->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
labeWidth.reset (new Label ("labeWidth",
TRANS("Width")));
addAndMakeVisible (labeWidth.get());
labeWidth->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular"));
labeWidth->setJustificationType (Justification::centred);
labeWidth->setEditable (false, false, false);
labeWidth->setColour (TextEditor::textColourId, Colours::black);
labeWidth->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
reverbWidth.reset (new Slider ("reverbWidth"));
addAndMakeVisible (reverbWidth.get());
reverbWidth->setTooltip (TRANS("Reverb width"));
reverbWidth->setRange (0, 100, 1);
reverbWidth->setSliderStyle (Slider::RotaryVerticalDrag);
reverbWidth->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
//[UserPreSize]
//[/UserPreSize]
setSize (600, 400);
//[Constructor] You can add your own custom stuff here..
//[/Constructor]
}
GUIReverb::~GUIReverb()
{
//[Destructor_pre]. You can add your own custom destruction code here..
mAttachment = nullptr;
setLookAndFeel(nullptr);
//[/Destructor_pre]
labelDamping = nullptr;
reverbDamping = nullptr;
labelSize = nullptr;
reverbSize = nullptr;
labelreverbMix = nullptr;
reverbMix = nullptr;
labeWidth = nullptr;
reverbWidth = nullptr;
//[Destructor]. You can add your own custom destruction code here..
//[/Destructor]
}
//==============================================================================
void GUIReverb::paint (Graphics& g)
{
//[UserPrePaint] Add your own custom painting code here..
GroupComponent::paint(g);
//[/UserPrePaint]
//[UserPaint] Add your own custom painting code here..
//[/UserPaint]
}
void GUIReverb::resized()
{
//[UserPreResize] Add your own custom resize code here..
//[/UserPreResize]
labelDamping->setBounds (104 - (73 / 2), (27 - (24 / 2)) + 24 / 2 - (24 / 2), 73, 24);
reverbDamping->setBounds (104 - (56 / 2), (67 - (72 / 2)) + 72 / 2 - (72 / 2), 56, 72);
labelSize->setBounds (38 - (73 / 2), 27 - (24 / 2), 73, 24);
reverbSize->setBounds (38 - (56 / 2), 67 - (72 / 2), 56, 72);
labelreverbMix->setBounds (236 - (73 / 2), (27 - (24 / 2)) + 24 / 2 - (24 / 2), 73, 24);
reverbMix->setBounds (236 - (56 / 2), (67 - (72 / 2)) + 72 / 2 - (72 / 2), 56, 72);
labeWidth->setBounds (170 - (73 / 2), (27 - (24 / 2)) + 24 / 2 - (24 / 2), 73, 24);
reverbWidth->setBounds (170 - (56 / 2), (67 - (72 / 2)) + 72 / 2 - (72 / 2), 56, 72);
//[UserResized] Add your own custom resize handling here..
//[/UserResized]
}
//[MiscUserCode] You can add your own definitions of your custom methods or any other code here...
void GUIReverb::setParameters(SynthParameters * paramSynth) {
mSynthParameters = paramSynth;
mAttachment = std::make_unique<GuiAttachment>(mSynthParameters->getProcessor());
updateFromParameters();
}
void GUIReverb::updateFromParameters()
{
mAttachment->attachSlider(mSynthParameters->mReverbDamping, *reverbDamping);
mAttachment->attachSlider(mSynthParameters->mReverbMix, *reverbMix);
mAttachment->attachSlider(mSynthParameters->mReverbSize, *reverbSize);
mAttachment->attachSlider(mSynthParameters->mReverbWidth, *reverbWidth);
}
//[/MiscUserCode]
//==============================================================================
#if 0
/* -- Projucer information section --
This is where the Projucer stores the metadata that describe this GUI layout, so
make changes in here at your peril!
BEGIN_JUCER_METADATA
<JUCER_COMPONENT documentType="Component" className="GUIReverb" componentName="GUIReverb"
parentClasses="public GroupComponent" constructorParams=" const String& name, const String & text"
variableInitialisers="GroupComponent (name, text)" snapPixels="8"
snapActive="1" snapShown="1" overlayOpacity="0.330" fixedSize="0"
initialWidth="600" initialHeight="400">
<BACKGROUND backgroundColour="323e44"/>
<LABEL name="labelDamping" id="9936561d7f93e657" memberName="labelDamping"
virtualName="" explicitFocusOrder="0" pos="104.5c 0Cc 73 24"
posRelativeY="ad436ff73ab5ee2e" edTextCol="ff000000" edBkgCol="0"
labelText="Damping" editableSingleClick="0" editableDoubleClick="0"
focusDiscardsChanges="0" fontname="Default font" fontsize="15.0"
kerning="0.0" bold="0" italic="0" justification="36"/>
<SLIDER name="reverbDamping" id="9c1953601205e5f" memberName="reverbDamping"
virtualName="" explicitFocusOrder="0" pos="104c 0Cc 56 72" posRelativeY="38898729f923e3cf"
tooltip="Reverb damping" min="0.0" max="100.0" int="1.0" style="RotaryVerticalDrag"
textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
textBoxHeight="20" skewFactor="1.0" needsCallback="0"/>
<LABEL name="labelSize" id="ad436ff73ab5ee2e" memberName="labelSize"
virtualName="" explicitFocusOrder="0" pos="38.5c 27c 73 24" posRelativeY="b8a5ef2d0601f570"
edTextCol="ff000000" edBkgCol="0" labelText="Size" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15.0" kerning="0.0" bold="0" italic="0" justification="36"/>
<SLIDER name="reverbSize" id="38898729f923e3cf" memberName="reverbSize"
virtualName="" explicitFocusOrder="0" pos="38c 67c 56 72" tooltip="Reverb room size"
min="0.0" max="100.0" int="1.0" style="RotaryVerticalDrag" textBoxPos="TextBoxBelow"
textBoxEditable="1" textBoxWidth="40" textBoxHeight="20" skewFactor="1.0"
needsCallback="0"/>
<LABEL name="labelreverbMix" id="e13aeee20beedb05" memberName="labelreverbMix"
virtualName="" explicitFocusOrder="0" pos="236.5c 0Cc 73 24"
posRelativeY="ad436ff73ab5ee2e" edTextCol="ff000000" edBkgCol="0"
labelText="Mix" editableSingleClick="0" editableDoubleClick="0"
focusDiscardsChanges="0" fontname="Default font" fontsize="15.0"
kerning="0.0" bold="0" italic="0" justification="36"/>
<SLIDER name="reverbMix" id="25583463460b5798" memberName="reverbMix"
virtualName="" explicitFocusOrder="0" pos="236c 0Cc 56 72" posRelativeY="38898729f923e3cf"
tooltip="Amount of reverb in output" min="0.0" max="100.0" int="1.0"
style="RotaryVerticalDrag" textBoxPos="TextBoxBelow" textBoxEditable="1"
textBoxWidth="40" textBoxHeight="20" skewFactor="1.0" needsCallback="0"/>
<LABEL name="labeWidth" id="8698b9e5a099adce" memberName="labeWidth"
virtualName="" explicitFocusOrder="0" pos="170.5c 0Cc 73 24"
posRelativeY="ad436ff73ab5ee2e" edTextCol="ff000000" edBkgCol="0"
labelText="Width" editableSingleClick="0" editableDoubleClick="0"
focusDiscardsChanges="0" fontname="Default font" fontsize="15.0"
kerning="0.0" bold="0" italic="0" justification="36"/>
<SLIDER name="reverbWidth" id="5cbfb5a3f9723d77" memberName="reverbWidth"
virtualName="" explicitFocusOrder="0" pos="170c 0Cc 56 72" posRelativeY="38898729f923e3cf"
tooltip="Reverb width" min="0.0" max="100.0" int="1.0" style="RotaryVerticalDrag"
textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
textBoxHeight="20" skewFactor="1.0" needsCallback="0"/>
</JUCER_COMPONENT>
END_JUCER_METADATA
*/
#endif
//[EndFile] You can add extra defines here...
//[/EndFile]