41 #ifndef filmstro_audiobasics_AudioProcessorPlayerSource_h
42 #define filmstro_audiobasics_AudioProcessorPlayerSource_h
48 const bool deleteProcessor =
true)
49 : processor (proc, deleteProcessor),
50 numChannels (channels),
60 void prepareToPlay (
int samplesPerBlockExpected,
double sampleRate)
override
62 buffer.setSize (numChannels, samplesPerBlockExpected);
64 buffer.setSize (numChannels, samplesPerBlockExpected);
65 processor->prepareToPlay (sampleRate, samplesPerBlockExpected);
72 processor->releaseResources ();
76 void setProcessor (juce::AudioProcessor* proc,
const bool deleteProcessor)
79 processor.set (proc, deleteProcessor);
90 juce::MidiBuffer midiBuffer;
91 while (fifo.getNumReady() < bufferToFill.numSamples) {
92 processor->processBlock (buffer, midiBuffer);
95 const int ready = fifo.getNumReady ();
96 if (ready >= bufferToFill.numSamples)
100 else if (ready > 0) {
102 bufferToFill.buffer->clear (bufferToFill.startSample + ready, bufferToFill.numSamples - ready);
105 bufferToFill.clearActiveBufferRegion ();
109 bufferToFill.clearActiveBufferRegion();
115 juce::OptionalScopedPointer<juce::AudioProcessor> processor;
123 juce::AudioBuffer<float> buffer;
void readFromFifo(FloatType **samples, int numSamples)
Definition: filmstro_audiohelpers_AudioBufferFIFO.h:102
juce::AudioProcessor * getCurrentProcessor() const
Definition: filmstro_audiohelpers_AudioProcessorPlayerSource.h:82
void getNextAudioBlock(const juce::AudioSourceChannelInfo &bufferToFill) override
Definition: filmstro_audiohelpers_AudioProcessorPlayerSource.h:87
void setProcessor(juce::AudioProcessor *proc, const bool deleteProcessor)
Definition: filmstro_audiohelpers_AudioProcessorPlayerSource.h:76
AudioProcessorPlayerSource(juce::AudioProcessor *proc, const int channels=2, const bool deleteProcessor=true)
Definition: filmstro_audiohelpers_AudioProcessorPlayerSource.h:47
Definition: filmstro_audiohelpers_AudioProcessorPlayerSource.h:44
void prepareToPlay(int samplesPerBlockExpected, double sampleRate) override
Definition: filmstro_audiohelpers_AudioProcessorPlayerSource.h:60
void clear()
Definition: filmstro_audiohelpers_AudioBufferFIFO.h:160
virtual ~AudioProcessorPlayerSource()
Definition: filmstro_audiohelpers_AudioProcessorPlayerSource.h:56
void addToFifo(const FloatType **samples, int numSamples)
Definition: filmstro_audiohelpers_AudioBufferFIFO.h:69
void releaseResources() override
Definition: filmstro_audiohelpers_AudioProcessorPlayerSource.h:69