| @@ -33,9 +33,9 @@ class ParameterListener : private AudioProcessorParameter::Listener, | |||||
| { | { | ||||
| public: | public: | ||||
| ParameterListener (AudioProcessor& proc, AudioProcessorParameter& param) | ParameterListener (AudioProcessor& proc, AudioProcessorParameter& param) | ||||
| : processor (proc), parameter (param) | |||||
| : processor (proc), parameter (param), isLegacyParam (LegacyAudioParameter::isLegacy (¶m)) | |||||
| { | { | ||||
| if (LegacyAudioParameter::isLegacy (¶meter)) | |||||
| if (isLegacyParam) | |||||
| processor.addListener (this); | processor.addListener (this); | ||||
| else | else | ||||
| parameter.addListener (this); | parameter.addListener (this); | ||||
| @@ -45,7 +45,7 @@ public: | |||||
| ~ParameterListener() override | ~ParameterListener() override | ||||
| { | { | ||||
| if (LegacyAudioParameter::isLegacy (¶meter)) | |||||
| if (isLegacyParam) | |||||
| processor.removeListener (this); | processor.removeListener (this); | ||||
| else | else | ||||
| parameter.removeListener (this); | parameter.removeListener (this); | ||||
| @@ -93,6 +93,7 @@ private: | |||||
| AudioProcessor& processor; | AudioProcessor& processor; | ||||
| AudioProcessorParameter& parameter; | AudioProcessorParameter& parameter; | ||||
| Atomic<int> parameterValueHasChanged { 0 }; | Atomic<int> parameterValueHasChanged { 0 }; | ||||
| const bool isLegacyParam; | |||||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ParameterListener) | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ParameterListener) | ||||
| }; | }; | ||||
| @@ -498,6 +499,11 @@ public: | |||||
| setSize (maxWidth, height); | setSize (maxWidth, height); | ||||
| } | } | ||||
| ~ParametersPanel() | |||||
| { | |||||
| paramComponents.clear(); | |||||
| } | |||||
| void paint (Graphics& g) override | void paint (Graphics& g) override | ||||
| { | { | ||||
| g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); | g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); | ||||
| @@ -535,6 +541,11 @@ struct GenericAudioProcessorEditor::Pimpl | |||||
| view.setScrollBarsShown (true, false); | view.setScrollBarsShown (true, false); | ||||
| } | } | ||||
| ~Pimpl() | |||||
| { | |||||
| view.setViewedComponent (nullptr, false); | |||||
| } | |||||
| void resize (Rectangle<int> size) | void resize (Rectangle<int> size) | ||||
| { | { | ||||
| view.setBounds (size); | view.setBounds (size); | ||||