115 lines
2.4 KiB
C++
115 lines
2.4 KiB
C++
/**********************************************************************
|
|
|
|
Audacity: A Digital Audio Editor
|
|
|
|
Silence.cpp
|
|
|
|
Dominic Mazzoni
|
|
|
|
*******************************************************************//**
|
|
|
|
\class EffectSilence
|
|
\brief An effect to add silence.
|
|
|
|
*//*******************************************************************/
|
|
|
|
|
|
#include "Silence.h"
|
|
#include "LoadEffects.h"
|
|
|
|
#include <wx/intl.h>
|
|
|
|
#include "../ShuttleGui.h"
|
|
#include "../WaveTrack.h"
|
|
#include "../widgets/NumericTextCtrl.h"
|
|
|
|
const ComponentInterfaceSymbol EffectSilence::Symbol
|
|
/* i18n-hint: noun */
|
|
{ XC("Silence", "generator") };
|
|
|
|
namespace{ BuiltinEffectsModule::Registration< EffectSilence > reg; }
|
|
|
|
EffectSilence::EffectSilence()
|
|
{
|
|
SetLinearEffectFlag(true);
|
|
}
|
|
|
|
EffectSilence::~EffectSilence()
|
|
{
|
|
}
|
|
|
|
// ComponentInterface implementation
|
|
|
|
ComponentInterfaceSymbol EffectSilence::GetSymbol()
|
|
{
|
|
return Symbol;
|
|
}
|
|
|
|
TranslatableString EffectSilence::GetDescription()
|
|
{
|
|
return XO("Creates audio of zero amplitude");
|
|
}
|
|
|
|
ManualPageID EffectSilence::ManualPage()
|
|
{
|
|
return L"Silence";
|
|
}
|
|
|
|
|
|
// EffectDefinitionInterface implementation
|
|
|
|
EffectType EffectSilence::GetType()
|
|
{
|
|
return EffectTypeGenerate;
|
|
}
|
|
|
|
// Effect implementation
|
|
|
|
void EffectSilence::PopulateOrExchange(ShuttleGui & S)
|
|
{
|
|
S.StartVerticalLay();
|
|
{
|
|
S.StartHorizontalLay();
|
|
{
|
|
S.AddPrompt(XXO("&Duration:"));
|
|
mDurationT = safenew
|
|
NumericTextCtrl(S.GetParent(), wxID_ANY,
|
|
NumericConverter::TIME,
|
|
GetDurationFormat(),
|
|
GetDuration(),
|
|
mProjectRate,
|
|
NumericTextCtrl::Options{}
|
|
.AutoPos(true));
|
|
S.Name(XO("Duration"))
|
|
.Position(wxALIGN_CENTER | wxALL)
|
|
.AddWindow(mDurationT);
|
|
}
|
|
S.EndHorizontalLay();
|
|
}
|
|
S.EndVerticalLay();
|
|
|
|
return;
|
|
}
|
|
|
|
bool EffectSilence::TransferDataToWindow()
|
|
{
|
|
mDurationT->SetValue(GetDuration());
|
|
|
|
return true;
|
|
}
|
|
|
|
bool EffectSilence::TransferDataFromWindow()
|
|
{
|
|
SetDuration(mDurationT->GetValue());
|
|
|
|
return true;
|
|
}
|
|
|
|
bool EffectSilence::GenerateTrack(WaveTrack *tmp,
|
|
const WaveTrack & WXUNUSED(track),
|
|
int WXUNUSED(ntrack))
|
|
{
|
|
tmp->InsertSilence(0.0, GetDuration());
|
|
return true;
|
|
}
|