/* ============================================================================== 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.2.0 ------------------------------------------------------------------------------ The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions" Copyright (c) 2015 - ROLI Ltd. ============================================================================== */ //[Headers] You can add your own extra header files here... #include "Dexed.h" //[/Headers] #include "ParamDialog.h" //[MiscUserDefs] You can add your own user definitions and misc code here... //[/MiscUserDefs] //============================================================================== ParamDialog::ParamDialog () { //[Constructor_pre] You can add your own custom stuff here.. //[/Constructor_pre] addAndMakeVisible (pitchRange = new Slider ("pitchRange")); pitchRange->setRange (0, 12, 1); pitchRange->setSliderStyle (Slider::RotaryVerticalDrag); pitchRange->setTextBoxStyle (Slider::TextBoxLeft, false, 80, 20); pitchRange->addListener (this); addAndMakeVisible (pitchStep = new Slider ("pitchStep")); pitchStep->setRange (0, 12, 1); pitchStep->setSliderStyle (Slider::RotaryVerticalDrag); pitchStep->setTextBoxStyle (Slider::TextBoxLeft, false, 80, 20); pitchStep->addListener (this); addAndMakeVisible (sysexIn = new ComboBox ("sysexIn")); sysexIn->setEditableText (false); sysexIn->setJustificationType (Justification::centredLeft); sysexIn->setTextWhenNothingSelected (String::empty); sysexIn->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); sysexIn->addListener (this); addAndMakeVisible (sysexOut = new ComboBox ("sysexOut")); sysexOut->setEditableText (false); sysexOut->setJustificationType (Justification::centredLeft); sysexOut->setTextWhenNothingSelected (String::empty); sysexOut->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); sysexOut->addListener (this); addAndMakeVisible (sysexChl = new Slider ("sysexChl")); sysexChl->setRange (1, 16, 1); sysexChl->setSliderStyle (Slider::RotaryVerticalDrag); sysexChl->setTextBoxStyle (Slider::TextBoxLeft, false, 80, 20); sysexChl->addListener (this); addAndMakeVisible (engineReso = new ComboBox ("new combo box")); engineReso->setEditableText (false); engineReso->setJustificationType (Justification::centredLeft); engineReso->setTextWhenNothingSelected (String::empty); engineReso->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); engineReso->addItem (TRANS("Modern (24-bit)"), 1); engineReso->addItem (TRANS("Mark I"), 2); engineReso->addItem (TRANS("OPL Series"), 3); engineReso->addListener (this); addAndMakeVisible (showKeyboard = new ToggleButton ("showKeyboard")); showKeyboard->setButtonText (String::empty); addAndMakeVisible (whlRange = new Slider ("whlRange")); whlRange->setRange (0, 99, 1); whlRange->setSliderStyle (Slider::RotaryVerticalDrag); whlRange->setTextBoxStyle (Slider::TextBoxLeft, false, 80, 20); whlRange->addListener (this); addAndMakeVisible (ftRange = new Slider ("ftRange")); ftRange->setRange (0, 99, 1); ftRange->setSliderStyle (Slider::RotaryVerticalDrag); ftRange->setTextBoxStyle (Slider::TextBoxLeft, false, 80, 20); ftRange->addListener (this); addAndMakeVisible (brRange = new Slider ("brRange")); brRange->setRange (0, 99, 1); brRange->setSliderStyle (Slider::RotaryVerticalDrag); brRange->setTextBoxStyle (Slider::TextBoxLeft, false, 80, 20); brRange->addListener (this); addAndMakeVisible (atRange = new Slider ("atRange")); atRange->setRange (0, 99, 1); atRange->setSliderStyle (Slider::RotaryVerticalDrag); atRange->setTextBoxStyle (Slider::TextBoxLeft, false, 80, 20); atRange->addListener (this); addAndMakeVisible (whlEg = new ToggleButton ("whlEg")); whlEg->setButtonText (String::empty); whlEg->addListener (this); addAndMakeVisible (ftEg = new ToggleButton ("ftEg")); ftEg->setButtonText (String::empty); ftEg->addListener (this); addAndMakeVisible (brEg = new ToggleButton ("brEg")); brEg->setButtonText (String::empty); brEg->addListener (this); addAndMakeVisible (atEg = new ToggleButton ("atEg")); atEg->setButtonText (String::empty); atEg->addListener (this); addAndMakeVisible (whlAmp = new ToggleButton ("whlAmp")); whlAmp->setButtonText (String::empty); whlAmp->addListener (this); addAndMakeVisible (ftAmp = new ToggleButton ("ftAmp")); ftAmp->setButtonText (String::empty); ftAmp->addListener (this); addAndMakeVisible (brAmp = new ToggleButton ("brAmp")); brAmp->setButtonText (String::empty); brAmp->addListener (this); addAndMakeVisible (atAmp = new ToggleButton ("atAmp")); atAmp->setButtonText (String::empty); atAmp->addListener (this); addAndMakeVisible (whlPitch = new ToggleButton ("whlPitch")); whlPitch->setButtonText (String::empty); whlPitch->addListener (this); addAndMakeVisible (ftPitch = new ToggleButton ("ftPitch")); ftPitch->setButtonText (String::empty); ftPitch->addListener (this); addAndMakeVisible (brPitch = new ToggleButton ("brPitch")); brPitch->setButtonText (String::empty); brPitch->addListener (this); addAndMakeVisible (atPitch = new ToggleButton ("atPitch")); atPitch->setButtonText (String::empty); atPitch->addListener (this); //[UserPreSize] //[/UserPreSize] setSize (710, 350); //[Constructor] You can add your own custom stuff here.. pitchRange->setEnabled(pitchStep->getValue() == 0); StringArray input; input.add("None"); input.addArray(MidiInput::getDevices()); sysexIn->addItemList(input, 2); StringArray output; output.add("None"); output.addArray(MidiOutput::getDevices()); sysexOut->addItemList(output, 2); //[/Constructor] } ParamDialog::~ParamDialog() { //[Destructor_pre]. You can add your own custom destruction code here.. //[/Destructor_pre] pitchRange = nullptr; pitchStep = nullptr; sysexIn = nullptr; sysexOut = nullptr; sysexChl = nullptr; engineReso = nullptr; showKeyboard = nullptr; whlRange = nullptr; ftRange = nullptr; brRange = nullptr; atRange = nullptr; whlEg = nullptr; ftEg = nullptr; brEg = nullptr; atEg = nullptr; whlAmp = nullptr; ftAmp = nullptr; brAmp = nullptr; atAmp = nullptr; whlPitch = nullptr; ftPitch = nullptr; brPitch = nullptr; atPitch = nullptr; //[Destructor]. You can add your own custom destruction code here.. //[/Destructor] } //============================================================================== void ParamDialog::paint (Graphics& g) { //[UserPrePaint] Add your own custom painting code here.. //[/UserPrePaint] g.fillAll (Colour (0xff3c322f)); g.setColour (Colours::white); g.setFont (Font (15.00f, Font::plain)); g.drawText (TRANS("Pitch Bend Range"), 20, 16, 276, 23, Justification::centredLeft, true); g.setColour (Colours::white); g.setFont (Font (15.00f, Font::plain)); g.drawText (TRANS("Pitch Bend Step"), 20, 56, 276, 23, Justification::centredLeft, true); g.setColour (Colours::white); g.setFont (Font (15.00f, Font::plain)); g.drawText (TRANS("DX7 In"), 20, 224, 131, 23, Justification::centredLeft, true); g.setColour (Colours::white); g.setFont (Font (15.00f, Font::plain)); g.drawText (TRANS("DX7 Out"), 20, 264, 131, 23, Justification::centredLeft, true); g.setColour (Colours::white); g.setFont (Font (15.00f, Font::plain)); g.drawText (TRANS("DX7 Channel"), 20, 304, 245, 23, Justification::centredLeft, true); g.setColour (Colours::white); g.setFont (Font (15.00f, Font::plain)); g.drawText (TRANS("Engine Resolution"), 20, 156, 276, 23, Justification::centredLeft, true); g.setColour (Colours::black); g.fillRect (22, 138, 306, 1); g.setColour (Colours::black); g.fillRect (22, 195, 306, 1); g.setColour (Colours::white); g.setFont (Font (15.00f, Font::plain)); g.drawText (TRANS("Show Keyboard"), 20, 96, 276, 23, Justification::centredLeft, true); g.setColour (Colours::black); g.fillRect (352, 11, 1, 325); g.setColour (Colours::white); g.setFont (Font (15.00f, Font::plain)); g.drawText (TRANS("Wheel"), 368, 16, 276, 23, Justification::centredLeft, true); g.setColour (Colours::white); g.setFont (Font (15.00f, Font::plain)); g.drawText (TRANS("Foot"), 368, 96, 276, 23, Justification::centredLeft, true); g.setColour (Colours::white); g.setFont (Font (15.00f, Font::plain)); g.drawText (TRANS("Breath"), 368, 56, 276, 23, Justification::centredLeft, true); g.setColour (Colours::white); g.setFont (Font (15.00f, Font::plain)); g.drawText (TRANS("After Touch"), 368, 136, 276, 23, Justification::centredLeft, true); g.setColour (Colours::white); g.setFont (Font (15.00f, Font::plain)); g.drawText (TRANS("PITCH"), 533, 163, 48, 23, Justification::centredLeft, true); g.setColour (Colours::white); g.setFont (Font (15.00f, Font::plain)); g.drawText (TRANS("AMP"), 589, 163, 48, 23, Justification::centredLeft, true); g.setColour (Colours::white); g.setFont (Font (15.00f, Font::plain)); g.drawText (TRANS("EG BIAS"), 645, 163, 48, 23, Justification::centredLeft, true); //[UserPaint] Add your own custom painting code here.. //[/UserPaint] } void ParamDialog::resized() { //[UserPreResize] Add your own custom resize code here.. //[/UserPreResize] pitchRange->setBounds (264, 16, 72, 24); pitchStep->setBounds (264, 56, 72, 24); sysexIn->setBounds (104, 224, 224, 24); sysexOut->setBounds (104, 264, 224, 24); sysexChl->setBounds (264, 304, 72, 24); engineReso->setBounds (160, 156, 168, 24); showKeyboard->setBounds (264, 96, 56, 24); whlRange->setBounds (448, 16, 72, 24); ftRange->setBounds (448, 56, 72, 24); brRange->setBounds (448, 96, 72, 24); atRange->setBounds (448, 136, 72, 24); whlEg->setBounds (640, 16, 56, 24); ftEg->setBounds (640, 56, 56, 24); brEg->setBounds (640, 96, 56, 24); atEg->setBounds (640, 136, 56, 24); whlAmp->setBounds (584, 16, 56, 24); ftAmp->setBounds (584, 56, 56, 24); brAmp->setBounds (584, 96, 56, 24); atAmp->setBounds (584, 136, 56, 24); whlPitch->setBounds (528, 16, 56, 24); ftPitch->setBounds (528, 56, 56, 24); brPitch->setBounds (528, 96, 56, 24); atPitch->setBounds (528, 136, 56, 24); //[UserResized] Add your own custom resize handling here.. //[/UserResized] } void ParamDialog::sliderValueChanged (Slider* sliderThatWasMoved) { //[UsersliderValueChanged_Pre] //[/UsersliderValueChanged_Pre] if (sliderThatWasMoved == pitchRange) { //[UserSliderCode_pitchRange] -- add your slider handling code here.. //[/UserSliderCode_pitchRange] } else if (sliderThatWasMoved == pitchStep) { //[UserSliderCode_pitchStep] -- add your slider handling code here.. pitchRange->setEnabled(pitchStep->getValue() == 0); //[/UserSliderCode_pitchStep] } else if (sliderThatWasMoved == sysexChl) { //[UserSliderCode_sysexChl] -- add your slider handling code here.. //[/UserSliderCode_sysexChl] } else if (sliderThatWasMoved == whlRange) { //[UserSliderCode_whlRange] -- add your slider handling code here.. //[/UserSliderCode_whlRange] } else if (sliderThatWasMoved == ftRange) { //[UserSliderCode_ftRange] -- add your slider handling code here.. //[/UserSliderCode_ftRange] } else if (sliderThatWasMoved == brRange) { //[UserSliderCode_brRange] -- add your slider handling code here.. //[/UserSliderCode_brRange] } else if (sliderThatWasMoved == atRange) { //[UserSliderCode_atRange] -- add your slider handling code here.. //[/UserSliderCode_atRange] } //[UsersliderValueChanged_Post] //[/UsersliderValueChanged_Post] } void ParamDialog::comboBoxChanged (ComboBox* comboBoxThatHasChanged) { //[UsercomboBoxChanged_Pre] //[/UsercomboBoxChanged_Pre] if (comboBoxThatHasChanged == sysexIn) { //[UserComboBoxCode_sysexIn] -- add your combo box handling code here.. //[/UserComboBoxCode_sysexIn] } else if (comboBoxThatHasChanged == sysexOut) { //[UserComboBoxCode_sysexOut] -- add your combo box handling code here.. //[/UserComboBoxCode_sysexOut] } else if (comboBoxThatHasChanged == engineReso) { //[UserComboBoxCode_engineReso] -- add your combo box handling code here.. //[/UserComboBoxCode_engineReso] } //[UsercomboBoxChanged_Post] //[/UsercomboBoxChanged_Post] } void ParamDialog::buttonClicked (Button* buttonThatWasClicked) { //[UserbuttonClicked_Pre] //[/UserbuttonClicked_Pre] if (buttonThatWasClicked == whlEg) { //[UserButtonCode_whlEg] -- add your button handler code here.. //[/UserButtonCode_whlEg] } else if (buttonThatWasClicked == ftEg) { //[UserButtonCode_ftEg] -- add your button handler code here.. //[/UserButtonCode_ftEg] } else if (buttonThatWasClicked == brEg) { //[UserButtonCode_brEg] -- add your button handler code here.. //[/UserButtonCode_brEg] } else if (buttonThatWasClicked == atEg) { //[UserButtonCode_atEg] -- add your button handler code here.. //[/UserButtonCode_atEg] } else if (buttonThatWasClicked == whlAmp) { //[UserButtonCode_whlAmp] -- add your button handler code here.. //[/UserButtonCode_whlAmp] } else if (buttonThatWasClicked == ftAmp) { //[UserButtonCode_ftAmp] -- add your button handler code here.. //[/UserButtonCode_ftAmp] } else if (buttonThatWasClicked == brAmp) { //[UserButtonCode_brAmp] -- add your button handler code here.. //[/UserButtonCode_brAmp] } else if (buttonThatWasClicked == atAmp) { //[UserButtonCode_atAmp] -- add your button handler code here.. //[/UserButtonCode_atAmp] } else if (buttonThatWasClicked == whlPitch) { //[UserButtonCode_whlPitch] -- add your button handler code here.. //[/UserButtonCode_whlPitch] } else if (buttonThatWasClicked == ftPitch) { //[UserButtonCode_ftPitch] -- add your button handler code here.. //[/UserButtonCode_ftPitch] } else if (buttonThatWasClicked == brPitch) { //[UserButtonCode_brPitch] -- add your button handler code here.. //[/UserButtonCode_brPitch] } else if (buttonThatWasClicked == atPitch) { //[UserButtonCode_atPitch] -- add your button handler code here.. //[/UserButtonCode_atPitch] } //[UserbuttonClicked_Post] //[/UserbuttonClicked_Post] } //[MiscUserCode] You can add your own definitions of your custom methods or any other code here... void ParamDialog::setDialogValues(Controllers &c, SysexComm &mgr, int reso, bool showKey) { pitchRange->setValue(c.values_[kControllerPitchRange]); pitchStep->setValue(c.values_[kControllerPitchStep]); sysexChl->setValue(mgr.getChl() + 1); whlRange->setValue(c.wheel.range); whlPitch->setToggleState(c.wheel.pitch, dontSendNotification); whlPitch->setToggleState(c.wheel.pitch, dontSendNotification); whlAmp->setToggleState(c.wheel.amp, dontSendNotification); whlEg->setToggleState(c.wheel.eg, dontSendNotification); ftRange->setValue(c.foot.range); ftPitch->setToggleState(c.foot.pitch, dontSendNotification); ftAmp->setToggleState(c.foot.amp, dontSendNotification); ftEg->setToggleState(c.foot.eg, dontSendNotification); brRange->setValue(c.breath.range); brPitch->setToggleState(c.breath.pitch, dontSendNotification); brAmp->setToggleState(c.breath.amp, dontSendNotification); brEg->setToggleState(c.breath.eg, dontSendNotification); atRange->setValue(c.at.range); atPitch->setToggleState(c.at.pitch, dontSendNotification); atAmp->setToggleState(c.at.amp, dontSendNotification); atEg->setToggleState(c.at.eg, dontSendNotification); StringArray inputs = MidiInput::getDevices(); int idx = inputs.indexOf(mgr.getInput()); idx = idx == -1 ? 0 : idx + 1; sysexIn->setSelectedItemIndex(idx); StringArray outputs = MidiOutput::getDevices(); idx = outputs.indexOf(mgr.getOutput()); idx = idx == -1 ? 0 : idx + 1; sysexOut->setSelectedItemIndex(idx); engineReso->setSelectedItemIndex(reso); showKeyboard->setToggleState(showKey, false); } bool ParamDialog::getDialogValues(Controllers &c, SysexComm &mgr, int *reso, bool *showKey) { bool ret = true; c.values_[kControllerPitchRange] = pitchRange->getValue(); c.values_[kControllerPitchStep] = pitchStep->getValue(); c.wheel.range = whlRange->getValue(); c.wheel.pitch = whlPitch->getToggleState(); c.wheel.amp = whlAmp->getToggleState(); c.wheel.eg = whlEg->getToggleState(); c.foot.range = ftRange->getValue(); c.foot.pitch = ftPitch->getToggleState(); c.foot.amp = ftAmp->getToggleState(); c.foot.eg = ftEg->getToggleState(); c.breath.range = brRange->getValue(); c.breath.pitch = brPitch->getToggleState(); c.breath.amp = brAmp->getToggleState(); c.breath.eg = brEg->getToggleState(); c.at.range = atRange->getValue(); c.at.pitch = atPitch->getToggleState(); c.at.amp = atAmp->getToggleState(); c.at.eg = atEg->getToggleState(); c.refresh(); ret &= mgr.setInput(sysexIn->getItemText(sysexIn->getSelectedItemIndex())); ret &= mgr.setOutput(sysexOut->getItemText(sysexOut->getSelectedItemIndex())); mgr.setChl(sysexChl->getValue() - 1); *reso = engineReso->getSelectedItemIndex(); *showKey = showKeyboard->getToggleState(); return ret; } //[/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 END_JUCER_METADATA */ #endif //[EndFile] You can add extra defines here... //[/EndFile]