67 bool operator== (
const NodeID& other)
const noexcept {
return uid == other.uid; }
68 bool operator!= (
const NodeID& other)
const noexcept {
return uid != other.uid; }
69 bool operator< (
const NodeID& other)
const noexcept {
return uid < other.uid; }
92 bool operator!= (
const NodeAndChannel& other)
const noexcept {
return ! operator== (other); }
134 template <typename Float>
136 template <typename Float>
144 bool operator== (
const Connection&)
const noexcept;
152 Node (
NodeID, std::unique_ptr<AudioProcessor>)
noexcept;
158 template <
typename Sample>
167 template <
typename Sample>
173 template <
typename Sample>
198 bool operator== (
const Connection&)
const noexcept;
199 bool operator!= (
const Connection&)
const noexcept;
200 bool operator< (
const Connection&)
const noexcept;
232 Node* getNodeForId (NodeID)
const;
245 Node::Ptr addNode (std::unique_ptr<AudioProcessor> newProcessor, NodeID nodeId = {});
250 Node::Ptr removeNode (NodeID);
255 Node::Ptr removeNode (Node*);
258 std::vector<Connection> getConnections()
const;
261 bool isConnected (
const Connection&)
const noexcept;
266 bool isConnected (NodeID possibleSourceNodeID, NodeID possibleDestNodeID)
const noexcept;
271 bool isAnInputTo (Node& source, Node& destination)
const noexcept;
274 bool canConnect (
const Connection&)
const;
281 bool addConnection (
const Connection&);
284 bool removeConnection (
const Connection&);
287 bool disconnectNode (NodeID);
294 bool isConnectionLegal (
const Connection&)
const;
301 bool removeIllegalConnections();
367 #if ! JUCE_AUDIOPROCESSOR_NO_GUI
399 void reset()
override;
406 #if ! JUCE_AUDIOPROCESSOR_NO_GUI
415 void getStateInformation (juce::MemoryBlock&)
override;
416 void setStateInformation (
const void*
data,
int sizeInBytes)
override;
441 struct RenderSequenceFloat;
442 struct RenderSequenceDouble;
452 void topologyChanged();
454 void handleAsyncUpdate()
override;
455 void clearRenderingSequence();
456 void buildRenderingSequence();
458 bool isConnected (Node* src,
int sourceChannel, Node* dest,
int destChannel)
const noexcept;
459 bool isAnInputTo (Node& src, Node& dst,
int recursionCheck)
const noexcept;
460 bool canConnect (Node* src,
int sourceChannel, Node* dest,
int destChannel)
const noexcept;
461 bool isLegal (Node* src,
int sourceChannel, Node* dest,
int destChannel)
const noexcept;
462 static
void getNodeConnections (Node&,
std::
vector<Connection>&);
#define noexcept
Definition DistrhoDefines.h:72
#define override
Definition DistrhoDefines.h:73
Definition juce_Array.h:56
AsyncUpdater()
Definition juce_AsyncUpdater.cpp:44
Definition juce_AudioSampleBuffer.h:34
AudioPluginInstance()=default
Definition juce_AudioProcessorEditor.h:43
Definition juce_AudioProcessorGraph.h:318
AudioProcessorGraph * getParentGraph() const noexcept
Definition juce_AudioProcessorGraph.h:344
const IODeviceType type
Definition juce_AudioProcessorGraph.h:385
AudioProcessorGraph * graph
Definition juce_AudioProcessorGraph.h:386
IODeviceType getType() const noexcept
Definition juce_AudioProcessorGraph.h:340
IODeviceType
Definition juce_AudioProcessorGraph.h:323
@ midiInputNode
Definition juce_AudioProcessorGraph.h:330
@ audioInputNode
Definition juce_AudioProcessorGraph.h:324
@ audioOutputNode
Definition juce_AudioProcessorGraph.h:327
@ midiOutputNode
Definition juce_AudioProcessorGraph.h:333
AudioGraphIOProcessor(IODeviceType)
Definition juce_AudioProcessorGraph.cpp:1443
Definition juce_AudioProcessorGraph.h:101
CriticalSection processorLock
Definition juce_AudioProcessorGraph.h:179
bool isPrepared
Definition juce_AudioProcessorGraph.h:149
friend struct RenderSequenceBuilder
Definition juce_AudioProcessorGraph.h:137
ReferenceCountedObjectPtr< Node > Ptr
Definition juce_AudioProcessorGraph.h:129
Array< Connection > outputs
Definition juce_AudioProcessorGraph.h:148
std::unique_ptr< AudioProcessor > processor
Definition juce_AudioProcessorGraph.h:147
void processBlock(AudioBuffer< Sample > &audio, MidiBuffer &midi)
Definition juce_AudioProcessorGraph.h:168
Array< Connection > inputs
Definition juce_AudioProcessorGraph.h:148
void setBypassed(bool shouldBeBypassed) noexcept
Definition juce_AudioProcessorGraph.cpp:921
friend struct GraphRenderSequence
Definition juce_AudioProcessorGraph.h:135
bool isBypassed() const noexcept
Definition juce_AudioProcessorGraph.cpp:910
AudioProcessor * getProcessor() const noexcept
Definition juce_AudioProcessorGraph.h:110
NamedValueSet properties
Definition juce_AudioProcessorGraph.h:118
std::atomic< bool > bypassed
Definition juce_AudioProcessorGraph.h:150
void processBlockBypassed(AudioBuffer< Sample > &audio, MidiBuffer &midi)
Definition juce_AudioProcessorGraph.h:174
Node(NodeID, std::unique_ptr< AudioProcessor >) noexcept
Definition juce_AudioProcessorGraph.cpp:855
void callProcessFunction(AudioBuffer< Sample > &audio, MidiBuffer &midi, void(AudioProcessor::*function)(AudioBuffer< Sample > &, MidiBuffer &))
Definition juce_AudioProcessorGraph.h:159
const NodeID nodeID
Definition juce_AudioProcessorGraph.h:107
friend class AudioProcessorGraph
Definition juce_AudioProcessorGraph.h:133
Definition juce_AudioProcessorGraph.h:48
int getNumPrograms() override
Definition juce_AudioProcessorGraph.h:410
std::unique_ptr< RenderSequenceFloat > renderSequenceFloat
Definition juce_AudioProcessorGraph.h:443
void reset() override
Definition juce_AudioProcessorGraph.cpp:1369
void releaseResources() override
Definition juce_AudioProcessorGraph.cpp:1354
bool supportsDoublePrecisionProcessing() const override
Definition juce_AudioProcessorGraph.cpp:1339
NodeID lastNodeID
Definition juce_AudioProcessorGraph.h:439
void setCurrentProgram(int) override
Definition juce_AudioProcessorGraph.h:412
bool producesMidi() const override
Definition juce_AudioProcessorGraph.cpp:1389
const ReferenceCountedArray< Node > & getNodes() const noexcept
Definition juce_AudioProcessorGraph.h:217
Node::Ptr getNode(int index) const noexcept
Definition juce_AudioProcessorGraph.h:226
void processBlock(AudioBuffer< float > &, MidiBuffer &) override
Definition juce_AudioProcessorGraph.cpp:1426
bool acceptsMidi() const override
Definition juce_AudioProcessorGraph.cpp:1388
PrepareSettings prepareSettings
Definition juce_AudioProcessorGraph.h:446
void changeProgramName(int, const String &) override
Definition juce_AudioProcessorGraph.h:414
double getTailLengthSeconds() const override
Definition juce_AudioProcessorGraph.cpp:1387
int getCurrentProgram() override
Definition juce_AudioProcessorGraph.h:411
AudioProcessorGraph()
Definition juce_AudioProcessorGraph.cpp:937
std::unique_ptr< RenderSequenceDouble > renderSequenceDouble
Definition juce_AudioProcessorGraph.h:444
const String getName() const override
Definition juce_AudioProcessorGraph.cpp:948
AudioProcessorEditor * createEditor() override
Definition juce_AudioProcessorGraph.h:408
ReferenceCountedArray< Node > nodes
Definition juce_AudioProcessorGraph.h:438
bool hasEditor() const override
Definition juce_AudioProcessorGraph.h:407
void setNonRealtime(bool) noexcept override
Definition juce_AudioProcessorGraph.cpp:1377
@ midiChannelIndex
Definition juce_AudioProcessorGraph.h:78
const String getProgramName(int) override
Definition juce_AudioProcessorGraph.h:413
void setStateInformation(const void *data, int sizeInBytes) override
Definition juce_AudioProcessorGraph.cpp:1391
void unprepare()
Definition juce_AudioProcessorGraph.cpp:1344
int getNumNodes() const noexcept
Definition juce_AudioProcessorGraph.h:220
void prepareToPlay(double, int) override
Definition juce_AudioProcessorGraph.cpp:1311
void getStateInformation(juce::MemoryBlock &) override
Definition juce_AudioProcessorGraph.cpp:1390
std::atomic< bool > isPrepared
Definition juce_AudioProcessorGraph.h:450
virtual void processBlockBypassed(AudioBuffer< float > &buffer, MidiBuffer &midiMessages)
Definition juce_AudioProcessor.cpp:600
ProcessingPrecision
Definition juce_AudioProcessor.h:76
@ singlePrecision
Definition juce_AudioProcessor.h:77
virtual void processBlock(AudioBuffer< float > &buffer, MidiBuffer &midiMessages)=0
AudioProcessor()
Definition juce_AudioProcessor.cpp:36
ChangeBroadcaster() noexcept
Definition juce_ChangeBroadcaster.cpp:26
Definition juce_CriticalSection.h:43
Definition juce_MidiBuffer.h:145
Definition juce_NamedValueSet.h:35
Definition juce_PluginDescription.h:43
Definition juce_ReferenceCountedArray.h:51
ReferenceCountedObject()=default
Definition juce_ReferenceCountedObject.h:247
Definition juce_String.h:53
register unsigned i
Definition inflate.c:1575
JSAMPIMAGE data
Definition jpeglib.h:945
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
CriticalSection::ScopedLockType ScopedLock
Definition juce_CriticalSection.h:186
unsigned int uint32
Definition juce_MathsFunctions.h:45
jack_client_t client jack_client_t client jack_client_t client jack_client_t JackInfoShutdownCallback function
Definition juce_linux_JackAudio.cpp:63
Definition juce_Uuid.h:141
Connection(const Connection &)=default
NodeAndChannel source
Definition juce_AudioProcessorGraph.h:204
NodeAndChannel destination
Definition juce_AudioProcessorGraph.h:207
Definition juce_AudioProcessorGraph.h:140
int otherChannel
Definition juce_AudioProcessorGraph.h:142
int thisChannel
Definition juce_AudioProcessorGraph.h:142
Node * otherNode
Definition juce_AudioProcessorGraph.h:141
Definition juce_AudioProcessorGraph.h:85
NodeID nodeID
Definition juce_AudioProcessorGraph.h:86
int channelIndex
Definition juce_AudioProcessorGraph.h:87
bool isMIDI() const noexcept
Definition juce_AudioProcessorGraph.h:89
Definition juce_AudioProcessorGraph.h:61
NodeID()
Definition juce_AudioProcessorGraph.h:62
NodeID(uint32 i)
Definition juce_AudioProcessorGraph.h:63
uint32 uid
Definition juce_AudioProcessorGraph.h:65
Definition juce_AudioProcessorGraph.h:420
ProcessingPrecision precision
Definition juce_AudioProcessorGraph.h:421
double sampleRate
Definition juce_AudioProcessorGraph.h:422
Tied tie() const noexcept
Definition juce_AudioProcessorGraph.h:431
int blockSize
Definition juce_AudioProcessorGraph.h:423
std::tuple< const ProcessingPrecision &, const double &, const int &, const bool & > Tied
Definition juce_AudioProcessorGraph.h:426
bool valid
Definition juce_AudioProcessorGraph.h:424
#define const
Definition zconf.h:137