192 lines
4.8 KiB
C++
192 lines
4.8 KiB
C++
|
/*
|
||
|
==============================================================================
|
||
|
|
||
|
This file was auto-generated!
|
||
|
|
||
|
It contains the basic startup code for a Juce application.
|
||
|
|
||
|
==============================================================================
|
||
|
*/
|
||
|
|
||
|
#include "PluginProcessor.h"
|
||
|
#include "PluginEditor.h"
|
||
|
#include "hiopl.h"
|
||
|
|
||
|
|
||
|
//==============================================================================
|
||
|
JuceOplvstiAudioProcessor::JuceOplvstiAudioProcessor()
|
||
|
{
|
||
|
Opl = new Hiopl(buflen);
|
||
|
Opl->SetSampleRate(SAMPLE_RATE);
|
||
|
}
|
||
|
|
||
|
JuceOplvstiAudioProcessor::~JuceOplvstiAudioProcessor()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
//==============================================================================
|
||
|
const String JuceOplvstiAudioProcessor::getName() const
|
||
|
{
|
||
|
return JucePlugin_Name;
|
||
|
}
|
||
|
|
||
|
int JuceOplvstiAudioProcessor::getNumParameters()
|
||
|
{
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
float JuceOplvstiAudioProcessor::getParameter (int index)
|
||
|
{
|
||
|
return 0.0f;
|
||
|
}
|
||
|
|
||
|
void JuceOplvstiAudioProcessor::setParameter (int index, float newValue)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
const String JuceOplvstiAudioProcessor::getParameterName (int index)
|
||
|
{
|
||
|
return String::empty;
|
||
|
}
|
||
|
|
||
|
const String JuceOplvstiAudioProcessor::getParameterText (int index)
|
||
|
{
|
||
|
return String::empty;
|
||
|
}
|
||
|
|
||
|
const String JuceOplvstiAudioProcessor::getInputChannelName (int channelIndex) const
|
||
|
{
|
||
|
return String (channelIndex + 1);
|
||
|
}
|
||
|
|
||
|
const String JuceOplvstiAudioProcessor::getOutputChannelName (int channelIndex) const
|
||
|
{
|
||
|
return String (channelIndex + 1);
|
||
|
}
|
||
|
|
||
|
bool JuceOplvstiAudioProcessor::isInputChannelStereoPair (int index) const
|
||
|
{
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
bool JuceOplvstiAudioProcessor::isOutputChannelStereoPair (int index) const
|
||
|
{
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
bool JuceOplvstiAudioProcessor::acceptsMidi() const
|
||
|
{
|
||
|
#if JucePlugin_WantsMidiInput
|
||
|
return true;
|
||
|
#else
|
||
|
return false;
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
bool JuceOplvstiAudioProcessor::producesMidi() const
|
||
|
{
|
||
|
#if JucePlugin_ProducesMidiOutput
|
||
|
return true;
|
||
|
#else
|
||
|
return false;
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
bool JuceOplvstiAudioProcessor::silenceInProducesSilenceOut() const
|
||
|
{
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
double JuceOplvstiAudioProcessor::getTailLengthSeconds() const
|
||
|
{
|
||
|
return 0.0;
|
||
|
}
|
||
|
|
||
|
int JuceOplvstiAudioProcessor::getNumPrograms()
|
||
|
{
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
int JuceOplvstiAudioProcessor::getCurrentProgram()
|
||
|
{
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
void JuceOplvstiAudioProcessor::setCurrentProgram (int index)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
const String JuceOplvstiAudioProcessor::getProgramName (int index)
|
||
|
{
|
||
|
return String::empty;
|
||
|
}
|
||
|
|
||
|
void JuceOplvstiAudioProcessor::changeProgramName (int index, const String& newName)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
//==============================================================================
|
||
|
void JuceOplvstiAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
|
||
|
{
|
||
|
// Use this method as the place to do any pre-playback
|
||
|
// initialisation that you need..
|
||
|
}
|
||
|
|
||
|
void JuceOplvstiAudioProcessor::releaseResources()
|
||
|
{
|
||
|
// When playback stops, you can use this as an opportunity to free up any
|
||
|
// spare memory, etc.
|
||
|
}
|
||
|
|
||
|
void JuceOplvstiAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
|
||
|
{
|
||
|
// This is the place where you'd normally do the guts of your plugin's
|
||
|
// audio processing...
|
||
|
for (int channel = 0; channel < getNumInputChannels(); ++channel)
|
||
|
{
|
||
|
float* channelData = buffer.getSampleData (channel);
|
||
|
|
||
|
// ..do something to the data...
|
||
|
}
|
||
|
|
||
|
// In case we have more outputs than inputs, we'll clear any output
|
||
|
// channels that didn't contain input data, (because these aren't
|
||
|
// guaranteed to be empty - they may contain garbage).
|
||
|
for (int i = getNumInputChannels(); i < getNumOutputChannels(); ++i)
|
||
|
{
|
||
|
buffer.clear (i, 0, buffer.getNumSamples());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//==============================================================================
|
||
|
bool JuceOplvstiAudioProcessor::hasEditor() const
|
||
|
{
|
||
|
return true; // (change this to false if you choose to not supply an editor)
|
||
|
}
|
||
|
|
||
|
AudioProcessorEditor* JuceOplvstiAudioProcessor::createEditor()
|
||
|
{
|
||
|
return new JuceOplvstiAudioProcessorEditor (this);
|
||
|
}
|
||
|
|
||
|
//==============================================================================
|
||
|
void JuceOplvstiAudioProcessor::getStateInformation (MemoryBlock& destData)
|
||
|
{
|
||
|
// You should use this method to store your parameters in the memory block.
|
||
|
// You could do that either as raw data, or use the XML or ValueTree classes
|
||
|
// as intermediaries to make it easy to save and load complex data.
|
||
|
}
|
||
|
|
||
|
void JuceOplvstiAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
|
||
|
{
|
||
|
// You should use this method to restore your parameters from this memory block,
|
||
|
// whose contents will have been created by the getStateInformation() call.
|
||
|
}
|
||
|
|
||
|
//==============================================================================
|
||
|
// This creates new instances of the plugin..
|
||
|
AudioProcessor* JUCE_CALLTYPE createPluginFilter()
|
||
|
{
|
||
|
return new JuceOplvstiAudioProcessor();
|
||
|
}
|