#pragma once #include #include "Veno/VenoInstance.h" class VenoAudioProcessor : public AudioProcessor { public: //============================================================================== VenoAudioProcessor(); ~VenoAudioProcessor(); void prepareToPlay(double sampleRate, int samplesPerBlock) override; void releaseResources() override; #ifndef JucePlugin_PreferredChannelConfigurations bool isBusesLayoutSupported(const BusesLayout &layouts) const override; #endif void processBlock(AudioBuffer &, MidiBuffer &) override; AudioProcessorEditor *createEditor() override; bool hasEditor() const override; const String getName() const override; bool acceptsMidi() const override; bool producesMidi() const override; bool isMidiEffect() const override; double getTailLengthSeconds() const override; int getNumPrograms() override; int getCurrentProgram() override; void setCurrentProgram(int index) override; const String getProgramName(int index) override; void changeProgramName(int index, const String &newName) override; void getStateInformation(MemoryBlock &destData) override; void setStateInformation(const void *data, int sizeInBytes) override; // Variable to communicate with the GUI and the Processor std::string m_id = Uuid().toString().toStdString(); std::shared_ptr instance; private: JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (VenoAudioProcessor) };