You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
2.1KB

  1. /*
  2. ==============================================================================
  3. This file was auto-generated!
  4. It contains the basic framework code for a JUCE plugin editor.
  5. ==============================================================================
  6. */
  7. #pragma once
  8. #include "../JuceLibraryCode/JuceHeader.h"
  9. #include "PluginProcessor.h"
  10. #include <memory>
  11. #include <vector>
  12. class ParameterComponent : public Component,
  13. public Slider::Listener
  14. {
  15. public:
  16. ParameterComponent(AudioProcessorParameter* par) : m_par(par)
  17. {
  18. addAndMakeVisible(&m_label);
  19. m_label.setText(par->getName(50),dontSendNotification);
  20. AudioParameterFloat* floatpar = dynamic_cast<AudioParameterFloat*>(par);
  21. if (floatpar)
  22. {
  23. m_slider = std::make_unique<Slider>();
  24. m_slider->setRange(floatpar->range.start, floatpar->range.end, floatpar->range.interval);
  25. m_slider->setValue(*floatpar, dontSendNotification);
  26. m_slider->addListener(this);
  27. addAndMakeVisible(m_slider.get());
  28. }
  29. AudioParameterChoice* choicepar = dynamic_cast<AudioParameterChoice*>(par);
  30. if (choicepar)
  31. {
  32. }
  33. AudioParameterBool* boolpar = dynamic_cast<AudioParameterBool*>(par);
  34. if (boolpar)
  35. {
  36. }
  37. }
  38. void resized() override
  39. {
  40. m_label.setBounds(0, 0, 200, 24);
  41. if (m_slider)
  42. m_slider->setBounds(m_label.getRight() + 1, 0, getWidth() - 2 - m_label.getWidth(), 24);
  43. }
  44. void sliderValueChanged(Slider* slid) override
  45. {
  46. }
  47. private:
  48. Label m_label;
  49. AudioProcessorParameter* m_par = nullptr;
  50. std::unique_ptr<Slider> m_slider;
  51. std::unique_ptr<ComboBox> m_combobox;
  52. std::unique_ptr<ToggleButton> m_togglebut;
  53. };
  54. class PaulstretchpluginAudioProcessorEditor : public AudioProcessorEditor
  55. {
  56. public:
  57. PaulstretchpluginAudioProcessorEditor (PaulstretchpluginAudioProcessor&);
  58. ~PaulstretchpluginAudioProcessorEditor();
  59. //==============================================================================
  60. void paint (Graphics&) override;
  61. void resized() override;
  62. private:
  63. PaulstretchpluginAudioProcessor& processor;
  64. std::vector<std::shared_ptr<ParameterComponent>> m_parcomps;
  65. JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PaulstretchpluginAudioProcessorEditor)
  66. };