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 }