tracktion-engine 3.0-10-g034fdde4aa5
Tracktion Engine — High level data model for audio applications

« « « Anklang Documentation
Loading...
Searching...
No Matches
tracktion_DynamicOffsetNode.h
Go to the documentation of this file.
1 /*
2 ,--. ,--. ,--. ,--.
3 ,-' '-.,--.--.,--,--.,---.| |,-.,-' '-.`--' ,---. ,--,--, Copyright 2024
4 '-. .-'| .--' ,-. | .--'| /'-. .-',--.| .-. || \ Tracktion Software
5 | | | | \ '-' \ `--.| \ \ | | | |' '-' '| || | Corporation
6 `---' `--' `--`--'`---'`--'`--' `---' `--' `---' `--''--' www.tracktion.com
7
8 Tracktion Engine uses a GPL/commercial licence - see LICENCE.md for details.
9*/
10
11namespace tracktion { inline namespace engine
12{
13
14//==============================================================================
15//==============================================================================
21{
22public:
23 DynamicOffsetNode (ProcessState& editProcessState,
24 EditItemID clipID,
25 BeatRange clipPosition,
26 BeatDuration clipOffset,
27 BeatRange clipLoopRange,
29
30 //==============================================================================
34 void setDynamicOffsetBeats (BeatDuration) override;
35
36 //==============================================================================
41 bool isReadyToProcess() override;
42 void prefetchBlock (juce::Range<int64_t> /*referenceSampleRange*/) override;
43 void process (ProcessContext&) override;
44
45private:
46 //==============================================================================
47 const EditItemID containerClipID;
48 const BeatRange clipPosition, loopRange;
49 const BeatDuration clipOffset;
50 tempo::Sequence::Position tempoPosition;
52
53 ProcessState localProcessState;
54
56 std::vector<Node*> orderedNodes, leafNodes;
58
59 BeatDuration getOffset() const;
60 void processSection (ProcessContext&, BeatRange sectionRange);
61};
62
63}} // namespace tracktion { inline namespace engine
void prepareToPlay(const tracktion::graph::PlaybackInitialisationInfo &) override
Called once before playback begins for each node.
tracktion::graph::NodeProperties getNodeProperties() override
Should return the properties of the node.
std::vector< Node * > getDirectInputNodes() override
Should return all the inputs directly feeding in to this node.
std::vector< Node * > getInternalNodes() override
Can return Nodes that are internal to this Node but don't make up the main graph constructed from get...
bool isReadyToProcess() override
Should return true when this node is ready to be processed.
void setDynamicOffsetBeats(BeatDuration) override
Sets an offset to be applied to all times in this node, effectively shifting it forwards or backwards...
void prefetchBlock(juce::Range< int64_t >) override
Called before once on all Nodes before they are processed.
void process(ProcessContext &) override
Called when the node is to be processed.
Base class for Nodes that provides information about the current process call.
Main graph Node processor class.
Struct to describe a single iteration of a process call.
T is_pointer_v
Represents a duration in beats.
A Sequence::Position is an iterator through a Sequence.
ID for objects of type EditElement - e.g.
Holds the state of a process call.
Holds some really basic properties of a node.
Passed into Nodes when they are being initialised, to give them useful contextual information that th...