openshot-audio  0.1.4
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) 2015 - ROLI Ltd.
6 
7  Permission is granted to use this software under the terms of either:
8  a) the GPL v2 (or any later version)
9  b) the Affero GPL v3
10 
11  Details of these licenses can be found at: www.gnu.org/licenses
12 
13  JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
14  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
15  A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16 
17  ------------------------------------------------------------------------------
18 
19  To release a closed-source product which uses JUCE, commercial licenses are
20  available: visit www.juce.com for more information.
21 
22  ==============================================================================
23 */
24 
25 #ifndef JUCE_AUDIOSOURCE_H_INCLUDED
26 #define JUCE_AUDIOSOURCE_H_INCLUDED
27 
28 
29 //==============================================================================
34 {
37  {
38  }
39 
42  int startSampleOffset, int numSamplesToUse) noexcept
43  : buffer (bufferToUse),
44  startSample (startSampleOffset),
45  numSamples (numSamplesToUse)
46  {
47  }
48 
54  : buffer (&bufferToUse),
55  startSample (0),
56  numSamples (bufferToUse.getNumSamples())
57  {
58  }
59 
77 
81 
85 
88  {
89  if (buffer != nullptr)
90  buffer->clear (startSample, numSamples);
91  }
92 };
93 
94 
95 //==============================================================================
111 {
112 protected:
113  //==============================================================================
116 
117 public:
119  virtual ~AudioSource() {}
120 
121  //==============================================================================
148  virtual void prepareToPlay (int samplesPerBlockExpected,
149  double sampleRate) = 0;
150 
163  virtual void releaseResources() = 0;
164 
177  virtual void getNextAudioBlock (const AudioSourceChannelInfo& bufferToFill) = 0;
178 };
179 
180 
181 #endif // JUCE_AUDIOSOURCE_H_INCLUDED
Definition: juce_AudioSampleBuffer.h:34
AudioSourceChannelInfo(AudioSampleBuffer &bufferToUse) noexcept
Definition: juce_AudioSource.h:53
Definition: juce_AudioSource.h:110
AudioSourceChannelInfo() noexcept
Definition: juce_AudioSource.h:36
#define noexcept
Definition: juce_CompilerSupport.h:141
#define JUCE_API
Definition: juce_StandardHeader.h:139
Definition: juce_AudioSource.h:33
AudioSampleBuffer * buffer
Definition: juce_AudioSource.h:76
int numSamples
Definition: juce_AudioSource.h:84
virtual ~AudioSource()
Definition: juce_AudioSource.h:119
AudioSource() noexcept
Definition: juce_AudioSource.h:115
AudioSourceChannelInfo(AudioSampleBuffer *bufferToUse, int startSampleOffset, int numSamplesToUse) noexcept
Definition: juce_AudioSource.h:41
void clearActiveBufferRegion() const
Definition: juce_AudioSource.h:87
void clear() noexcept
Definition: juce_AudioSampleBuffer.cpp:256
int startSample
Definition: juce_AudioSource.h:80