tracktion-engine
3.0-10-g034fdde4aa5
Tracktion Engine — High level data model for audio applications
« « « Anklang Documentation
Loading...
Searching...
No Matches
tracktion_engine
plugins
effects
tracktion_LatencyPlugin.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
11
namespace
tracktion
{
inline
namespace
engine
12
{
13
18
class
LatencyPlugin
:
public
Plugin
19
{
20
public
:
21
LatencyPlugin
(
PluginCreationInfo
);
22
~LatencyPlugin
()
override
;
23
24
//==============================================================================
25
static
const
char
* getPluginName() {
return
NEEDS_TRANS
(
"Latency Tester"
); }
26
static
const
char
* xmlTypeName;
27
static
juce::ValueTree
create();
28
29
juce::String
getName
()
const override
{
return
getPluginName(); }
30
juce::String
getPluginType()
override
{
return
xmlTypeName; }
31
juce::String
getSelectableDescription
()
override
{
return
getName
(); }
32
33
void
initialise (
const
PluginInitialisationInfo
&)
override
;
34
void
deinitialise
()
override
;
35
void
applyToBuffer
(
const
PluginRenderContext
&)
override
;
36
37
double
getLatencySeconds()
override
{
return
latencyTimeSeconds.
get
(); }
38
bool
needsConstantBufferSize()
override
{
return
false
; }
39
40
void
restorePluginStateFromValueTree (
const
juce::ValueTree
&)
override
;
41
42
//==============================================================================
43
ConstrainedCachedValue<float> latencyTimeSeconds;
44
juce::CachedValue<bool>
applyLatency;
45
46
private
:
47
class
DelayRegister;
48
std::unique_ptr<DelayRegister>
delayCompensator[2];
49
LambdaTimer playbackRestartTimer;
50
51
void
valueTreePropertyChanged (
juce::ValueTree
&,
const
juce::Identifier
&)
override
;
52
53
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR
(LatencyPlugin)
54
};
55
56
}}
// namespace tracktion { inline namespace engine
juce::CachedValue
juce::Identifier
juce::String
tracktion::engine::ConstrainedCachedValue::get
Type get() const noexcept
Returns the current value of the property.
Definition
tracktion_ConstrainedCachedValue.h:71
tracktion::engine::LatencyPlugin
A test plugin that introduces latency to the incomming signal.
Definition
tracktion_LatencyPlugin.h:19
tracktion::engine::LatencyPlugin::getSelectableDescription
juce::String getSelectableDescription() override
Subclasses must return a description of what they are.
Definition
tracktion_LatencyPlugin.h:31
tracktion::engine::LatencyPlugin::applyToBuffer
void applyToBuffer(const PluginRenderContext &) override
Process the next block of data.
Definition
tracktion_LatencyPlugin.cpp:176
tracktion::engine::LatencyPlugin::deinitialise
void deinitialise() override
Called after play stops to release resources.
Definition
tracktion_LatencyPlugin.cpp:170
tracktion::engine::LatencyPlugin::getName
juce::String getName() const override
The name of the type, e.g.
Definition
tracktion_LatencyPlugin.h:29
tracktion::engine::Plugin
Definition
tracktion_Plugin.h:114
NEEDS_TRANS
#define NEEDS_TRANS(stringLiteral)
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
tracktion::engine::PluginInitialisationInfo
Passed into Plugins when they are being initialised, to give them useful contextual information that ...
Definition
tracktion_Plugin.h:36
tracktion
Definition
tracktion_AudioReader.h:23
juce::ValueTree
tracktion::engine::PluginCreationInfo
Definition
tracktion_Plugin.h:15
tracktion::engine::PluginRenderContext
The context passed to plugin render methods to provide it with buffers to fill.
Definition
tracktion_Plugin.h:48
std::unique_ptr
« « « Anklang Documentation