audacia/src/effects/Amplify.h

87 lines
2.0 KiB
C
Raw Normal View History

/**********************************************************************
Audacity: A Digital Audio Editor
Amplify.h
Dominic Mazzoni
2014-06-03 20:30:19 +00:00
This rewritten class supports a smart Amplify effect - it calculates
the maximum amount of gain that can be applied to all tracks without
causing clipping and selects this as the default parameter.
**********************************************************************/
#ifndef __AUDACITY_EFFECT_AMPLIFY__
#define __AUDACITY_EFFECT_AMPLIFY__
#include <wx/checkbox.h>
#include <wx/event.h>
#include <wx/slider.h>
#include <wx/string.h>
#include <wx/textctrl.h>
#include "../ShuttleGui.h"
#include "Effect.h"
#define AMPLIFY_PLUGIN_SYMBOL XO("Amplify")
class EffectAmplify : public Effect
{
public:
EffectAmplify();
virtual ~EffectAmplify();
// IdentInterface implementation
virtual wxString GetSymbol();
virtual wxString GetDescription();
// EffectIdentInterface implementation
virtual EffectType GetType();
2014-06-03 20:30:19 +00:00
// EffectClientInterface implementation
virtual int GetAudioInCount();
virtual int GetAudioOutCount();
virtual sampleCount ProcessBlock(float **inBlock, float **outBlock, sampleCount blockLen);
virtual bool GetAutomationParameters(EffectAutomationParameters & parms);
virtual bool SetAutomationParameters(EffectAutomationParameters & parms);
2014-06-03 20:30:19 +00:00
// Effect implementation
virtual bool Init();
virtual void Preview(bool dryOnly);
virtual void PopulateOrExchange(ShuttleGui & S);
virtual bool TransferDataToWindow();
virtual bool TransferDataFromWindow();
private:
// EffectAmplify implementation
void OnAmpText(wxCommandEvent & evt);
void OnPeakText(wxCommandEvent & evt);
void OnAmpSlider(wxCommandEvent & evt);
void OnClipCheckBox(wxCommandEvent & evt);
void CheckClip();
private:
float mPeak;
float mRatio;
float mAmp;
float mNewPeak;
bool mCanClip;
wxSlider *mAmpS;
wxTextCtrl *mAmpT;
wxTextCtrl *mNewPeakT;
wxCheckBox *mClip;
DECLARE_EVENT_TABLE();
};
#endif // __AUDACITY_EFFECT_AMPLIFY__