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

« « « Anklang Documentation
Loading...
Searching...
No Matches
tracktion_FreezePoint.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
15{
16public:
17 // matches the global settings
18 enum Position
19 {
20 beforeAllPlugins = 0,
21 preFader,
22 postFader
23 };
24
35
47
50 {
51 ScopedPluginDisabler (Track& track, juce::Range<int> pluginsToDisable);
53
54 private:
55 Track& track;
56 juce::Range<int> indexes;
57 juce::BigInteger enabled;
58
59 void enablePlugins (bool enable);
61 };
62
74
75 static std::unique_ptr<ScopedTrackFreezer> createTrackFreezer (const Plugin::Ptr&);
76
78 ~FreezePointPlugin() override;
79
80 static const char* getPluginName() { return NEEDS_TRANS("Freeze Point"); }
81 static juce::ValueTree create();
82
83 //==============================================================================
84 static const char* xmlTypeName;
85
86 void initialiseFully() override;
87 juce::String getName() const override { return TRANS("Freeze"); }
88 juce::String getPluginType() override { return xmlTypeName; }
89 juce::String getTooltip() override { return TRANS("Track will freeze up to this plugin"); }
90 juce::String getSelectableDescription() override { return TRANS("Freeze Point Plugin"); }
91 bool producesAudioWhenNoAudioInput() override { return false; }
92 bool canBeAddedToClip() override { return false; }
93 bool canBeAddedToRack() override { return false; }
94 bool canBeAddedToMaster() override { return false; }
95 bool canBeDisabled() override { return false; }
96 bool needsConstantBufferSize() override { return false; }
97
98 void initialise (const PluginInitialisationInfo&) override;
99 void deinitialise() override;
100 void applyToBuffer (const PluginRenderContext&) override;
101 int getNumOutputChannelsGivenInputs (int numInputChannels) override { return numInputChannels; }
102
103 bool isTrackFrozen() const;
104 void freezeTrack (bool shouldBeFrozen);
105
106private:
107 //==============================================================================
108 int lastFreezeIndex = -1;
109
110 void updateTrackFreezeStatus();
111
113};
114
115}} // namespace tracktion { inline namespace engine
The Tracktion Edit class!
void initialiseFully() override
Gives the plugin a chance to do extra initialisation when it's been added to an edit.
juce::String getName() const override
The name of the type, e.g.
int getNumOutputChannelsGivenInputs(int numInputChannels) override
This must return the number of output channels that the plugin will produce, given a number of input ...
juce::String getSelectableDescription() override
Subclasses must return a description of what they are.
void deinitialise() override
Called after play stops to release resources.
void initialise(const PluginInitialisationInfo &) override
Gives the plugin a chance to set itself up before being played.
void applyToBuffer(const PluginRenderContext &) override
Process the next block of data.
juce::String getTooltip() override
default returns the name, others can return special stuff if needed
Base class for tracks which contain clips and plugins and can be added to Edit[s].
#define TRANS(stringLiteral)
#define NEEDS_TRANS(stringLiteral)
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
ID for objects of type EditElement - e.g.
Temporarily disables a range of plugins in a track.
Freezes a track if this plugin changes track.
Temporarily solo isolates and unmutes some tracks.
Temporarily unsolos all the tracks in an Edit.