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_ChannelRemappingAudioSource.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//==============================================================================
44{
45public:
46 //==============================================================================
56 bool deleteSourceWhenDeleted);
57
60
61 //==============================================================================
65 void setNumberOfChannelsToProduce (int requiredNumberOfChannels);
66
72 void clearAllMappings();
73
86
99
104
109
110
111 //==============================================================================
116
120 void restoreFromXml (const XmlElement&);
121
122 //==============================================================================
123 void prepareToPlay (int samplesPerBlockExpected, double sampleRate) override;
124 void releaseResources() override;
125 void getNextAudioBlock (const AudioSourceChannelInfo&) override;
126
127
128private:
129 //==============================================================================
131 Array<int> remappedInputs, remappedOutputs;
132 int requiredNumberOfChannels;
133
134 AudioBuffer<float> buffer;
135 AudioSourceChannelInfo remappedInfo;
136 CriticalSection lock;
137
139};
140
141} // namespace juce
Holds a resizable array of primitive or copy-by-value objects.
Definition juce_Array.h:56
A multi-channel buffer containing floating point audio samples.
Base class for objects that can produce a continuous stream of audio.
An AudioSource that takes the audio from another source, and re-maps its input and output channels to...
void setOutputChannelMapping(int sourceChannelIndex, int destChannelIndex)
Creates an output channel mapping.
void getNextAudioBlock(const AudioSourceChannelInfo &) override
Called repeatedly to fetch subsequent blocks of audio data.
void prepareToPlay(int samplesPerBlockExpected, double sampleRate) override
Tells the source to prepare for playing.
void setNumberOfChannelsToProduce(int requiredNumberOfChannels)
Specifies a number of channels that this audio source must produce from its getNextAudioBlock() callb...
void restoreFromXml(const XmlElement &)
Restores the mappings from an XML object created by createXML().
void clearAllMappings()
Clears any mapped channels.
void releaseResources() override
Allows the source to release anything it no longer needs after playback has stopped.
int getRemappedInputChannel(int inputChannelIndex) const
Returns the channel from our input that will be sent to channel inputChannelIndex of our input audio ...
int getRemappedOutputChannel(int outputChannelIndex) const
Returns the output channel to which channel outputChannelIndex of our input audio source will be sent...
std::unique_ptr< XmlElement > createXml() const
Returns an XML object to encapsulate the state of the mappings.
void setInputChannelMapping(int destChannelIndex, int sourceChannelIndex)
Creates an input channel mapping.
Holds a pointer to an object which can optionally be deleted when this pointer goes out of scope.
Used to build a tree of elements representing an XML document.
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
This is a shorthand way of writing both a JUCE_DECLARE_NON_COPYABLE and JUCE_LEAK_DETECTOR macro for ...
JUCE Namespace.
Type unalignedPointerCast(void *ptr) noexcept
Casts a pointer to another type via void*, which suppresses the cast-align warning which sometimes ar...
Definition juce_Memory.h:88
Used by AudioSource::getNextAudioBlock().