audacia/src/effects/Silence.cpp

105 lines
2.2 KiB
C++
Raw Normal View History

/**********************************************************************
Audacity: A Digital Audio Editor
Silence.cpp
Dominic Mazzoni
*******************************************************************//**
\class EffectSilence
\brief An effect to add silence.
*//*******************************************************************/
#include "../Audacity.h"
#include <wx/intl.h>
#include "Silence.h"
EffectSilence::EffectSilence()
{
SetLinearEffectFlag(true);
}
EffectSilence::~EffectSilence()
{
}
2012-10-11 01:45:33 +00:00
// IdentInterface implementation
wxString EffectSilence::GetSymbol()
{
return SILENCE_PLUGIN_SYMBOL;
}
wxString EffectSilence::GetDescription()
{
return XO("Creates audio of zero amplitude");
}
// EffectIdentInterface implementation
EffectType EffectSilence::GetType()
{
return EffectTypeGenerate;
}
// Effect implementation
void EffectSilence::PopulateOrExchange(ShuttleGui & S)
{
S.StartVerticalLay();
{
S.StartHorizontalLay();
{
bool isSelection;
double duration = GetDuration(&isSelection);
S.AddPrompt(_("Duration:"));
mDurationT = new
NumericTextCtrl(NumericConverter::TIME,
S.GetParent(),
wxID_ANY,
isSelection ? _("hh:mm:ss + samples") : _("hh:mm:ss + milliseconds"),
duration,
mProjectRate,
wxDefaultPosition,
wxDefaultSize,
true);
mDurationT->SetName(_("Duration"));
mDurationT->EnableMenu();
S.AddWindow(mDurationT, wxALIGN_CENTER | wxALL);
}
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))
{
bool bResult = tmp->InsertSilence(0.0, GetDuration());
wxASSERT(bResult);
return bResult;
}