OpenShot Audio Library | OpenShotAudio 0.3.2
Loading...
Searching...
No Matches
juce_ProcessContext.h
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2017 - ROLI Ltd.
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 5 End-User License
11 Agreement and JUCE 5 Privacy Policy (both updated and effective as of the
12 27th April 2017).
13
14 End User License Agreement: www.juce.com/juce-5-licence
15 Privacy Policy: www.juce.com/juce-5-privacy-policy
16
17 Or: You may also use this code under the terms of the GPL v3 (see
18 www.gnu.org/licenses).
19
20 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
21 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
22 DISCLAIMED.
23
24 ==============================================================================
25*/
26
27namespace juce
28{
29namespace dsp
30{
31
49
50//==============================================================================
65
66//==============================================================================
78template <typename ContextSampleType>
80{
81public:
87
91 ProcessContextReplacing (AudioBlockType& block) noexcept : ioBlock (block) {}
92
95
97 const ConstAudioBlockType& getInputBlock() const noexcept { return constBlock; }
98
101
106 static constexpr bool usesSeparateInputAndOutputBlocks() { return false; }
107
111 bool isBypassed = false;
112
113private:
114 AudioBlockType& ioBlock;
115 ConstAudioBlockType constBlock { ioBlock };
116};
117
118//==============================================================================
131template <typename ContextSampleType>
133{
134public:
140
145 : inputBlock (input), outputBlock (output)
146 {
147 // If the input and output blocks are the same then you should use
148 // ProcessContextReplacing instead.
149 jassert (input != output);
150 }
151
154
156 const ConstAudioBlockType& getInputBlock() const noexcept { return inputBlock; }
157
159 AudioBlockType& getOutputBlock() const noexcept { return outputBlock; }
160
165 static constexpr bool usesSeparateInputAndOutputBlocks() { return true; }
166
170 bool isBypassed = false;
171
172private:
173 ConstAudioBlockType inputBlock;
174 AudioBlockType& outputBlock;
175};
176
177} // namespace dsp
178} // namespace juce
static constexpr bool usesSeparateInputAndOutputBlocks()
AudioBlockType & getOutputBlock() const noexcept
const ConstAudioBlockType & getInputBlock() const noexcept
ProcessContextNonReplacing(const ConstAudioBlockType &input, AudioBlockType &output) noexcept
ProcessContextReplacing(AudioBlockType &block) noexcept
static constexpr bool usesSeparateInputAndOutputBlocks()
const ConstAudioBlockType & getInputBlock() const noexcept
AudioBlockType & getOutputBlock() const noexcept