JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
Loading...
Searching...
No Matches
juce_AudioSource.h
Go to the documentation of this file.
1 /*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 The code included in this file is provided under the terms of the ISC license
11 http://www.isc.org/downloads/software-support-policy/isc-license. Permission
12 To use, copy, modify, and/or distribute this software for any purpose with or
13 without fee is hereby granted provided that the above copyright notice and
14 this permission notice appear in all copies.
15
16 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
17 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
18 DISCLAIMED.
19
20 ==============================================================================
21*/
22
23namespace juce
24{
25
26//==============================================================================
33{
36
39 int startSampleOffset, int numSamplesToUse) noexcept
40 : buffer (bufferToUse),
41 startSample (startSampleOffset),
42 numSamples (numSamplesToUse)
43 {
44 }
45
50 explicit AudioSourceChannelInfo (AudioBuffer<float>& bufferToUse) noexcept
51 : buffer (&bufferToUse),
52 startSample (0),
53 numSamples (bufferToUse.getNumSamples())
54 {
55 }
56
74
78
82
85 {
86 if (buffer != nullptr)
87 buffer->clear (startSample, numSamples);
88 }
89};
90
91
92//==============================================================================
109class JUCE_API AudioSource
110{
111protected:
112 //==============================================================================
114 AudioSource() = default;
115
116public:
118 virtual ~AudioSource() = default;
119
120 //==============================================================================
147 virtual void prepareToPlay (int samplesPerBlockExpected,
148 double sampleRate) = 0;
149
162 virtual void releaseResources() = 0;
163
176 virtual void getNextAudioBlock (const AudioSourceChannelInfo& bufferToFill) = 0;
177};
178
179} // namespace juce
A multi-channel buffer containing floating point audio samples.
void clear() noexcept
Clears all the samples in all channels and marks the buffer as cleared.
Base class for objects that can produce a continuous stream of audio.
virtual void releaseResources()=0
Allows the source to release anything it no longer needs after playback has stopped.
AudioSource()=default
Creates an AudioSource.
virtual void prepareToPlay(int samplesPerBlockExpected, double sampleRate)=0
Tells the source to prepare for playing.
virtual ~AudioSource()=default
Destructor.
virtual void getNextAudioBlock(const AudioSourceChannelInfo &bufferToFill)=0
Called repeatedly to fetch subsequent blocks of audio data.
JUCE Namespace.
Used by AudioSource::getNextAudioBlock().
AudioSourceChannelInfo(AudioBuffer< float > *bufferToUse, int startSampleOffset, int numSamplesToUse) noexcept
Creates an AudioSourceChannelInfo.
int numSamples
The number of samples in the buffer which the callback is expected to fill with data.
void clearActiveBufferRegion() const
Convenient method to clear the buffer if the source is not producing any data.
AudioBuffer< float > * buffer
The destination buffer to fill with audio data.
AudioSourceChannelInfo(AudioBuffer< float > &bufferToUse) noexcept
Creates an AudioSourceChannelInfo that uses the whole of a buffer.
AudioSourceChannelInfo()=default
Creates an uninitialised AudioSourceChannelInfo.
int startSample
The first sample in the buffer from which the callback is expected to write data.