⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 silence.cpp

📁 Audacity是一款用於錄音和編輯聲音的、免費的開放源碼軟體。它可以執行於Mac OS X、Microsoft Windows、GNU/Linux和其它作業系統
💻 CPP
字号:
/**********************************************************************  Audacity: A Digital Audio Editor  Silence.cpp  Dominic Mazzoni    An effect for the "Generator" menu to add silence.**********************************************************************/#include <wx/defs.h> #include <wx/button.h> #include <wx/sizer.h> #include <wx/stattext.h> #include <wx/textctrl.h> #include "Silence.h"#include "../WaveTrack.h"#define ID_TEXT 10000#define ID_LENGTHTEXT 10001bool EffectSilence::PromptUser(){   if (mT1 > mT0)      length = mT1 - mT0;   GenerateDialog dlog(mParent, -1, _("Generate Silence"));   dlog.length = length;   dlog.TransferDataToWindow();   dlog.CentreOnParent();   dlog.ShowModal();   if (dlog.GetReturnCode() == 0)      return false;   length = dlog.length;   return true;}bool EffectSilence::Process(){   if (length <= 0.0)      length = sDefaultGenerateLen;   //Iterate over each track   TrackListIterator iter(mTracks);   Track *track = iter.First();   while (track) {      if (track->GetSelected())         track->Clear(mT0, mT1);         track->InsertSilence(mT0, length);            //Iterate to the next track      track = iter.Next();   }	mT1 = mT0 + length; // Update selection.   return true;}BEGIN_EVENT_TABLE(GenerateDialog, wxDialog)   EVT_BUTTON(wxID_OK, GenerateDialog::OnCreateSilence)   EVT_BUTTON(wxID_CANCEL, GenerateDialog::OnCancel)END_EVENT_TABLE()GenerateDialog::GenerateDialog(wxWindow * parent, wxWindowID id, const wxString & action, const wxPoint & position, const wxSize & size, long style):wxDialog(parent, id, action, position, size, style){   CreateGenerateDialog(action, this, TRUE);}bool GenerateDialog::Validate(){   return TRUE;}bool GenerateDialog::TransferDataToWindow(){   wxTextCtrl *text = (wxTextCtrl *) FindWindow(ID_LENGTHTEXT);   if (text) {      wxString str;      str.Printf(wxT("%.6lf"), length);      text->SetValue(str);      text->SetSelection(-1, -1);      text->SetFocus();   }   return TRUE;}bool GenerateDialog::TransferDataFromWindow(){   wxTextCtrl *t = (wxTextCtrl *) FindWindow(ID_LENGTHTEXT);   if (t) {      t->GetValue().ToDouble(&length);   }   return TRUE;}// WDR: handler implementations for GenerateDialogvoid GenerateDialog::OnCreateSilence(wxCommandEvent & event){   TransferDataFromWindow();   if (Validate())      EndModal(true);   else {      event.Skip();   }}void GenerateDialog::OnCancel(wxCommandEvent & event){   EndModal(false);}wxSizer *CreateGenerateDialog(const wxString &action, wxWindow * parent, bool call_fit,                             bool set_sizer){   wxBoxSizer *item0 = new wxBoxSizer(wxVERTICAL);   wxBoxSizer *item2 = new wxBoxSizer(wxHORIZONTAL);   wxStaticText *item9 = new wxStaticText(parent, ID_TEXT, _("Length (seconds)"),         wxDefaultPosition, wxDefaultSize, 0);   item2->Add(item9, 0, wxALIGN_CENTRE | wxALL, 5);   wxTextCtrl *item10 = new wxTextCtrl(parent, ID_LENGTHTEXT, wxT(""),         wxDefaultPosition, wxSize(120, -1), 0);   item2->Add(item10, 0, wxALIGN_CENTRE | wxALL, 5);   item0->Add(item2, 1, wxALIGN_CENTRE | wxALL, 5);   wxBoxSizer *item11 = new wxBoxSizer(wxHORIZONTAL);   wxButton *item13 =       new wxButton(parent, wxID_CANCEL, _("Cancel"), wxDefaultPosition,                    wxDefaultSize, 0);   item11->Add(item13, 0, wxALIGN_CENTRE | wxALL, 5);   wxButton *item12 =       new wxButton(parent, wxID_OK, action, wxDefaultPosition,                    wxDefaultSize, 0);   item12->SetDefault();   item12->SetFocus();   item11->Add(item12, 0, wxALIGN_CENTRE | wxALL, 5);   item0->Add(item11, 0, wxALIGN_CENTRE | wxALL, 5);   if (set_sizer) {      parent->SetAutoLayout(TRUE);      parent->SetSizer(item0);      if (call_fit) {         item0->Fit(parent);         item0->SetSizeHints(parent);      }   }   return item0;}// Indentation settings for Vim and Emacs and unique identifier for Arch, a// version control system. Please do not modify past this point.//// Local Variables:// c-basic-offset: 3// indent-tabs-mode: nil// End://// vim: et sts=3 sw=3// arch-tag: 78c8d521-815a-4fdb-830a-f9655cd4f529

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -