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

mqEditor.h (1664B)


      1 #pragma once
      2 
      3 #include "jucePluginEditorLib/pluginEditor.h"
      4 
      5 namespace jucePluginEditorLib
      6 {
      7 	class FocusedParameter;
      8 	class Processor;
      9 }
     10 
     11 namespace pluginLib
     12 {
     13 	class ParameterBinding;
     14 }
     15 
     16 namespace mqJucePlugin
     17 {
     18 	class mqPartSelect;
     19 	class Controller;
     20 	class FrontPanel;
     21 	class PatchManager;
     22 
     23 	class Editor final : public jucePluginEditorLib::Editor
     24 	{
     25 	public:
     26 		Editor(jucePluginEditorLib::Processor& _processor, pluginLib::ParameterBinding& _binding, const jucePluginEditorLib::Skin& _skin);
     27 		~Editor() override;
     28 
     29 		Editor(Editor&&) = delete;
     30 		Editor(const Editor&) = delete;
     31 		Editor& operator = (Editor&&) = delete;
     32 		Editor& operator = (const Editor&) = delete;
     33 
     34 		std::pair<std::string, std::string> getDemoRestrictionText() const override;
     35 
     36 		Controller& getMqController() const { return m_controller; }
     37 
     38 		genericUI::Button<juce::DrawableButton>* createJuceComponent(genericUI::Button<juce::DrawableButton>*, genericUI::UiObject& _object, const std::string& _name, juce::DrawableButton::ButtonStyle) override;
     39 
     40 		mqPartSelect* getPartSelect() const
     41 		{
     42 			return m_partSelect.get();
     43 		}
     44 
     45 	private:
     46 		void mouseEnter(const juce::MouseEvent& _event) override;
     47 
     48 		void savePreset(const pluginLib::FileType& _type);
     49 
     50 		void onBtSave();
     51 		void onBtPresetPrev();
     52 		void onBtPresetNext();
     53 
     54 		Controller& m_controller;
     55 
     56 		std::unique_ptr<FrontPanel> m_frontPanel;
     57 		std::unique_ptr<mqPartSelect> m_partSelect;
     58 		juce::Button* m_btPlayModeMulti = nullptr;
     59 		juce::Button* m_btSave = nullptr;
     60 		juce::Button* m_btPresetPrev = nullptr;
     61 		juce::Button* m_btPresetNext = nullptr;
     62 
     63 		std::unique_ptr<jucePluginEditorLib::FocusedParameter> m_focusedParameter;
     64 	};
     65 }