1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-10 17:11:17 +02:00
audacity/src/effects/NoiseReduction.h
James Crook 466e9c179e Create ComponentInterface
It combines the old IdentInterface with the ParamsInterface, providing an identifier and parameters (if needed).
The main purpose of the change is to make the class hierarchy (as viewed via doxygen) much easier to follow.
2018-11-02 17:04:43 +00:00

62 lines
1.2 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
NoiseReduction.h
Dominic Mazzoni
Vaughan Johnson (Preview)
Paul Licameli
**********************************************************************/
#ifndef __AUDACITY_EFFECT_NOISE_REDUCTION__
#define __AUDACITY_EFFECT_NOISE_REDUCTION__
#include "Effect.h"
#include "../MemoryX.h"
#define NOISEREDUCTION_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Noise Reduction") }
class EffectNoiseReduction final : public Effect {
public:
EffectNoiseReduction();
virtual ~EffectNoiseReduction();
using Effect::TrackProgress;
// ComponentInterface implementation
ComponentInterfaceSymbol GetSymbol() override;
wxString GetDescription() override;
// EffectDefinitionInterface implementation
EffectType GetType() override;
// Effect implementation
// using Effect::TrackProgress;
bool PromptUser(wxWindow *parent) override;
bool Init() override;
bool CheckWhetherSkipEffect() override;
bool Process() override;
class Settings;
class Statistics;
class Dialog;
private:
class Worker;
friend class Dialog;
std::unique_ptr<Settings> mSettings;
std::unique_ptr<Statistics> mStatistics;
};
#endif