History

rename LEAF_JUCEPlugin to TestPlugin

Matthew Wang committed 6 years ago

Commit a11130b1 parent 5d657f015 files · +0 −0Browse files

Showing the changes to TestPlugin/Source/PluginProcessor.cpp (1 of 15 files). Show all

Unified · Split

TestPlugin/Source/PluginProcessor.cpp+237−0
@@ -0,0 +1,237 @@
1+/*
2+ ==============================================================================
3+
4+ This file was auto-generated!
5+
6+ It contains the basic framework code for a JUCE plugin processor.
7+
8+ ==============================================================================
9+*/
10+
11+#include "PluginProcessor.h"
12+#include "PluginEditor.h"
13+
14+#include "UIComponent.h"
15+
16+#include "LEAFTest.h"
17+
18+//==============================================================================
19+OopsAudioProcessorEditor::OopsAudioProcessorEditor (OopsAudioProcessor& p)
20+: AudioProcessorEditor (&p), processor (p)
21+{
22+ // Make sure that before the constructor has finished, you've set the
23+ // editor's size to whatever you need it to be.
24+ setSize (600, 400);
25+
26+ addAndMakeVisible(uicomponent);
27+}
28+
29+OopsAudioProcessorEditor::~OopsAudioProcessorEditor()
30+{
31+}
32+
33+//==============================================================================
34+void OopsAudioProcessorEditor::paint (Graphics& g)
35+{
36+ g.fillAll (Colours::white);
37+}
38+
39+void OopsAudioProcessorEditor::resized()
40+{
41+ uicomponent.setBounds(getBounds());
42+}
43+//==============================================================================
44+void OopsAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
45+{
46+ gain = 0.0f;
47+ timer = 0;
48+ start = false;
49+ ramp = false;
50+
51+ LEAFTest_init(sampleRate, samplesPerBlock);
52+}
53+
54+
55+
56+//====================================BLOCK=======================================
57+
58+void OopsAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
59+{
60+ const int totalNumInputChannels = getTotalNumInputChannels();
61+ const int totalNumOutputChannels = getTotalNumOutputChannels();
62+
63+ for (int i = totalNumInputChannels; i < totalNumOutputChannels; ++i)
64+ buffer.clear (i, 0, buffer.getNumSamples());
65+
66+ LEAFTest_block();
67+
68+ MidiMessage m;
69+ int time;
70+
71+ for (MidiBuffer::Iterator i (midiMessages); i.getNextEvent (m, time);)
72+ {
73+ int noteNumber = m.getNoteNumber();
74+ float velocity = m.getFloatVelocity();
75+
76+ if (m.isNoteOn())
77+ {
78+ LEAFTest_noteOn(noteNumber, velocity);
79+ }
80+ else if (m.isNoteOff())
81+ {
82+ LEAFTest_noteOff(noteNumber);
83+ }
84+ else
85+ {
86+
87+ }
88+ }
89+
90+
91+ const float* inPointerL = buffer.getReadPointer (0);
92+ const float* inPointerR = buffer.getReadPointer (1);
93+
94+ float* outPointerL = buffer.getWritePointer( 0);
95+ float* outPointerR = buffer.getWritePointer( 1);
96+
97+ for (int samp = 0; samp < buffer.getNumSamples(); ++samp)
98+ {
99+ outPointerL[samp] = LEAFTest_tick( (inPointerL[samp] +inPointerR[samp]) * 0.5f);
100+ outPointerR[samp] = outPointerL[samp];
101+ }
102+}
103+
104+//==============================================================================
105+
106+OopsAudioProcessor::OopsAudioProcessor()
107+#ifndef JucePlugin_PreferredChannelConfigurations
108+: AudioProcessor (BusesProperties()
109+ #if ! JucePlugin_IsMidiEffect
110+ #if ! JucePlugin_IsSynth
111+ .withInput ("Input", AudioChannelSet::stereo(), true)
112+ #endif
113+ .withOutput ("Output", AudioChannelSet::stereo(), true)
114+ #endif
115+ )
116+#endif
117+{
118+
119+}
120+
121+OopsAudioProcessor::~OopsAudioProcessor()
122+{
123+
124+}
125+
126+//==============================================================================
127+const String OopsAudioProcessor::getName() const
128+{
129+ return JucePlugin_Name;
130+}
131+
132+bool OopsAudioProcessor::acceptsMidi() const
133+{
134+ return true;
135+}
136+
137+bool OopsAudioProcessor::producesMidi() const
138+{
139+ #if JucePlugin_ProducesMidiOutput
140+ return true;
141+ #else
142+ return false;
143+ #endif
144+}
145+
146+double OopsAudioProcessor::getTailLengthSeconds() const
147+{
148+ return 0.0;
149+}
150+
151+int OopsAudioProcessor::getNumPrograms()
152+{
153+ return 1; // NB: some hosts don't cope very well if you tell them there are 0 programs,
154+ // so this should be at least 1, even if you're not really implementing programs.
155+}
156+
157+int OopsAudioProcessor::getCurrentProgram()
158+{
159+ return 0;
160+}
161+
162+void OopsAudioProcessor::setCurrentProgram (int index)
163+{
164+}
165+
166+const String OopsAudioProcessor::getProgramName (int index)
167+{
168+ return String();
169+}
170+
171+void OopsAudioProcessor::changeProgramName (int index, const String& newName)
172+{
173+}
174+
175+void OopsAudioProcessor::releaseResources()
176+{
177+ // When playback stops, you can use this as an opportunity to free up any
178+ // spare memory, etc.
179+ LEAFTest_end();
180+}
181+
182+#ifndef JucePlugin_PreferredChannelConfigurations
183+bool OopsAudioProcessor::isBusesLayoutSupported (const BusesLayout& layouts) const
184+{
185+ #if JucePlugin_IsMidiEffect
186+ ignoreUnused (layouts);
187+ return true;
188+ #else
189+ // This is the place where you check if the layout is supported.
190+ // In this template code we only support mono or stereo.
191+ if (layouts.getMainOutputChannelSet() != AudioChannelSet::mono()
192+ && layouts.getMainOutputChannelSet() != AudioChannelSet::stereo())
193+ return false;
194+
195+ // This checks if the input layout matches the output layout
196+ #if ! JucePlugin_IsSynth
197+ if (layouts.getMainOutputChannelSet() != layouts.getMainInputChannelSet())
198+ return false;
199+ #endif
200+
201+ return true;
202+ #endif
203+}
204+#endif
205+
206+
207+//==============================================================================
208+bool OopsAudioProcessor::hasEditor() const
209+{
210+ return true; // (change this to false if you choose to not supply an editor)
211+}
212+
213+AudioProcessorEditor* OopsAudioProcessor::createEditor()
214+{
215+ return new OopsAudioProcessorEditor (*this);
216+}
217+
218+//==============================================================================
219+void OopsAudioProcessor::getStateInformation (MemoryBlock& destData)
220+{
221+ // You should use this method to store your parameters in the memory block.
222+ // You could do that either as raw data, or use the XML or ValueTree classes
223+ // as intermediaries to make it easy to save and load complex data.
224+}
225+
226+void OopsAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
227+{
228+ // You should use this method to restore your parameters from this memory block,
229+ // whose contents will have been created by the getStateInformation() call.
230+}
231+
232+//==============================================================================
233+// This creates new instances of the plugin..
234+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
235+{
236+ return new OopsAudioProcessor();
237+}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t