2
0
Fork 0

Halfway through adding a nice GUI.

This commit is contained in:
bruce 2013-09-26 00:28:34 +08:00
parent cc5ee743ca
commit 8c8e2dda78
8 changed files with 696 additions and 3 deletions

View file

@ -10,6 +10,20 @@
pluginAAXCategory="AAX_ePlugInCategory_Dynamics" jucerVersion="3.1.0"> pluginAAXCategory="AAX_ePlugInCategory_Dynamics" jucerVersion="3.1.0">
<MAINGROUP id="TOefyq" name="JuceOPLVSTi"> <MAINGROUP id="TOefyq" name="JuceOPLVSTi">
<GROUP id="{DCA755EB-7953-0641-E719-95C7850E5B2B}" name="Source"> <GROUP id="{DCA755EB-7953-0641-E719-95C7850E5B2B}" name="Source">
<FILE id="CGPOGV" name="IntFloatParameter.cpp" compile="1" resource="0"
file="Source/IntFloatParameter.cpp"/>
<FILE id="uAEGVV" name="IntFloatParameter.h" compile="0" resource="0"
file="Source/IntFloatParameter.h"/>
<FILE id="GnuXsD" name="EnumFloatParameter.cpp" compile="1" resource="0"
file="Source/EnumFloatParameter.cpp"/>
<FILE id="GQm1JF" name="EnumFloatParameter.h" compile="0" resource="0"
file="Source/EnumFloatParameter.h"/>
<FILE id="cyDyMZ" name="FloatParameter.cpp" compile="1" resource="0"
file="Source/FloatParameter.cpp"/>
<FILE id="RwbIyF" name="FloatParameter.h" compile="0" resource="0"
file="Source/FloatParameter.h"/>
<FILE id="SyIvF1" name="PluginGui.cpp" compile="1" resource="0" file="Source/PluginGui.cpp"/>
<FILE id="a2DQGI" name="PluginGui.h" compile="0" resource="0" file="Source/PluginGui.h"/>
<FILE id="BZFxoj" name="adlib.h" compile="0" resource="0" file="Source/adlib.h"/> <FILE id="BZFxoj" name="adlib.h" compile="0" resource="0" file="Source/adlib.h"/>
<FILE id="c6G4EF" name="config.h" compile="0" resource="0" file="Source/config.h"/> <FILE id="c6G4EF" name="config.h" compile="0" resource="0" file="Source/config.h"/>
<FILE id="TnpE3r" name="dbopl.cpp" compile="1" resource="0" file="Source/dbopl.cpp"/> <FILE id="TnpE3r" name="dbopl.cpp" compile="1" resource="0" file="Source/dbopl.cpp"/>

575
Source/PluginGui.cpp Normal file
View file

@ -0,0 +1,575 @@
/*
==============================================================================
This is an automatically generated GUI class created by the Introjucer!
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 Introjucer version: 3.1.0
------------------------------------------------------------------------------
The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions"
Copyright 2004-13 by Raw Material Software Ltd.
==============================================================================
*/
//[Headers] You can add your own extra header files here...
//[/Headers]
#include "PluginGui.h"
//[MiscUserDefs] You can add your own user definitions and misc code here...
//[/MiscUserDefs]
//==============================================================================
PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
: AudioProcessorEditor (ownerFilter)
{
addAndMakeVisible (groupComponent = new GroupComponent ("new group",
"Modulator"));
groupComponent->setTextLabelPosition (Justification::centredLeft);
groupComponent->setColour (GroupComponent::outlineColourId, Colour (0xff007f00));
groupComponent->setColour (GroupComponent::textColourId, Colour (0xff007f00));
addAndMakeVisible (frequencyComboBox = new ComboBox ("frequency combo box"));
frequencyComboBox->setEditableText (false);
frequencyComboBox->setJustificationType (Justification::centredLeft);
frequencyComboBox->setTextWhenNothingSelected (String::empty);
frequencyComboBox->setTextWhenNoChoicesAvailable ("(no choices)");
frequencyComboBox->addListener (this);
addAndMakeVisible (frequencyLabel = new Label ("frequency label",
"Frequency"));
frequencyLabel->setFont (Font (15.00f, Font::plain));
frequencyLabel->setJustificationType (Justification::centred);
frequencyLabel->setEditable (false, false, false);
frequencyLabel->setColour (Label::textColourId, Colour (0xff007f00));
frequencyLabel->setColour (TextEditor::textColourId, Colours::black);
frequencyLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
addAndMakeVisible (aSlider = new Slider ("a slider"));
aSlider->setRange (0, 15, 1);
aSlider->setSliderStyle (Slider::LinearVertical);
aSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
aSlider->setColour (Slider::thumbColourId, Colour (0xff00af00));
aSlider->setColour (Slider::trackColourId, Colour (0x7f007f00));
aSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00));
aSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black);
aSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00));
aSlider->addListener (this);
addAndMakeVisible (aLabel = new Label ("a label",
"A"));
aLabel->setFont (Font (15.00f, Font::plain));
aLabel->setJustificationType (Justification::centred);
aLabel->setEditable (false, false, false);
aLabel->setColour (Label::textColourId, Colour (0xff007f00));
aLabel->setColour (TextEditor::textColourId, Colours::black);
aLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
addAndMakeVisible (dSlider = new Slider ("d slider"));
dSlider->setRange (0, 15, 1);
dSlider->setSliderStyle (Slider::LinearVertical);
dSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
dSlider->setColour (Slider::thumbColourId, Colour (0xff00af00));
dSlider->setColour (Slider::trackColourId, Colour (0x7f007f00));
dSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00));
dSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black);
dSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00));
dSlider->addListener (this);
addAndMakeVisible (dLabel = new Label ("d label",
"D"));
dLabel->setFont (Font (15.00f, Font::plain));
dLabel->setJustificationType (Justification::centred);
dLabel->setEditable (false, false, false);
dLabel->setColour (Label::textColourId, Colour (0xff007f00));
dLabel->setColour (TextEditor::textColourId, Colours::black);
dLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
addAndMakeVisible (sSlider = new Slider ("s slider"));
sSlider->setRange (0, 15, 1);
sSlider->setSliderStyle (Slider::LinearVertical);
sSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
sSlider->setColour (Slider::thumbColourId, Colour (0xff00af00));
sSlider->setColour (Slider::trackColourId, Colour (0x7f007f00));
sSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00));
sSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black);
sSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00));
sSlider->addListener (this);
addAndMakeVisible (dLabel2 = new Label ("d label",
"S"));
dLabel2->setFont (Font (15.00f, Font::plain));
dLabel2->setJustificationType (Justification::centred);
dLabel2->setEditable (false, false, false);
dLabel2->setColour (Label::textColourId, Colour (0xff007f00));
dLabel2->setColour (TextEditor::textColourId, Colours::black);
dLabel2->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
addAndMakeVisible (rSlider = new Slider ("r slider"));
rSlider->setRange (0, 15, 1);
rSlider->setSliderStyle (Slider::LinearVertical);
rSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
rSlider->setColour (Slider::thumbColourId, Colour (0xff00af00));
rSlider->setColour (Slider::trackColourId, Colour (0x7f007f00));
rSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00));
rSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black);
rSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00));
rSlider->addListener (this);
addAndMakeVisible (rLabel = new Label ("r label",
"R"));
rLabel->setFont (Font (15.00f, Font::plain));
rLabel->setJustificationType (Justification::centred);
rLabel->setEditable (false, false, false);
rLabel->setColour (Label::textColourId, Colour (0xff007f00));
rLabel->setColour (TextEditor::textColourId, Colours::black);
rLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
addAndMakeVisible (attenuationSlider = new Slider ("attenuation slider"));
attenuationSlider->setRange (-47.25, 0, 0.75);
attenuationSlider->setSliderStyle (Slider::LinearVertical);
attenuationSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 64, 20);
attenuationSlider->setColour (Slider::thumbColourId, Colour (0xff00af00));
attenuationSlider->setColour (Slider::trackColourId, Colour (0x7f007f00));
attenuationSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00));
attenuationSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black);
attenuationSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00));
attenuationSlider->addListener (this);
addAndMakeVisible (attenuationLabel = new Label ("attenuation label",
"Attenuation"));
attenuationLabel->setFont (Font (15.00f, Font::plain));
attenuationLabel->setJustificationType (Justification::centred);
attenuationLabel->setEditable (false, false, false);
attenuationLabel->setColour (Label::textColourId, Colour (0xff007f00));
attenuationLabel->setColour (TextEditor::textColourId, Colours::black);
attenuationLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
addAndMakeVisible (dbLabel = new Label ("db label",
"dB"));
dbLabel->setFont (Font (15.00f, Font::plain));
dbLabel->setJustificationType (Justification::centred);
dbLabel->setEditable (false, false, false);
dbLabel->setColour (Label::textColourId, Colour (0xff007f00));
dbLabel->setColour (Label::outlineColourId, Colour (0x00000000));
dbLabel->setColour (TextEditor::textColourId, Colours::black);
dbLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
addAndMakeVisible (sineImageButton = new ImageButton ("sine image button"));
sineImageButton->setTooltip ("sine");
sineImageButton->setButtonText ("Sine");
sineImageButton->setRadioGroupId (1);
sineImageButton->addListener (this);
sineImageButton->setImages (false, true, true,
ImageCache::getFromMemory (full_sine_png, full_sine_pngSize), 0.500f, Colour (0x00000000),
Image(), 0.500f, Colour (0x00000000),
Image(), 1.000f, Colour (0x00000000));
addAndMakeVisible (halfsineImageButton = new ImageButton ("half sine image button"));
halfsineImageButton->setTooltip ("half sine");
halfsineImageButton->setButtonText ("Half Sine");
halfsineImageButton->setRadioGroupId (1);
halfsineImageButton->addListener (this);
halfsineImageButton->setImages (false, true, true,
ImageCache::getFromMemory (half_sine_png, half_sine_pngSize), 0.500f, Colour (0x00000000),
Image(), 0.500f, Colour (0x00000000),
Image(), 1.000f, Colour (0x00000000));
addAndMakeVisible (abssineImageButton = new ImageButton ("abs sine image button"));
abssineImageButton->setTooltip ("abs sine");
abssineImageButton->setButtonText ("Abs Sine");
abssineImageButton->setRadioGroupId (1);
abssineImageButton->addListener (this);
abssineImageButton->setImages (false, true, true,
ImageCache::getFromMemory (abs_sine_png, abs_sine_pngSize), 0.500f, Colour (0x00000000),
Image(), 0.500f, Colour (0x00000000),
Image(), 1.000f, Colour (0x00000000));
addAndMakeVisible (quartersineImageButton = new ImageButton ("quarter sine image button"));
quartersineImageButton->setTooltip ("quarter sine");
quartersineImageButton->setButtonText ("Quarter Sine");
quartersineImageButton->setRadioGroupId (1);
quartersineImageButton->addListener (this);
quartersineImageButton->setImages (false, true, true,
ImageCache::getFromMemory (quarter_sine_png, quarter_sine_pngSize), 0.500f, Colour (0x00000000),
Image(), 0.500f, Colour (0x00000000),
Image(), 1.000f, Colour (0x00000000));
addAndMakeVisible (waveLabel = new Label ("wave label",
"Wave"));
waveLabel->setFont (Font (15.00f, Font::plain));
waveLabel->setJustificationType (Justification::centred);
waveLabel->setEditable (false, false, false);
waveLabel->setColour (Label::textColourId, Colour (0xff007f00));
waveLabel->setColour (TextEditor::textColourId, Colours::black);
waveLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
//[UserPreSize]
frequencyComboBox->setColour (ComboBox::textColourId, Colour (COLOUR_MID));
frequencyComboBox->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID));
frequencyComboBox->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID));
frequencyComboBox->setColour (ComboBox::buttonColourId, Colours::black);
frequencyComboBox->setColour (ComboBox::backgroundColourId, Colours::black);
frequencyComboBox->addItem ("x1/2", 0);
frequencyComboBox->addItem ("x1", 1);
frequencyComboBox->addItem ("x2", 2);
frequencyComboBox->addItem ("x3", 3);
frequencyComboBox->addItem ("x4", 4);
frequencyComboBox->addItem ("x5", 5);
frequencyComboBox->addItem ("x6", 6);
frequencyComboBox->addItem ("x7", 7);
frequencyComboBox->addItem ("x8", 8);
frequencyComboBox->addItem ("x9", 9);
frequencyComboBox->addItem ("x10", 10);
frequencyComboBox->addItem ("x12", 12);
frequencyComboBox->addItem ("x15", 15);
sineImageButton->setClickingTogglesState(true);
sineImageButton->setRepaintsOnMouseActivity(false);
abssineImageButton->setClickingTogglesState(true);
abssineImageButton->setRepaintsOnMouseActivity(false);
halfsineImageButton->setClickingTogglesState(true);
halfsineImageButton->setRepaintsOnMouseActivity(false);
quartersineImageButton->setClickingTogglesState(true);
quartersineImageButton->setRepaintsOnMouseActivity(false);
//[/UserPreSize]
setSize (600, 400);
//[Constructor] You can add your own custom stuff here..
processor = ownerFilter;
//[/Constructor]
}
PluginGui::~PluginGui()
{
//[Destructor_pre]. You can add your own custom destruction code here..
//[/Destructor_pre]
groupComponent = nullptr;
frequencyComboBox = nullptr;
frequencyLabel = nullptr;
aSlider = nullptr;
aLabel = nullptr;
dSlider = nullptr;
dLabel = nullptr;
sSlider = nullptr;
dLabel2 = nullptr;
rSlider = nullptr;
rLabel = nullptr;
attenuationSlider = nullptr;
attenuationLabel = nullptr;
dbLabel = nullptr;
sineImageButton = nullptr;
halfsineImageButton = nullptr;
abssineImageButton = nullptr;
quartersineImageButton = nullptr;
waveLabel = nullptr;
//[Destructor]. You can add your own custom destruction code here..
//[/Destructor]
}
//==============================================================================
void PluginGui::paint (Graphics& g)
{
//[UserPrePaint] Add your own custom painting code here..
//[/UserPrePaint]
g.fillAll (Colours::black);
//[UserPaint] Add your own custom painting code here..
//[/UserPaint]
}
void PluginGui::resized()
{
groupComponent->setBounds (16, 16, 392, 240);
frequencyComboBox->setBounds (120, 96, 72, 24);
frequencyLabel->setBounds (16, 96, 96, 24);
aSlider->setBounds (40, 136, 48, 72);
aLabel->setBounds (40, 208, 48, 24);
dSlider->setBounds (104, 136, 48, 72);
dLabel->setBounds (104, 208, 48, 24);
sSlider->setBounds (168, 136, 48, 72);
dLabel2->setBounds (168, 208, 48, 24);
rSlider->setBounds (232, 136, 48, 72);
rLabel->setBounds (232, 208, 48, 24);
attenuationSlider->setBounds (296, 96, 72, 112);
attenuationLabel->setBounds (296, 208, 96, 24);
dbLabel->setBounds (360, 184, 40, 24);
sineImageButton->setBounds (120, 48, 34, 30);
halfsineImageButton->setBounds (176, 48, 34, 30);
abssineImageButton->setBounds (232, 48, 34, 30);
quartersineImageButton->setBounds (288, 48, 34, 30);
waveLabel->setBounds (16, 48, 96, 24);
//[UserResized] Add your own custom resize handling here..
//[/UserResized]
}
void PluginGui::comboBoxChanged (ComboBox* comboBoxThatHasChanged)
{
//[UsercomboBoxChanged_Pre]
//[/UsercomboBoxChanged_Pre]
if (comboBoxThatHasChanged == frequencyComboBox)
{
//[UserComboBoxCode_frequencyComboBox] -- add your combo box handling code here..
processor->setEnumParameter("Modulator Frequency", frequencyComboBox->getSelectedId());
//[/UserComboBoxCode_frequencyComboBox]
}
//[UsercomboBoxChanged_Post]
//[/UsercomboBoxChanged_Post]
}
void PluginGui::sliderValueChanged (Slider* sliderThatWasMoved)
{
//[UsersliderValueChanged_Pre]
//[/UsersliderValueChanged_Pre]
if (sliderThatWasMoved == aSlider)
{
//[UserSliderCode_aSlider] -- add your slider handling code here..
processor->setIntParameter("Modulator Attack", (int)aSlider->getValue());
//[/UserSliderCode_aSlider]
}
else if (sliderThatWasMoved == dSlider)
{
//[UserSliderCode_dSlider] -- add your slider handling code here..
processor->setIntParameter("Modulator Decay", (int)dSlider->getValue());
//[/UserSliderCode_dSlider]
}
else if (sliderThatWasMoved == sSlider)
{
//[UserSliderCode_sSlider] -- add your slider handling code here..
processor->setIntParameter("Modulator Sustain", (int)sSlider->getValue());
//[/UserSliderCode_sSlider]
}
else if (sliderThatWasMoved == rSlider)
{
//[UserSliderCode_rSlider] -- add your slider handling code here..
processor->setIntParameter("Modulator Release", (int)rSlider->getValue());
//[/UserSliderCode_rSlider]
}
else if (sliderThatWasMoved == attenuationSlider)
{
//[UserSliderCode_attenuationSlider] -- add your slider handling code here..
processor->setEnumParameter("Modulator Attenuation", -(int)(attenuationSlider->getValue()/0.75));
//[/UserSliderCode_attenuationSlider]
}
//[UsersliderValueChanged_Post]
//[/UsersliderValueChanged_Post]
}
void PluginGui::buttonClicked (Button* buttonThatWasClicked)
{
//[UserbuttonClicked_Pre]
//[/UserbuttonClicked_Pre]
if (buttonThatWasClicked == sineImageButton)
{
//[UserButtonCode_sineImageButton] -- add your button handler code here..
processor->setEnumParameter("Modulator Wave", 0);
//[/UserButtonCode_sineImageButton]
}
else if (buttonThatWasClicked == halfsineImageButton)
{
//[UserButtonCode_halfsineImageButton] -- add your button handler code here..
processor->setEnumParameter("Modulator Wave", 1);
//[/UserButtonCode_halfsineImageButton]
}
else if (buttonThatWasClicked == abssineImageButton)
{
//[UserButtonCode_abssineImageButton] -- add your button handler code here..
processor->setEnumParameter("Modulator Wave", 2);
//[/UserButtonCode_abssineImageButton]
}
else if (buttonThatWasClicked == quartersineImageButton)
{
//[UserButtonCode_quartersineImageButton] -- add your button handler code here..
processor->setEnumParameter("Modulator Wave", 3);
//[/UserButtonCode_quartersineImageButton]
}
//[UserbuttonClicked_Post]
//[/UserbuttonClicked_Post]
}
//[MiscUserCode] You can add your own definitions of your custom methods or any other code here...
//[/MiscUserCode]
//==============================================================================
#if 0
/* -- Introjucer information section --
This is where the Introjucer stores the metadata that describe this GUI layout, so
make changes in here at your peril!
BEGIN_JUCER_METADATA
<JUCER_COMPONENT documentType="Component" className="PluginGui" componentName=""
parentClasses="public AudioProcessorEditor" constructorParams="JuceOplvstiAudioProcessor* ownerFilter"
variableInitialisers=" AudioProcessorEditor (ownerFilter)" snapPixels="8"
snapActive="1" snapShown="1" overlayOpacity="0.33" fixedSize="0"
initialWidth="600" initialHeight="400">
<BACKGROUND backgroundColour="ff000000"/>
<GROUPCOMPONENT name="new group" id="d2c7c07bf2d78c30" memberName="groupComponent"
virtualName="" explicitFocusOrder="0" pos="16 16 392 240" outlinecol="ff007f00"
textcol="ff007f00" title="Modulator" textpos="33"/>
<COMBOBOX name="frequency combo box" id="4e65faf3d9442460" memberName="frequencyComboBox"
virtualName="" explicitFocusOrder="0" pos="120 96 72 24" editable="0"
layout="33" items="" textWhenNonSelected="" textWhenNoItems="(no choices)"/>
<LABEL name="frequency label" id="7414532477c7f744" memberName="frequencyLabel"
virtualName="" explicitFocusOrder="0" pos="16 96 96 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="Frequency" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/>
<SLIDER name="a slider" id="1b9be27726a5b3ae" memberName="aSlider" virtualName=""
explicitFocusOrder="0" pos="40 136 48 72" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical"
textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
textBoxHeight="20" skewFactor="1"/>
<LABEL name="a label" id="9dd0b13f00b4de42" memberName="aLabel" virtualName=""
explicitFocusOrder="0" pos="40 208 48 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="A" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/>
<SLIDER name="d slider" id="d4cc8ddf2fc9cf2b" memberName="dSlider" virtualName=""
explicitFocusOrder="0" pos="104 136 48 72" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical"
textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
textBoxHeight="20" skewFactor="1"/>
<LABEL name="d label" id="a7f17b098b85f10b" memberName="dLabel" virtualName=""
explicitFocusOrder="0" pos="104 208 48 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="D" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/>
<SLIDER name="s slider" id="9bcadfc61e498bce" memberName="sSlider" virtualName=""
explicitFocusOrder="0" pos="168 136 48 72" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical"
textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
textBoxHeight="20" skewFactor="1"/>
<LABEL name="d label" id="6467455c7573fefa" memberName="dLabel2" virtualName=""
explicitFocusOrder="0" pos="168 208 48 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="S" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/>
<SLIDER name="r slider" id="5616976a8c5a3f5f" memberName="rSlider" virtualName=""
explicitFocusOrder="0" pos="232 136 48 72" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical"
textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
textBoxHeight="20" skewFactor="1"/>
<LABEL name="r label" id="ef30d2907e867666" memberName="rLabel" virtualName=""
explicitFocusOrder="0" pos="232 208 48 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="R" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/>
<SLIDER name="attenuation slider" id="dfb943cd83b3977f" memberName="attenuationSlider"
virtualName="" explicitFocusOrder="0" pos="296 96 72 112" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="-47.25" max="0" int="0.75" style="LinearVertical"
textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="64"
textBoxHeight="20" skewFactor="1"/>
<LABEL name="attenuation label" id="643f88854c82ca3e" memberName="attenuationLabel"
virtualName="" explicitFocusOrder="0" pos="296 208 96 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="Attenuation" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/>
<LABEL name="db label" id="666be8c96c85c9f1" memberName="dbLabel" virtualName=""
explicitFocusOrder="0" pos="360 184 40 24" textCol="ff007f00"
outlineCol="0" edTextCol="ff000000" edBkgCol="0" labelText="dB"
editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
<IMAGEBUTTON name="sine image button" id="5e72e0ec4fc09c1a" memberName="sineImageButton"
virtualName="" explicitFocusOrder="0" pos="120 48 34 30" tooltip="sine"
buttonText="Sine" connectedEdges="0" needsCallback="1" radioGroupId="1"
keepProportions="1" resourceNormal="full_sine_png" opacityNormal="0.5"
colourNormal="0" resourceOver="" opacityOver="0.5" colourOver="0"
resourceDown="" opacityDown="1" colourDown="0"/>
<IMAGEBUTTON name="half sine image button" id="bf9e0504c5e9e5d5" memberName="halfsineImageButton"
virtualName="" explicitFocusOrder="0" pos="176 48 34 30" tooltip="half sine"
buttonText="Half Sine" connectedEdges="0" needsCallback="1" radioGroupId="1"
keepProportions="1" resourceNormal="half_sine_png" opacityNormal="0.5"
colourNormal="0" resourceOver="" opacityOver="0.5" colourOver="0"
resourceDown="" opacityDown="1" colourDown="0"/>
<IMAGEBUTTON name="abs sine image button" id="1b0b532ac934edae" memberName="abssineImageButton"
virtualName="" explicitFocusOrder="0" pos="232 48 34 30" tooltip="abs sine"
buttonText="Abs Sine" connectedEdges="0" needsCallback="1" radioGroupId="1"
keepProportions="1" resourceNormal="abs_sine_png" opacityNormal="0.5"
colourNormal="0" resourceOver="" opacityOver="0.5" colourOver="0"
resourceDown="" opacityDown="1" colourDown="0"/>
<IMAGEBUTTON name="quarter sine image button" id="47d1bd1fd4ae011d" memberName="quartersineImageButton"
virtualName="" explicitFocusOrder="0" pos="288 48 34 30" tooltip="quarter sine"
buttonText="Quarter Sine" connectedEdges="0" needsCallback="1"
radioGroupId="1" keepProportions="1" resourceNormal="quarter_sine_png"
opacityNormal="0.5" colourNormal="0" resourceOver="" opacityOver="0.5"
colourOver="0" resourceDown="" opacityDown="1" colourDown="0"/>
<LABEL name="wave label" id="d35c942584ea52a6" memberName="waveLabel"
virtualName="" explicitFocusOrder="0" pos="16 48 96 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="Wave" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/>
</JUCER_COMPONENT>
END_JUCER_METADATA
*/
#endif
//==============================================================================
// Binary resources - be careful not to edit any of these sections!
// JUCER_RESOURCE: full_sine_png, 154, "../img/full_sine.png"
static const unsigned char resource_PluginGui_full_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,17,0,0,0,15,8,6,0,0,0,2,177,36,17,0,0,0,97,73,68,65,84,56,141,99,100,96,96,248,207,
64,33,96,194,16,89,5,197,36,130,255,112,188,10,7,155,48,198,163,137,72,131,48,189,67,38,192,111,35,17,174,161,138,75,88,224,44,123,60,170,112,201,101,51,48,48,132,65,152,248,157,75,132,87,169,24,176,228,
184,102,21,149,3,150,56,151,16,72,205,140,12,164,100,64,88,158,10,67,21,38,205,16,28,0,0,120,172,116,52,166,46,206,86,0,0,0,0,73,69,78,68,174,66,96,130,0,0};
const char* PluginGui::full_sine_png = (const char*) resource_PluginGui_full_sine_png;
const int PluginGui::full_sine_pngSize = 154;
// JUCER_RESOURCE: half_sine_png, 126, "../img/half_sine.png"
static const unsigned char resource_PluginGui_half_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,17,0,0,0,15,8,6,0,0,0,2,177,36,17,0,0,0,69,73,68,65,84,56,141,99,100,96,96,248,207,
64,33,96,194,16,89,5,197,36,130,255,112,188,10,7,155,48,198,163,137,72,131,48,189,67,38,192,111,35,17,174,161,138,75,88,224,44,123,60,170,240,201,29,100,96,96,100,160,73,58,25,53,100,240,24,2,0,70,254,
59,115,155,0,139,238,0,0,0,0,73,69,78,68,174,66,96,130,0,0};
const char* PluginGui::half_sine_png = (const char*) resource_PluginGui_half_sine_png;
const int PluginGui::half_sine_pngSize = 126;
// JUCER_RESOURCE: abs_sine_png, 134, "../img/abs_sine.png"
static const unsigned char resource_PluginGui_abs_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,17,0,0,0,15,8,6,0,0,0,2,177,36,17,0,0,0,77,73,68,65,84,56,141,99,100,96,96,248,207,
64,33,96,194,16,89,5,197,216,0,30,185,255,112,188,10,7,155,144,28,30,9,132,24,62,57,6,134,255,152,222,33,19,96,183,9,159,11,209,228,168,226,18,22,56,203,30,143,42,124,114,12,12,12,140,12,52,73,39,163,
134,12,30,67,0,177,31,63,88,3,168,147,82,0,0,0,0,73,69,78,68,174,66,96,130,0,0};
const char* PluginGui::abs_sine_png = (const char*) resource_PluginGui_abs_sine_png;
const int PluginGui::abs_sine_pngSize = 134;
// JUCER_RESOURCE: quarter_sine_png, 130, "../img/quarter_sine.png"
static const unsigned char resource_PluginGui_quarter_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,17,0,0,0,15,8,6,0,0,0,2,177,36,17,0,0,0,73,73,68,65,84,56,141,99,100,96,96,248,
207,64,33,96,194,16,89,133,71,53,14,57,38,98,20,17,146,99,66,81,20,134,199,0,92,114,24,46,33,19,48,81,234,10,170,185,132,5,206,178,71,18,181,71,83,133,79,238,32,3,3,35,3,77,210,201,168,33,131,199,16,0,
110,115,10,130,242,45,164,156,0,0,0,0,73,69,78,68,174,66,96,130,0,0};
const char* PluginGui::quarter_sine_png = (const char*) resource_PluginGui_quarter_sine_png;
const int PluginGui::quarter_sine_pngSize = 130;
//[EndFile] You can add extra defines here...
//[/EndFile]

104
Source/PluginGui.h Normal file
View file

@ -0,0 +1,104 @@
/*
==============================================================================
This is an automatically generated GUI class created by the Introjucer!
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 Introjucer version: 3.1.0
------------------------------------------------------------------------------
The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions"
Copyright 2004-13 by Raw Material Software Ltd.
==============================================================================
*/
#ifndef __JUCE_HEADER_450C07F5C14097B8__
#define __JUCE_HEADER_450C07F5C14097B8__
//[Headers] -- You can add your own extra header files here --
#include "JuceHeader.h"
#include "PluginProcessor.h"
//[/Headers]
//==============================================================================
/**
//[Comments]
An auto-generated component, created by the Introjucer.
Describe your class and how it works here!
//[/Comments]
*/
class PluginGui : public AudioProcessorEditor,
public ComboBoxListener,
public SliderListener,
public ButtonListener
{
public:
//==============================================================================
PluginGui (JuceOplvstiAudioProcessor* ownerFilter);
~PluginGui();
//==============================================================================
//[UserMethods] -- You can add your own custom methods in this section.
//[/UserMethods]
void paint (Graphics& g);
void resized();
void comboBoxChanged (ComboBox* comboBoxThatHasChanged);
void sliderValueChanged (Slider* sliderThatWasMoved);
void buttonClicked (Button* buttonThatWasClicked);
// Binary resources:
static const char* full_sine_png;
static const int full_sine_pngSize;
static const char* half_sine_png;
static const int half_sine_pngSize;
static const char* abs_sine_png;
static const int abs_sine_pngSize;
static const char* quarter_sine_png;
static const int quarter_sine_pngSize;
private:
//[UserVariables] -- You can add your own custom variables in this section.
static const uint32 COLOUR_MID = 0xff007f00;
JuceOplvstiAudioProcessor* processor;
//[/UserVariables]
//==============================================================================
ScopedPointer<GroupComponent> groupComponent;
ScopedPointer<ComboBox> frequencyComboBox;
ScopedPointer<Label> frequencyLabel;
ScopedPointer<Slider> aSlider;
ScopedPointer<Label> aLabel;
ScopedPointer<Slider> dSlider;
ScopedPointer<Label> dLabel;
ScopedPointer<Slider> sSlider;
ScopedPointer<Label> dLabel2;
ScopedPointer<Slider> rSlider;
ScopedPointer<Label> rLabel;
ScopedPointer<Slider> attenuationSlider;
ScopedPointer<Label> attenuationLabel;
ScopedPointer<Label> dbLabel;
ScopedPointer<ImageButton> sineImageButton;
ScopedPointer<ImageButton> halfsineImageButton;
ScopedPointer<ImageButton> abssineImageButton;
ScopedPointer<ImageButton> quartersineImageButton;
ScopedPointer<Label> waveLabel;
//==============================================================================
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PluginGui)
};
//[EndFile] You can add extra defines here...
//[/EndFile]
#endif // __JUCE_HEADER_450C07F5C14097B8__

View file

@ -1,5 +1,5 @@
#include "PluginProcessor.h" #include "PluginProcessor.h"
#include "PluginEditor.h" #include "PluginGui.h"
#include "EnumFloatParameter.h" #include "EnumFloatParameter.h"
#include "IntFloatParameter.h" #include "IntFloatParameter.h"
@ -583,12 +583,12 @@ void JuceOplvstiAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuf
//============================================================================== //==============================================================================
bool JuceOplvstiAudioProcessor::hasEditor() const bool JuceOplvstiAudioProcessor::hasEditor() const
{ {
return false; // (change this to false if you choose to not supply an editor) return true; // (change this to false if you choose to not supply an editor)
} }
AudioProcessorEditor* JuceOplvstiAudioProcessor::createEditor() AudioProcessorEditor* JuceOplvstiAudioProcessor::createEditor()
{ {
return new JuceOplvstiAudioProcessorEditor (this); return new PluginGui (this);
} }
//============================================================================== //==============================================================================

BIN
img/abs_sine.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 B

BIN
img/full_sine.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 B

BIN
img/half_sine.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

BIN
img/quarter_sine.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 B