Channels.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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_8B661D82CCFDE918__
  14. #define __JUCE_HEADER_8B661D82CCFDE918__
  15. //[Headers] -- You can add your own extra header files here --
  16. #include "Channel.h"
  17. #include "JuceHeader.h"
  18. //[/Headers]
  19. //==============================================================================
  20. /**
  21. //[Comments]
  22. This is the component superclass of channels mixergroups.
  23. It is a container for related Channel mixer slices
  24. with an expand/add button.
  25. //[/Comments]
  26. */
  27. class Channels : public Component
  28. {
  29. public:
  30. //==============================================================================
  31. Channels ();
  32. ~Channels();
  33. //==============================================================================
  34. //[UserMethods] -- You can add your own custom methods in this section.
  35. bool addChannel( ValueTree channel_store) ;
  36. void removeChannel( Identifier channel_id) ;
  37. int getNumChannels() ;
  38. //[/UserMethods]
  39. void paint (Graphics& g);
  40. void resized();
  41. private:
  42. //[UserVariables] -- You can add your own custom variables in this section.
  43. protected:
  44. virtual Channel* newChannel(ValueTree channel_store) = 0 ;
  45. Channel* getChannel(Identifier channel_id) ;
  46. //[/UserVariables]
  47. //==============================================================================
  48. ScopedPointer<Label> channelsLabel;
  49. ScopedPointer<TextButton> addButton;
  50. ScopedPointer<TextButton> expandButton;
  51. ScopedPointer<TextButton> ignoreButton;
  52. //==============================================================================
  53. JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Channels)
  54. };
  55. //[EndFile] You can add extra defines here...
  56. class MasterChannels : public Channels
  57. {
  58. public:
  59. MasterChannels() ;
  60. private:
  61. void buttonClicked(Button* buttonThatWasClicked) ;
  62. Channel* newChannel(ValueTree channel_store) override ;
  63. } ;
  64. class LocalChannels : public Channels , public ButtonListener
  65. {
  66. public:
  67. LocalChannels() ;
  68. private:
  69. void buttonClicked(Button* buttonThatWasClicked) ;
  70. Channel* newChannel( ValueTree channel_store) override ;
  71. } ;
  72. class RemoteChannels : public Channels , public ButtonListener
  73. {
  74. public:
  75. RemoteChannels(ValueTree user_store , ValueTree subscriptions) ;
  76. private:
  77. ValueTree configStore ;
  78. ValueTree subscriptions ;
  79. bool isExpanded ;
  80. void buttonClicked( Button* buttonThatWasClicked) ;
  81. void toggleExpandChannels() ;
  82. Channel* newChannel( ValueTree channel_store) override ;
  83. } ;
  84. //[/EndFile]
  85. #endif // __JUCE_HEADER_8B661D82CCFDE918__