gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

parameterOverlays.h (1080B)


      1 #pragma once
      2 
      3 #include <map>
      4 #include <memory>
      5 
      6 #include "parameterOverlay.h"
      7 
      8 #include "jucePluginLib/parameterbinding.h"
      9 
     10 namespace pluginLib
     11 {
     12 	class ParameterBinding;
     13 }
     14 
     15 namespace juce
     16 {
     17 	class Component;
     18 }
     19 
     20 namespace jucePluginEditorLib
     21 {
     22 	class Editor;
     23 
     24 	class ParameterOverlays
     25 	{
     26 	public:
     27 		explicit ParameterOverlays(Editor& _editor, pluginLib::ParameterBinding& _binding);
     28 		~ParameterOverlays();
     29 
     30 		bool registerComponent(juce::Component* _component);
     31 
     32 		Editor& getEditor() const { return m_editor; }
     33 
     34 		void refreshAll() const;
     35 
     36 	private:
     37 		void onBind(const pluginLib::ParameterBinding::BoundParameter& _parameter);
     38 		void onUnbind(const pluginLib::ParameterBinding::BoundParameter& _parameter);
     39 
     40 		ParameterOverlay* getOverlay(const juce::Component* _comp);
     41 		ParameterOverlay* getOverlay(const pluginLib::ParameterBinding::BoundParameter& _parameter);
     42 
     43 		Editor& m_editor;
     44 		pluginLib::ParameterBinding& m_binding;
     45 
     46 		std::map<const juce::Component*, std::unique_ptr<ParameterOverlay>> m_overlays;
     47 		size_t m_onBindListenerId;
     48 		size_t m_onUnbindListenerId;
     49 	};
     50 }