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;
#endif
class EffectEqualization final : public Effect,
class EffectEqualization : public Effect,
public XMLTagHandler
{
public:
EffectEqualization(int Options);
EffectEqualization(int Options = kEqLegacy);
virtual ~EffectEqualization();
// ComponentInterface implementation
@ -290,6 +290,18 @@ private:
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
{
public:

View File

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

View File

@ -106,41 +106,41 @@
// Define the list of effects that will be autoregistered and how to instantiate each
//
#define EFFECT_LIST \
EFFECT( CHIRP, EffectToneGen, (true) ) \
EFFECT( DTMFTONES, EffectDtmf, () ) \
EFFECT( NOISE, EffectNoise, () ) \
EFFECT( SILENCE, EffectSilence, () ) \
EFFECT( TONE, EffectToneGen, (false) ) \
EFFECT( AMPLIFY, EffectAmplify, () ) \
EFFECT( BASSTREBLE, EffectBassTreble, () ) \
EFFECT( CHANGESPEED, EffectChangeSpeed, () ) \
EFFECT( CLICKREMOVAL, EffectClickRemoval, () ) \
EFFECT( COMPRESSOR, EffectCompressor, () ) \
EFFECT( DISTORTION, EffectDistortion, () ) \
EFFECT( ECHO, EffectEcho, () ) \
EFFECT( FADEIN, EffectFade, (true) ) \
EFFECT( FADEOUT, EffectFade, (false) ) \
EFFECT( FILTER_CURVE, EffectEqualization, (kEqOptionCurve) ) \
EFFECT( GRAPHIC_EQ, EffectEqualization, (kEqOptionGraphic) ) \
EFFECT( INVERT, EffectInvert, () ) \
EFFECT( LOUDNESS , EffectLoudness, () ) \
EFFECT( NORMALIZE, EffectNormalize, () ) \
EFFECT( PHASER, EffectPhaser, () ) \
EFFECT( REPAIR, EffectRepair, () ) \
EFFECT( REPEAT, EffectRepeat, () ) \
EFFECT( REVERB, EffectReverb, () ) \
EFFECT( REVERSE, EffectReverse, () ) \
EFFECT( STEREOTOMONO, EffectStereoToMono, () ) \
EFFECT( TRUNCATESILENCE, EffectTruncSilence, () ) \
EFFECT( WAHWAH, EffectWahwah, () ) \
EFFECT( FINDCLIPPING, EffectFindClipping, () ) \
NOISEREDUCTION_EFFECT \
SOUNDTOUCH_EFFECTS \
EFFECT( AUTODUCK, EffectAutoDuck, () ) \
EFFECT( PAULSTRETCH, EffectPaulstretch, () ) \
EFFECT( CHIRP, EffectChirp, () ) \
EFFECT( DTMFTONES, EffectDtmf, () ) \
EFFECT( NOISE, EffectNoise, () ) \
EFFECT( SILENCE, EffectSilence, () ) \
EFFECT( TONE, EffectTone, () ) \
EFFECT( AMPLIFY, EffectAmplify, () ) \
EFFECT( BASSTREBLE, EffectBassTreble, () ) \
EFFECT( CHANGESPEED, EffectChangeSpeed, () ) \
EFFECT( CLICKREMOVAL, EffectClickRemoval, () ) \
EFFECT( COMPRESSOR, EffectCompressor, () ) \
EFFECT( DISTORTION, EffectDistortion, () ) \
EFFECT( ECHO, EffectEcho, () ) \
EFFECT( FADEIN, EffectFadeIn, () ) \
EFFECT( FADEOUT, EffectFadeOut, () ) \
EFFECT( FILTER_CURVE, EffectEqualizationCurve, () ) \
EFFECT( GRAPHIC_EQ, EffectEqualizationGraphic, () ) \
EFFECT( INVERT, EffectInvert, () ) \
EFFECT( LOUDNESS , EffectLoudness, () ) \
EFFECT( NORMALIZE, EffectNormalize, () ) \
EFFECT( PHASER, EffectPhaser, () ) \
EFFECT( REPAIR, EffectRepair, () ) \
EFFECT( REPEAT, EffectRepeat, () ) \
EFFECT( REVERB, EffectReverb, () ) \
EFFECT( REVERSE, EffectReverse, () ) \
EFFECT( STEREOTOMONO, EffectStereoToMono, () ) \
EFFECT( TRUNCATESILENCE, EffectTruncSilence, () ) \
EFFECT( WAHWAH, EffectWahwah, () ) \
EFFECT( FINDCLIPPING, EffectFindClipping, () ) \
NOISEREDUCTION_EFFECT \
SOUNDTOUCH_EFFECTS \
EFFECT( AUTODUCK, EffectAutoDuck, () ) \
EFFECT( PAULSTRETCH, EffectPaulstretch, () ) \
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 TONE_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Tone") }
class EffectToneGen final : public Effect
class EffectToneGen : public Effect
{
public:
EffectToneGen(bool isChirp);
@ -78,4 +78,17 @@ private:
DECLARE_EVENT_TABLE()
};
class EffectChirp final : public EffectToneGen
{
public:
EffectChirp() : EffectToneGen{ true } {}
};
class EffectTone final : public EffectToneGen
{
public:
EffectTone() : EffectToneGen{ false } {}
};
#endif