Channel.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. /*
  2. ==============================================================================
  3. This is an automatically generated GUI class created by the Introjucer!
  4. Be careful when adding custom code to these files, as only the code within
  5. the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded
  6. and re-saved.
  7. Created with Introjucer version: 3.1.0
  8. ------------------------------------------------------------------------------
  9. The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions"
  10. Copyright 2004-13 by Raw Material Software Ltd.
  11. ==============================================================================
  12. */
  13. #ifndef __JUCE_HEADER_321A28830126E8DE__
  14. #define __JUCE_HEADER_321A28830126E8DE__
  15. //[Headers] -- You can add your own extra header files here --
  16. #include "JuceHeader.h"
  17. //[/Headers]
  18. //==============================================================================
  19. /**
  20. //[Comments]
  21. An auto-generated component, created by the Introjucer.
  22. Describe your class and how it works here!
  23. //[/Comments]
  24. */
  25. class Channel : public Component,
  26. public ButtonListener,
  27. public SliderListener,
  28. public Value::Listener,
  29. public LabelListener
  30. {
  31. public:
  32. //==============================================================================
  33. Channel (ValueTree channel_store);
  34. ~Channel();
  35. //==============================================================================
  36. //[UserMethods] -- You can add your own custom methods in this section.
  37. #if DEBUG
  38. friend class Channels ;
  39. #endif // DEBUG
  40. //[/UserMethods]
  41. void paint (Graphics& g);
  42. void resized();
  43. void sliderValueChanged (Slider* sliderThatWasMoved);
  44. void labelTextChanged (Label* labelThatHasChanged);
  45. private:
  46. //[UserVariables] -- You can add your own custom variables in this section.
  47. Value channelName ;
  48. Value stereoStatus ;
  49. Value vuLeft ;
  50. Value vuRight ;
  51. void buttonClicked( Button* a_button) override ;
  52. void valueChanged( Value& a_value) override ;
  53. void updateChannelVU(Slider* a_vu_slider , Label* a_vu_label , double vu) ;
  54. Value getValueObject( Identifier a_key) ;
  55. void setConfig( Identifier a_key , var a_value) ;
  56. protected:
  57. ValueTree configStore ;
  58. bool handleButtonClicked(Button* a_button) ;
  59. void setStereoState() ;
  60. //[/UserVariables]
  61. //==============================================================================
  62. ScopedPointer<ToggleButton> xmitButton;
  63. ScopedPointer<ToggleButton> muteButton;
  64. ScopedPointer<ToggleButton> soloButton;
  65. ScopedPointer<TextButton> removeButton;
  66. ScopedPointer<TextButton> configButton;
  67. ScopedPointer<Slider> panSlider;
  68. ScopedPointer<Slider> gainSlider;
  69. ScopedPointer<Label> nameLabel;
  70. ScopedPointer<Label> stereoLabel;
  71. ScopedPointer<Slider> vuLeftSlider;
  72. ScopedPointer<Slider> vuRightSlider;
  73. ScopedPointer<Label> vuLeftLabel;
  74. ScopedPointer<Label> vuRightLabel;
  75. //==============================================================================
  76. JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Channel)
  77. };
  78. //[EndFile] You can add extra defines here...
  79. class MasterChannel : public Channel
  80. {
  81. friend class MasterChannels ;
  82. MasterChannel(ValueTree channel_store) ;
  83. } ;
  84. class LocalChannel : public Channel
  85. {
  86. friend class LocalChannels ;
  87. LocalChannel(ValueTree channel_store) ;
  88. void buttonClicked(Button* a_button) ;
  89. } ;
  90. class RemoteChannel : public Channel
  91. {
  92. friend class RemoteChannels ;
  93. RemoteChannel(ValueTree channel_store) ;
  94. } ;
  95. //[/EndFile]
  96. #endif // __JUCE_HEADER_321A28830126E8DE__