Oscilloscope 0.5.0
A simple oscilloscope VST
Loading...
Searching...
No Matches
PluginProcessor.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file contains the basic framework code for a JUCE plugin processor.
5
6 ==============================================================================
7*/
8
9#pragma once
10
11#include <JuceHeader.h>
12#include "InitVariables.h"
13#include "ScopeDataCollector.h"
14#include "AudioBufferQueue.h"
15
16//==============================================================================
24class OscilloscopeAudioProcessor : public juce::AudioProcessor
25#if JucePlugin_Enable_ARA
26 ,
27 public juce::AudioProcessorARAExtension
28#endif
29{
30public:
31 //==============================================================================
42
43 //==============================================================================
51 void prepareToPlay(double sampleRate, int samplesPerBlock) override;
52
57 void releaseResources() override;
58
59#ifndef JucePlugin_PreferredChannelConfigurations
60 bool isBusesLayoutSupported(const BusesLayout &layouts) const override;
61#endif
62
67 void processBlock(juce::AudioBuffer<float> &, juce::MidiBuffer &) override;
68
69 //==============================================================================
75 juce::AudioProcessorEditor *createEditor() override;
76
83 bool hasEditor() const override;
84
85 //==============================================================================
91 const juce::String getName() const override;
92
99 bool acceptsMidi() const override;
100
107 bool producesMidi() const override;
108
115 bool isMidiEffect() const override;
116
117 double getTailLengthSeconds() const override;
118
119 //==============================================================================
120 int getNumPrograms() override;
121 int getCurrentProgram() override;
122 void setCurrentProgram(int index) override;
123 const juce::String getProgramName(int index) override;
124 void changeProgramName(int index, const juce::String &newName) override;
125
126 //==============================================================================
132 void getStateInformation(juce::MemoryBlock &destData) override;
133
140 void setStateInformation(const void *data, int sizeInBytes) override;
141
147 int getSampleRate();
148
155
161 juce::AudioProcessorValueTreeState *getTreeState();
162
168 int getEditorWidth();
174 int getEditorHeight();
182 void storeEditorSize(int width, int height);
183
190
191private:
197 void resetAllValuesToDefault(juce::ValueTree tree);
198
199 //==============================================================================
200 std::unique_ptr<AudioBufferQueue<float>> audioBufferQueue;
201 std::unique_ptr<ScopeDataCollector<float>> scopeDataCollector;
202 juce::AudioProcessorValueTreeState processorTreeState;
203 int sampleRate = 44100;
204 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(OscilloscopeAudioProcessor)
205};
Oscilloscope audio processor.
const juce::String getProgramName(int index) override
juce::AudioProcessorEditor * createEditor() override
void processBlock(juce::AudioBuffer< float > &, juce::MidiBuffer &) override
bool hasEditor() const override
double getTailLengthSeconds() const override
void setCurrentProgram(int index) override
void storeEditorSize(int width, int height)
bool producesMidi() const override
const juce::String getName() const override
bool isMidiEffect() const override
void setStateInformation(const void *data, int sizeInBytes) override
juce::AudioProcessorValueTreeState * getTreeState()
void getStateInformation(juce::MemoryBlock &destData) override
void prepareToPlay(double sampleRate, int samplesPerBlock) override
bool acceptsMidi() const override
AudioBufferQueue< float > * getAudioBufferQueue()
void changeProgramName(int index, const juce::String &newName) override
bool isBusesLayoutSupported(const BusesLayout &layouts) const override