123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603 |
- /*
- ==============================================================================
- 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.1
- ------------------------------------------------------------------------------
- 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...
- #include "LinJam.h"
- #include "ConfigChannel.h"
- #include "./Trace/TraceChannels.h"
- //[/Headers]
- #include "Channel.h"
- //[MiscUserDefs] You can add your own user definitions and misc code here...
- //[/MiscUserDefs]
- //==============================================================================
- Channel::Channel (ValueTree channel_store)
- {
- setName ("Channel");
- addAndMakeVisible (xmitButton = new ToggleButton ("xmitButton"));
- xmitButton->setExplicitFocusOrder (1);
- xmitButton->setButtonText (TRANS("XMIT"));
- xmitButton->setColour (ToggleButton::textColourId, Colours::grey);
- addAndMakeVisible (muteButton = new ToggleButton ("muteButton"));
- muteButton->setExplicitFocusOrder (2);
- muteButton->setButtonText (TRANS("MUTE"));
- muteButton->setColour (ToggleButton::textColourId, Colours::grey);
- addAndMakeVisible (soloButton = new ToggleButton ("soloButton"));
- soloButton->setExplicitFocusOrder (3);
- soloButton->setButtonText (TRANS("SOLO"));
- soloButton->setColour (ToggleButton::textColourId, Colours::grey);
- addAndMakeVisible (removeButton = new TextButton ("removeButton"));
- removeButton->setExplicitFocusOrder (4);
- removeButton->setButtonText (TRANS("X"));
- removeButton->setColour (TextButton::buttonColourId, Colour (0xff400000));
- removeButton->setColour (TextButton::buttonOnColourId, Colours::maroon);
- removeButton->setColour (TextButton::textColourOnId, Colours::red);
- removeButton->setColour (TextButton::textColourOffId, Colours::red);
- addAndMakeVisible (configButton = new TextButton ("configButton"));
- configButton->setExplicitFocusOrder (5);
- configButton->setButtonText (TRANS("?"));
- configButton->setColour (TextButton::buttonColourId, Colour (0xff404000));
- configButton->setColour (TextButton::buttonOnColourId, Colours::olive);
- configButton->setColour (TextButton::textColourOnId, Colours::yellow);
- configButton->setColour (TextButton::textColourOffId, Colours::yellow);
- addAndMakeVisible (panSlider = new Slider ("panSlider"));
- panSlider->setExplicitFocusOrder (6);
- panSlider->setRange (-1, 1, 0);
- panSlider->setSliderStyle (Slider::Rotary);
- panSlider->setTextBoxStyle (Slider::NoTextBox, true, 0, 12);
- panSlider->setColour (Slider::textBoxTextColourId, Colours::grey);
- panSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black);
- panSlider->addListener (this);
- addAndMakeVisible (gainSlider = new Slider ("gainSlider"));
- gainSlider->setExplicitFocusOrder (7);
- gainSlider->setRange (-120, 20, 0);
- gainSlider->setSliderStyle (Slider::LinearVertical);
- gainSlider->setTextBoxStyle (Slider::NoTextBox, true, 48, 12);
- gainSlider->setColour (Slider::textBoxTextColourId, Colours::grey);
- gainSlider->setColour (Slider::textBoxBackgroundColourId, Colour (0x00000000));
- gainSlider->addListener (this);
- addAndMakeVisible (nameLabel = new Label ("nameLabel",
- TRANS("channel name")));
- nameLabel->setExplicitFocusOrder (8);
- nameLabel->setFont (Font (12.00f, Font::plain));
- nameLabel->setJustificationType (Justification::centred);
- nameLabel->setEditable (true, true, true);
- nameLabel->setColour (Label::textColourId, Colours::grey);
- nameLabel->setColour (TextEditor::textColourId, Colours::black);
- nameLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
- nameLabel->addListener (this);
- addAndMakeVisible (stereoLabel = new Label ("stereoLabel",
- TRANS("ST")));
- stereoLabel->setFont (Font (10.00f, Font::bold));
- stereoLabel->setJustificationType (Justification::centred);
- stereoLabel->setEditable (false, false, false);
- stereoLabel->setColour (Label::textColourId, Colours::green);
- stereoLabel->setColour (TextEditor::textColourId, Colours::black);
- stereoLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
- addAndMakeVisible (vuLeftSlider = new Slider ("vuLeftSlider"));
- vuLeftSlider->setRange (-120, 20, 0);
- vuLeftSlider->setSliderStyle (Slider::LinearBar);
- vuLeftSlider->setTextBoxStyle (Slider::NoTextBox, true, 48, 12);
- vuLeftSlider->setColour (Slider::textBoxTextColourId, Colours::grey);
- vuLeftSlider->setColour (Slider::textBoxBackgroundColourId, Colour (0x00000000));
- vuLeftSlider->addListener (this);
- addAndMakeVisible (vuRightSlider = new Slider ("vuRightSlider"));
- vuRightSlider->setRange (-120, 20, 0);
- vuRightSlider->setSliderStyle (Slider::LinearBar);
- vuRightSlider->setTextBoxStyle (Slider::NoTextBox, true, 48, 12);
- vuRightSlider->setColour (Slider::textBoxTextColourId, Colours::grey);
- vuRightSlider->setColour (Slider::textBoxBackgroundColourId, Colour (0x00000000));
- vuRightSlider->addListener (this);
- addAndMakeVisible (vuLeftLabel = new Label ("vuLeftLabel",
- TRANS("-120")));
- vuLeftLabel->setFont (Font (10.00f, Font::plain));
- vuLeftLabel->setJustificationType (Justification::centred);
- vuLeftLabel->setEditable (false, false, false);
- vuLeftLabel->setColour (Label::textColourId, Colours::grey);
- vuLeftLabel->setColour (TextEditor::textColourId, Colours::black);
- vuLeftLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
- addAndMakeVisible (vuRightLabel = new Label ("vuRightLabel",
- TRANS("-120")));
- vuRightLabel->setFont (Font (10.00f, Font::plain));
- vuRightLabel->setJustificationType (Justification::centred);
- vuRightLabel->setEditable (false, false, false);
- vuRightLabel->setColour (Label::textColourId, Colours::grey);
- vuRightLabel->setColour (TextEditor::textColourId, Colours::black);
- vuRightLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
- //[UserPreSize]
- this->vuLeftSlider ->setSliderStyle(Slider::LinearBarVertical) ;
- this->vuRightSlider->setSliderStyle(Slider::LinearBarVertical) ;
- this->vuLeftSlider ->setValue(GUI::VU_DB_MIN) ;
- this->vuRightSlider->setValue(GUI::VU_DB_MIN) ;
- //[/UserPreSize]
- setSize (60, 252);
- //[Constructor] You can add your own custom stuff here..
- String channel_name = str( channel_store[CONFIG::CHANNEL_NAME_ID]) ;
- double volume = double(channel_store[CONFIG::VOLUME_ID ]) ;
- double pan = double(channel_store[CONFIG::PAN_ID ]) ;
- bool is_xmit = bool( channel_store[CONFIG::IS_XMIT_RCV_ID ]) ;
- bool is_muted = bool( channel_store[CONFIG::IS_MUTED_ID ]) ;
- bool is_solo = bool( channel_store[CONFIG::IS_SOLO_ID ]) ;
- double vu_min = 0.0 ;
- double vu_max = GUI::VU_DB_RANGE ;
- double gain_min = GUI::VU_DB_MIN ;
- double gain_max = GUI::VU_DB_MIN + GUI::VU_DB_RANGE ;
- this->gainSlider->setValue( volume) ;
- this->panSlider ->setValue( pan) ;
- this->xmitButton->setToggleState(is_xmit , juce::dontSendNotification) ;
- this->muteButton->setToggleState(is_muted , juce::dontSendNotification) ;
- this->soloButton->setToggleState(is_solo , juce::dontSendNotification) ;
- this->nameLabel ->setText( channel_name , juce::dontSendNotification) ;
- this->gainSlider ->setDoubleClickReturnValue(true , 0.0) ;
- this->panSlider ->setDoubleClickReturnValue(true , 0.0) ;
- this->vuLeftSlider ->setInterceptsMouseClicks(false , false) ;
- this->vuRightSlider->setInterceptsMouseClicks(false , false) ;
- this->gainSlider ->setRange(gain_min , gain_max , 0) ;
- this->vuLeftSlider ->setRange(vu_min , vu_max , 0) ;
- this->vuRightSlider->setRange(vu_min , vu_max , 0) ;
- // local event handlers
- this->removeButton->addListener(this) ;
- this->configButton->addListener(this) ;
- this->xmitButton ->addListener(this) ;
- this->muteButton ->addListener(this) ;
- this->soloButton ->addListener(this) ;
- // establish shared config value holders and listeners
- this->channelStore = channel_store ;
- this->channelName .referTo(LinJamConfig::GetValueHolder(this->channelStore ,
- CONFIG::CHANNEL_NAME_ID)) ;
- this->stereoStatus .referTo(LinJamConfig::GetValueHolder(this->channelStore ,
- CONFIG::STEREO_ID )) ;
- this->vuLeft .referTo(LinJamConfig::GetValueHolder(this->channelStore ,
- CONFIG::VU_LEFT_ID )) ;
- this->vuRight .referTo(LinJamConfig::GetValueHolder(this->channelStore ,
- CONFIG::VU_RIGHT_ID )) ;
- this->channelName .addListener(this) ;
- this->stereoStatus .addListener(this) ;
- this->vuLeft .addListener(this) ;
- this->vuRight .addListener(this) ;
- //[/Constructor]
- }
- Channel::~Channel()
- {
- //[Destructor_pre]. You can add your own custom destruction code here..
- //[/Destructor_pre]
- xmitButton = nullptr;
- muteButton = nullptr;
- soloButton = nullptr;
- removeButton = nullptr;
- configButton = nullptr;
- panSlider = nullptr;
- gainSlider = nullptr;
- nameLabel = nullptr;
- stereoLabel = nullptr;
- vuLeftSlider = nullptr;
- vuRightSlider = nullptr;
- vuLeftLabel = nullptr;
- vuRightLabel = nullptr;
- //[Destructor]. You can add your own custom destruction code here..
- //[/Destructor]
- }
- //==============================================================================
- void Channel::paint (Graphics& g)
- {
- //[UserPrePaint] Add your own custom painting code here..
- //[/UserPrePaint]
- g.setColour (Colours::black);
- g.fillRoundedRectangle (0.0f, 0.0f, static_cast<float> (getWidth() - 0), static_cast<float> (getHeight() - 0), 10.000f);
- g.setColour (Colours::white);
- g.drawRoundedRectangle (0.0f, 0.0f, static_cast<float> (getWidth() - 0), static_cast<float> (getHeight() - 0), 10.000f, 1.000f);
- //[UserPaint] Add your own custom painting code here..
- //[/UserPaint]
- }
- void Channel::resized()
- {
- //[UserPreResize] Add your own custom resize code here..
- //[/UserPreResize]
- xmitButton->setBounds (4, 4, 36, 12);
- muteButton->setBounds (4, 20, 36, 12);
- soloButton->setBounds (4, 36, 36, 12);
- removeButton->setBounds (45, 0, 15, 16);
- configButton->setBounds (45, 16, 15, 16);
- panSlider->setBounds (12, 52, 36, 36);
- gainSlider->setBounds (22, 92, 16, 128);
- nameLabel->setBounds (4, 236, 52, 12);
- stereoLabel->setBounds (12, 72, 36, 12);
- vuLeftSlider->setBounds (6, 92, 16, 128);
- vuRightSlider->setBounds (38, 92, 16, 128);
- vuLeftLabel->setBounds (4, 224, 24, 12);
- vuRightLabel->setBounds (32, 224, 24, 12);
- //[UserResized] Add your own custom resize handling here..
- bool is_mono = int(this->stereoStatus.getValue()) == CONFIG::MONO ;
- bool is_master = this->channelStore.getParent().getType() == CONFIG::MASTERS_ID &&
- this->channelStore .getType() == CONFIG::MASTER_ID ;
- if (is_mono && !is_master)
- {
- vuLeftSlider->setBounds(6 , 92 , 24 , 128) ;
- gainSlider ->setBounds(32 , 92 , 24 , 128) ;
- }
- //[/UserResized]
- }
- void Channel::sliderValueChanged (Slider* sliderThatWasMoved)
- {
- //[UsersliderValueChanged_Pre]
- var value = var(sliderThatWasMoved->getValue()) ;
- Identifier key ;
- //[/UsersliderValueChanged_Pre]
- if (sliderThatWasMoved == panSlider)
- {
- //[UserSliderCode_panSlider] -- add your slider handling code here..
- key = CONFIG::PAN_ID ;
- //[/UserSliderCode_panSlider]
- }
- else if (sliderThatWasMoved == gainSlider)
- {
- //[UserSliderCode_gainSlider] -- add your slider handling code here..
- key = CONFIG::VOLUME_ID ;
- //[/UserSliderCode_gainSlider]
- }
- else if (sliderThatWasMoved == vuLeftSlider)
- {
- //[UserSliderCode_vuLeftSlider] -- add your slider handling code here..
- // read only - unhandled
- //[/UserSliderCode_vuLeftSlider]
- }
- else if (sliderThatWasMoved == vuRightSlider)
- {
- //[UserSliderCode_vuRightSlider] -- add your slider handling code here..
- // read only - unhandled
- //[/UserSliderCode_vuRightSlider]
- }
- //[UsersliderValueChanged_Post]
- setConfig(key , value) ;
- //[/UsersliderValueChanged_Post]
- }
- void Channel::labelTextChanged (Label* labelThatHasChanged)
- {
- //[UserlabelTextChanged_Pre]
- //[/UserlabelTextChanged_Pre]
- if (labelThatHasChanged == nameLabel)
- {
- //[UserLabelCode_nameLabel] -- add your label text handling code here..
- DEBUG_TRACE_RENAME_CHANNEL_GUI_VIA_LABEL
- String gui_name = this->nameLabel->getText() ;
- int stereo_status = int(this->stereoStatus.getValue()) ;
- String client_name = LinJamConfig::MakeStereoName(gui_name , stereo_status) ;
- setConfig(CONFIG::CHANNEL_NAME_ID , var(client_name)) ;
- //[/UserLabelCode_nameLabel]
- }
- //[UserlabelTextChanged_Post]
- //[/UserlabelTextChanged_Post]
- }
- //[MiscUserCode] You can add your own definitions of your custom methods or any other code here...
- /* Channel class private instance methods */
- void Channel::buttonClicked(Button* a_button) { handleButtonClicked(a_button) ; }
- void Channel::valueChanged(Value& a_value)
- {
- bool is_vu_left = a_value.refersToSameSourceAs(this->vuLeft ) ;
- bool is_vu_right = a_value.refersToSameSourceAs(this->vuRight ) ;
- bool is_stereo = a_value.refersToSameSourceAs(this->stereoStatus) ;
- bool is_name = a_value.refersToSameSourceAs(this->channelName ) ;
- if (is_vu_left ) updateVU(this->vuLeftSlider , this->vuLeftLabel , this->vuLeft) ;
- else if (is_vu_right) updateVU(this->vuRightSlider , this->vuRightLabel , this->vuRight) ;
- else if (is_stereo ) setStereoState() ;
- else if (is_name )
- {
- DEBUG_TRACE_RENAME_CHANNEL_GUI_VIA_CALLOUTBOX
- String client_name = str(this->channelName.getValue()) ;
- String gui_name = LinJamConfig::TrimStereoName(client_name) ;
- this->nameLabel->setText(gui_name , juce::dontSendNotification) ;
- }
- }
- void Channel::updateVU(Slider* a_vu_slider , Label* a_vu_label , Value vu_var)
- {
- double vu_value = double(vu_var.getValue()) ;
- double actual_vu = vu_value + GUI::VU_DB_MIN ;
- bool is_metro = this->channelStore.getType() == CONFIG::METRO_ID ;
- bool is_saturated = actual_vu >= 0.0 && !is_metro ;
- String label_text = (vu_value <= GUI::VU_DB_RANGE) ? String(int(actual_vu) ) :
- String(GUI::INFINITY_CHAR) ;
- a_vu_slider->setValue(vu_value) ;
- a_vu_label ->setText(label_text , juce::dontSendNotification) ;
- a_vu_slider->setColour(Slider::thumbColourId , (is_saturated) ?
- Colour(0xFFFF0000) :
- Colour(0xFFBBBBFF)) ;
- a_vu_slider->setColour(Slider::trackColourId , (is_saturated) ?
- Colour(0x80800000) :
- Colour(0x80008000)) ;
- }
- void Channel::setConfig(Identifier a_key , var a_value)
- {
- if (a_key.isValid()) this->channelStore.setProperty(a_key , a_value , nullptr) ;
- }
- /* Channel class protected instance methods */
- bool Channel::handleButtonClicked(Button* a_button)
- {
- Identifier key = (a_button == this->xmitButton) ? CONFIG::IS_XMIT_RCV_ID :
- (a_button == this->muteButton) ? CONFIG::IS_MUTED_ID :
- (a_button == this->soloButton) ? CONFIG::IS_SOLO_ID :
- Identifier::null ;
- var value = var(a_button->getToggleState()) ;
- bool was_handled = key.isValid() ;
- if (was_handled) setConfig(key , value) ;
- return was_handled ;
- }
- void Channel::setStereoState()
- {
- DEBUG_TRACE_STEREO_STATE_GUI
- bool is_stereo = int(this->stereoStatus.getValue()) != CONFIG::MONO ;
- bool is_metro = this->channelStore.getType() == CONFIG::METRO_ID ;
- // show/hide stereo-only components
- this->stereoLabel ->setVisible(is_stereo) ;
- this->vuRightSlider->setVisible(is_stereo) ;
- this->vuRightLabel ->setVisible(is_stereo && !is_metro) ;
- // set channel name
- String channel_name = str(this->channelName.getValue()) ;
- String stereo_postfix = channel_name.getLastCharacters(CLIENT::STEREO_POSTFIX_N_CHARS) ;
- if (is_stereo && !stereo_postfix.compare(CLIENT::STEREO_L_POSTFIX))
- channel_name = LinJamConfig::TrimStereoName(channel_name) ;
- this->nameLabel->setText(channel_name , juce::dontSendNotification) ;
- resized() ;
- }
- /* MasterChannels , LocalChannels , RemoteChannels classes private class methods */
- MasterChannel::MasterChannel(ValueTree channel_store) : Channel(channel_store)
- {
- this->removeButton->setVisible(false) ;
- this->configButton->setVisible(false) ;
- this->xmitButton ->setVisible(false) ;
- this->soloButton ->setVisible(false) ;
- this->stereoLabel ->setVisible(true) ;
- this->nameLabel ->setEditable(false , false , false) ;
- // metro VU used as loop progress indicator
- if (this->channelStore.getType() == CONFIG::METRO_ID)
- {
- this->vuLeftSlider ->setRange(0.0 , 1.0 , 0.0) ;
- this->vuRightSlider->setRange(0.0 , 1.0 , 0.0) ;
- this->vuLeftLabel ->setVisible(false) ;
- this->vuRightLabel ->setVisible(false) ;
- }
- setStereoState() ;
- }
- LocalChannel::LocalChannel(ValueTree channel_store) : Channel(channel_store)
- {
- this->xmitButton->setButtonText(GUI::XMIT_LABEL_TEXT) ;
- setStereoState() ;
- }
- RemoteChannel::RemoteChannel(ValueTree channel_store) : Channel(channel_store)
- {
- this->nameLabel ->setEditable(false , false , false) ;
- this->removeButton->setVisible(false) ;
- this->configButton->setVisible(false) ;
- this->xmitButton ->setButtonText(GUI::RCV_LABEL_TEXT) ;
- setStereoState() ;
- }
- /* LocalChannel class private instance methods */
- void LocalChannel::buttonClicked(Button* a_button)
- {
- if (handleButtonClicked(a_button)) return ;
- if (a_button == this->removeButton)
- LinJam::RemoveLocalChannel(this->channelStore) ;
- else if (a_button == this->configButton)
- {
- ConfigChannel* configChannel = new ConfigChannel(this->channelStore) ;
- Component* mixer = getParentComponent()->getParentComponent() ;
- Component* mainContent = mixer->getParentComponent() ;
- // compute CallOutBox arrow target posistion
- int modalX = mixer->getX() + getX() + this->configButton->getX() + GUI::HOVER_BTN_XC ;
- int modalY = mixer->getY() + getY() + this->configButton->getY() + GUI::HOVER_BTN_YC ;
- juce::Rectangle<int> modalRect = juce::Rectangle<int>(modalX , modalY , 1 , 1) ;
- // instantiate ConfigChannel as CallOutBox
- configChannel->setSize(GUI::CHANNEL_CONFIG_W , GUI::CHANNEL_CONFIG_H) ;
- CallOutBox::launchAsynchronously(configChannel , modalRect , mainContent) ;
- }
- }
- //[/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="Channel" componentName="Channel"
- parentClasses="public Component, public ButtonListener, public SliderListener, public Value::Listener"
- constructorParams="ValueTree channel_store" variableInitialisers=""
- snapPixels="8" snapActive="1" snapShown="1" overlayOpacity="0.330"
- fixedSize="0" initialWidth="60" initialHeight="252">
- <BACKGROUND backgroundColour="0">
- <ROUNDRECT pos="0 0 0M 0M" cornerSize="10" fill="solid: ff000000" hasStroke="1"
- stroke="1, mitered, butt" strokeColour="solid: ffffffff"/>
- </BACKGROUND>
- <TOGGLEBUTTON name="xmitButton" id="f45f759640162c62" memberName="xmitButton"
- virtualName="" explicitFocusOrder="1" pos="4 4 36 12" txtcol="ff808080"
- buttonText="XMIT" connectedEdges="0" needsCallback="0" radioGroupId="0"
- state="0"/>
- <TOGGLEBUTTON name="muteButton" id="263020526add917" memberName="muteButton"
- virtualName="" explicitFocusOrder="2" pos="4 20 36 12" txtcol="ff808080"
- buttonText="MUTE" connectedEdges="0" needsCallback="0" radioGroupId="0"
- state="0"/>
- <TOGGLEBUTTON name="soloButton" id="3b096c8c7df5c792" memberName="soloButton"
- virtualName="" explicitFocusOrder="3" pos="4 36 36 12" txtcol="ff808080"
- buttonText="SOLO" connectedEdges="0" needsCallback="0" radioGroupId="0"
- state="0"/>
- <TEXTBUTTON name="removeButton" id="becd368b728d32c0" memberName="removeButton"
- virtualName="" explicitFocusOrder="4" pos="45 0 15 16" bgColOff="ff400000"
- bgColOn="ff800000" textCol="ffff0000" textColOn="ffff0000" buttonText="X"
- connectedEdges="0" needsCallback="0" radioGroupId="0"/>
- <TEXTBUTTON name="configButton" id="f0a56a4ebe614916" memberName="configButton"
- virtualName="" explicitFocusOrder="5" pos="45 16 15 16" bgColOff="ff404000"
- bgColOn="ff808000" textCol="ffffff00" textColOn="ffffff00" buttonText="?"
- connectedEdges="0" needsCallback="0" radioGroupId="0"/>
- <SLIDER name="panSlider" id="aa7c4f80abb603e9" memberName="panSlider"
- virtualName="" explicitFocusOrder="6" pos="12 52 36 36" textboxtext="ff808080"
- textboxbkgd="ff000000" min="-1" max="1" int="0" style="Rotary"
- textBoxPos="NoTextBox" textBoxEditable="0" textBoxWidth="0" textBoxHeight="12"
- skewFactor="1"/>
- <SLIDER name="gainSlider" id="e34ef13291b2ec40" memberName="gainSlider"
- virtualName="" explicitFocusOrder="7" pos="22 92 16 128" textboxtext="ff808080"
- textboxbkgd="0" min="-120" max="20" int="0" style="LinearVertical"
- textBoxPos="NoTextBox" textBoxEditable="0" textBoxWidth="48"
- textBoxHeight="12" skewFactor="1"/>
- <LABEL name="nameLabel" id="66bafa468220da02" memberName="nameLabel"
- virtualName="" explicitFocusOrder="8" pos="4 236 52 12" textCol="ff808080"
- edTextCol="ff000000" edBkgCol="0" labelText="channel name" editableSingleClick="1"
- editableDoubleClick="1" focusDiscardsChanges="1" fontname="Default font"
- fontsize="12" bold="0" italic="0" justification="36"/>
- <LABEL name="stereoLabel" id="deaf84482cab9f7d" memberName="stereoLabel"
- virtualName="" explicitFocusOrder="0" pos="12 72 36 12" textCol="ff008000"
- edTextCol="ff000000" edBkgCol="0" labelText="ST" editableSingleClick="0"
- editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
- fontsize="10" bold="1" italic="0" justification="36"/>
- <SLIDER name="vuLeftSlider" id="fbb656fdc87f46ed" memberName="vuLeftSlider"
- virtualName="" explicitFocusOrder="0" pos="6 92 16 128" textboxtext="ff808080"
- textboxbkgd="0" min="-120" max="20" int="0" style="LinearBar"
- textBoxPos="NoTextBox" textBoxEditable="0" textBoxWidth="48"
- textBoxHeight="12" skewFactor="1"/>
- <SLIDER name="vuRightSlider" id="31c942b6caa362dd" memberName="vuRightSlider"
- virtualName="" explicitFocusOrder="0" pos="38 92 16 128" textboxtext="ff808080"
- textboxbkgd="0" min="-120" max="20" int="0" style="LinearBar"
- textBoxPos="NoTextBox" textBoxEditable="0" textBoxWidth="48"
- textBoxHeight="12" skewFactor="1"/>
- <LABEL name="vuLeftLabel" id="cdc1fb3056af7c9b" memberName="vuLeftLabel"
- virtualName="" explicitFocusOrder="0" pos="4 224 24 12" textCol="ff808080"
- edTextCol="ff000000" edBkgCol="0" labelText="-120" editableSingleClick="0"
- editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
- fontsize="10" bold="0" italic="0" justification="36"/>
- <LABEL name="vuRightLabel" id="4bb31261e6795ae1" memberName="vuRightLabel"
- virtualName="" explicitFocusOrder="0" pos="32 224 24 12" textCol="ff808080"
- edTextCol="ff000000" edBkgCol="0" labelText="-120" editableSingleClick="0"
- editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
- fontsize="10" bold="0" italic="0" justification="36"/>
- </JUCER_COMPONENT>
- END_JUCER_METADATA
- */
- #endif
- //[EndFile] You can add extra defines here...
- //[/EndFile]
|