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

pluginProcessor.h (1184B)


      1 #pragma once
      2 
      3 #include "jucePluginLib/processor.h"
      4 
      5 namespace jucePluginEditorLib
      6 {
      7 	class PluginEditorState;
      8 
      9 	class Processor : public pluginLib::Processor
     10 	{
     11 	public:
     12 		Processor(const BusesProperties& _busesProperties, const juce::PropertiesFile::Options& _configOptions, const pluginLib::Processor::Properties& _properties);
     13 		~Processor() override;
     14 
     15 		juce::PropertiesFile::Options& getConfigOptions() { return m_configOptions; }
     16 		juce::PropertiesFile& getConfig() { return m_config; }
     17 
     18 		bool setLatencyBlocks(uint32_t _blocks) override;
     19 
     20 		bool hasEditor() const override;
     21 		juce::AudioProcessorEditor* createEditor() override;
     22 
     23 		virtual PluginEditorState* createEditorState() = 0;
     24 		void destroyEditorState();
     25 
     26 		void saveChunkData(baseLib::BinaryStream& s) override;
     27 		bool loadCustomData(const std::vector<uint8_t>& _sourceBuffer) override;
     28 		void loadChunkData(baseLib::ChunkReader& _cr) override;
     29 
     30 	private:
     31 		juce::File initConfigFile(const juce::PropertiesFile::Options& _o) const;
     32 
     33 		std::unique_ptr<PluginEditorState> m_editorState;
     34 
     35 		juce::PropertiesFile::Options m_configOptions;
     36 		juce::PropertiesFile m_config;
     37 
     38 		std::vector<uint8_t> m_editorStateData;
     39 	};
     40 }