FahlGrahn Audio v1.0.0
Loading...
Searching...
No Matches
PluginProcessor.h
1#pragma once
2
3#include <juce_audio_processors/juce_audio_processors.h>
4#include <juce_audio_devices/juce_audio_devices.h>
5#include <juce_audio_formats/juce_audio_formats.h>
6
7//==============================================================================
8class AudioPluginAudioProcessor final : public juce::AudioProcessor
9{
10 public:
11 //==============================================================================
14
15 //==============================================================================
16 void prepareToPlay(double sampleRate, int samplesPerBlock) override;
17 void releaseResources() override;
18
19 bool isBusesLayoutSupported(const BusesLayout &layouts) const override;
20
21 void processBlock(juce::AudioBuffer<float> &, juce::MidiBuffer &) override;
22 using AudioProcessor::processBlock;
23
24 //==============================================================================
25 juce::AudioProcessorEditor *createEditor() override;
26 bool hasEditor() const override;
27
28 //==============================================================================
29 const juce::String getName() const override;
30
31 bool acceptsMidi() const override;
32 bool producesMidi() const override;
33 bool isMidiEffect() const override;
34 double getTailLengthSeconds() const override;
35
36 //==============================================================================
37 int getNumPrograms() override;
38 int getCurrentProgram() override;
39 void setCurrentProgram(int index) override;
40 const juce::String getProgramName(int index) override;
41 void changeProgramName(int index, const juce::String &newName) override;
42
43 //==============================================================================
44 void getStateInformation(juce::MemoryBlock &destData) override;
45 void setStateInformation(const void *data, int sizeInBytes) override;
46
47 bool loadFile(juce::File &file);
48 juce::AudioTransportSource &getTransportSource()
49 {
50 return transportSource;
51 }
52 juce::AudioFormatReaderSource &getAudioFormatReaderSource()
53 {
54 return *audioFormatReaderSource;
55 }
56
57 juce::AudioProcessorValueTreeState mParameters;
58
59 private:
60 juce::AudioTransportSource transportSource;
61 juce::AudioFormatManager audioFormatManager;
62 std::unique_ptr<juce::AudioFormatReaderSource> audioFormatReaderSource;
63
64 float previousGain;
65 juce::AudioParameterFloat *gainParameter;
66 juce::AudioParameterBool *loopParameter;
67 juce::AudioParameterBool *playParameter;
68
69 //==============================================================================
70 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(AudioPluginAudioProcessor)
71};
Definition PluginProcessor.h:9