Audacity 3.2.0
Fade.cpp
Go to the documentation of this file.
1/**********************************************************************
2
3 Audacity: A Digital Audio Editor
4
5 Fade.cpp
6
7 Robert Leidle
8
9*******************************************************************//*******************************************************************/
15
16
17#include "Fade.h"
18
19#include "LoadEffects.h"
20
22{ XO("Fade In") };
23
25
27{ XO("Fade Out") };
28
30
32{
33 mFadeIn = fadeIn;
34}
35
37{
38}
39
40// ComponentInterface implementation
41
43{
44 return mFadeIn
47}
48
50{
51 return mFadeIn
52 ? XO("Applies a linear fade-in to the selected audio")
53 : XO("Applies a linear fade-out to the selected audio");
54}
55
56// EffectDefinitionInterface implementation
57
59{
60 return EffectTypeProcess;
61}
62
64{
65 return false;
66}
67
69{
70 return 1;
71}
72
74{
75 return 1;
76}
77
79 EffectSettings &, double, ChannelNames chanMap)
80{
81 mSample = 0;
82 return true;
83}
84
86 const float *const *inBlock, float *const *outBlock, size_t blockLen)
87{
88 const float *ibuf = inBlock[0];
89 float *obuf = outBlock[0];
90
91 if (mFadeIn)
92 {
93 for (decltype(blockLen) i = 0; i < blockLen; i++)
94 {
95 obuf[i] =
96 (ibuf[i] * ( mSample++ ).as_float()) /
98 }
99 }
100 else
101 {
102 for (decltype(blockLen) i = 0; i < blockLen; i++)
103 {
104 obuf[i] = (ibuf[i] *
105 ( mSampleCnt - 1 - mSample++ ).as_float()) /
107 }
108 }
109
110 return blockLen;
111}
EffectType
@ EffectTypeProcess
ChannelName
XO("Cut/Copy/Paste")
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
unsigned GetAudioInCount() const override
How many input buffers to allocate at once.
Definition: Fade.cpp:68
EffectType GetType() const override
Type determines how it behaves.
Definition: Fade.cpp:58
unsigned GetAudioOutCount() const override
How many output buffers to allocate at once.
Definition: Fade.cpp:73
bool ProcessInitialize(EffectSettings &settings, double sampleRate, ChannelNames chanMap) override
Definition: Fade.cpp:78
bool IsInteractive() const override
Whether the effect needs a dialog for entry of settings.
Definition: Fade.cpp:63
sampleCount mSample
Definition: Fade.h:44
EffectFade(bool fadeIn=false)
Definition: Fade.cpp:31
virtual ~EffectFade()
Definition: Fade.cpp:36
TranslatableString GetDescription() const override
Definition: Fade.cpp:49
size_t ProcessBlock(EffectSettings &settings, const float *const *inBlock, float *const *outBlock, size_t blockLen) override
Called for destructive effect computation.
Definition: Fade.cpp:85
bool mFadeIn
Definition: Fade.h:43
ComponentInterfaceSymbol GetSymbol() const override
Definition: Fade.cpp:42
static const ComponentInterfaceSymbol Symbol
Definition: Fade.h:50
static const ComponentInterfaceSymbol Symbol
Definition: Fade.h:59
sampleCount mSampleCnt
Holds a msgid for the translation catalog; may also bind format arguments.
float as_float() const
Definition: SampleCount.h:45
BuiltinEffectsModule::Registration< EffectFadeOut > reg2
Definition: Fade.cpp:29
BuiltinEffectsModule::Registration< EffectFadeIn > reg
Definition: Fade.cpp:24
Externalized state of a plug-in.