1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-12-15 09:01:12 +01:00

All loaded built-in effects have nullary constructors

This commit is contained in:
Paul Licameli
2019-01-17 17:41:30 -05:00
parent 1f283a8981
commit 83be5b3045
4 changed files with 76 additions and 38 deletions

View File

@@ -100,11 +100,11 @@ using EQCurveArray = std::vector<EQCurve>;
class EffectEqualization48x; class EffectEqualization48x;
#endif #endif
class EffectEqualization final : public Effect, class EffectEqualization : public Effect,
public XMLTagHandler public XMLTagHandler
{ {
public: public:
EffectEqualization(int Options); EffectEqualization(int Options = kEqLegacy);
virtual ~EffectEqualization(); virtual ~EffectEqualization();
// ComponentInterface implementation // ComponentInterface implementation
@@ -290,6 +290,18 @@ private:
friend class EditCurvesDialog; friend class EditCurvesDialog;
}; };
class EffectEqualizationCurve final : public EffectEqualization
{
public:
EffectEqualizationCurve() : EffectEqualization( kEqOptionCurve ) {}
};
class EffectEqualizationGraphic final : public EffectEqualization
{
public:
EffectEqualizationGraphic() : EffectEqualization( kEqOptionGraphic ) {}
};
class EqualizationPanel final : public wxPanelWrapper class EqualizationPanel final : public wxPanelWrapper
{ {
public: public:

View File

@@ -16,7 +16,7 @@
#define FADEIN_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Fade In") } #define FADEIN_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Fade In") }
#define FADEOUT_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Fade Out") } #define FADEOUT_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Fade Out") }
class EffectFade final : public Effect class EffectFade : public Effect
{ {
public: public:
EffectFade(bool fadeIn = false); EffectFade(bool fadeIn = false);
@@ -40,10 +40,23 @@ public:
size_t ProcessBlock(float **inBlock, float **outBlock, size_t blockLen) override; size_t ProcessBlock(float **inBlock, float **outBlock, size_t blockLen) override;
private: private:
// EffectFadeIn implementation // EffectFade implementation
bool mFadeIn; bool mFadeIn;
sampleCount mSample; sampleCount mSample;
}; };
class EffectFadeIn final : public EffectFade
{
public:
EffectFadeIn() : EffectFade{ true } {}
};
class EffectFadeOut final : public EffectFade
{
public:
EffectFadeOut() : EffectFade{ false } {}
};
#endif #endif

View File

@@ -106,41 +106,41 @@
// Define the list of effects that will be autoregistered and how to instantiate each // Define the list of effects that will be autoregistered and how to instantiate each
// //
#define EFFECT_LIST \ #define EFFECT_LIST \
EFFECT( CHIRP, EffectToneGen, (true) ) \ EFFECT( CHIRP, EffectChirp, () ) \
EFFECT( DTMFTONES, EffectDtmf, () ) \ EFFECT( DTMFTONES, EffectDtmf, () ) \
EFFECT( NOISE, EffectNoise, () ) \ EFFECT( NOISE, EffectNoise, () ) \
EFFECT( SILENCE, EffectSilence, () ) \ EFFECT( SILENCE, EffectSilence, () ) \
EFFECT( TONE, EffectToneGen, (false) ) \ EFFECT( TONE, EffectTone, () ) \
EFFECT( AMPLIFY, EffectAmplify, () ) \ EFFECT( AMPLIFY, EffectAmplify, () ) \
EFFECT( BASSTREBLE, EffectBassTreble, () ) \ EFFECT( BASSTREBLE, EffectBassTreble, () ) \
EFFECT( CHANGESPEED, EffectChangeSpeed, () ) \ EFFECT( CHANGESPEED, EffectChangeSpeed, () ) \
EFFECT( CLICKREMOVAL, EffectClickRemoval, () ) \ EFFECT( CLICKREMOVAL, EffectClickRemoval, () ) \
EFFECT( COMPRESSOR, EffectCompressor, () ) \ EFFECT( COMPRESSOR, EffectCompressor, () ) \
EFFECT( DISTORTION, EffectDistortion, () ) \ EFFECT( DISTORTION, EffectDistortion, () ) \
EFFECT( ECHO, EffectEcho, () ) \ EFFECT( ECHO, EffectEcho, () ) \
EFFECT( FADEIN, EffectFade, (true) ) \ EFFECT( FADEIN, EffectFadeIn, () ) \
EFFECT( FADEOUT, EffectFade, (false) ) \ EFFECT( FADEOUT, EffectFadeOut, () ) \
EFFECT( FILTER_CURVE, EffectEqualization, (kEqOptionCurve) ) \ EFFECT( FILTER_CURVE, EffectEqualizationCurve, () ) \
EFFECT( GRAPHIC_EQ, EffectEqualization, (kEqOptionGraphic) ) \ EFFECT( GRAPHIC_EQ, EffectEqualizationGraphic, () ) \
EFFECT( INVERT, EffectInvert, () ) \ EFFECT( INVERT, EffectInvert, () ) \
EFFECT( LOUDNESS , EffectLoudness, () ) \ EFFECT( LOUDNESS , EffectLoudness, () ) \
EFFECT( NORMALIZE, EffectNormalize, () ) \ EFFECT( NORMALIZE, EffectNormalize, () ) \
EFFECT( PHASER, EffectPhaser, () ) \ EFFECT( PHASER, EffectPhaser, () ) \
EFFECT( REPAIR, EffectRepair, () ) \ EFFECT( REPAIR, EffectRepair, () ) \
EFFECT( REPEAT, EffectRepeat, () ) \ EFFECT( REPEAT, EffectRepeat, () ) \
EFFECT( REVERB, EffectReverb, () ) \ EFFECT( REVERB, EffectReverb, () ) \
EFFECT( REVERSE, EffectReverse, () ) \ EFFECT( REVERSE, EffectReverse, () ) \
EFFECT( STEREOTOMONO, EffectStereoToMono, () ) \ EFFECT( STEREOTOMONO, EffectStereoToMono, () ) \
EFFECT( TRUNCATESILENCE, EffectTruncSilence, () ) \ EFFECT( TRUNCATESILENCE, EffectTruncSilence, () ) \
EFFECT( WAHWAH, EffectWahwah, () ) \ EFFECT( WAHWAH, EffectWahwah, () ) \
EFFECT( FINDCLIPPING, EffectFindClipping, () ) \ EFFECT( FINDCLIPPING, EffectFindClipping, () ) \
NOISEREDUCTION_EFFECT \ NOISEREDUCTION_EFFECT \
SOUNDTOUCH_EFFECTS \ SOUNDTOUCH_EFFECTS \
EFFECT( AUTODUCK, EffectAutoDuck, () ) \ EFFECT( AUTODUCK, EffectAutoDuck, () ) \
EFFECT( PAULSTRETCH, EffectPaulstretch, () ) \ EFFECT( PAULSTRETCH, EffectPaulstretch, () ) \
SBSMS_EFFECTS SBSMS_EFFECTS
//EFFECT( EQUALIZATION, EffectEqualization, (kEqLegacy) ) \ // EFFECT( EQUALIZATION, EffectEqualization, () ) \
// //

View File

@@ -21,7 +21,7 @@ class ShuttleGui;
#define CHIRP_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Chirp") } #define CHIRP_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Chirp") }
#define TONE_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Tone") } #define TONE_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Tone") }
class EffectToneGen final : public Effect class EffectToneGen : public Effect
{ {
public: public:
EffectToneGen(bool isChirp); EffectToneGen(bool isChirp);
@@ -78,4 +78,17 @@ private:
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };
class EffectChirp final : public EffectToneGen
{
public:
EffectChirp() : EffectToneGen{ true } {}
};
class EffectTone final : public EffectToneGen
{
public:
EffectTone() : EffectToneGen{ false } {}
};
#endif #endif