亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? amplify.cpp

?? Audacity是一款用於錄音和編輯聲音的、免費(fèi)的開(kāi)放源碼軟體。它可以執(zhí)行於Mac OS X、Microsoft Windows、GNU/Linux和其它作業(yè)系統(tǒng)
?? CPP
字號(hào):
/**********************************************************************  Audacity: A Digital Audio Editor  Amplify.cpp  Dominic Mazzoni  Vaughan Johnson (Preview)  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.**********************************************************************/#include "Amplify.h"#include "../WaveTrack.h"#include <math.h>#include <wx/button.h>#include <wx/checkbox.h>#include <wx/sizer.h>#include <wx/stattext.h>#include <wx/textctrl.h>#include <wx/valtext.h>#define ID_BUTTON_PREVIEW 10005//// EffectAmplify//EffectAmplify::EffectAmplify(){   ratio = float(1.0);}wxString EffectAmplify::GetEffectDescription() {    // Note: This is useful only after ratio has been set.    return wxString::Format(_("Applied effect: %s %.1f dB"),                            this->GetEffectName().c_str(), 20*log10(ratio)); } bool EffectAmplify::Init(){   peak = float(0.0);   TrackListIterator iter(mWaveTracks);   Track *t = iter.First();   int count = 0;   while(t) {      float min, max;      ((WaveTrack *)t)->GetMinMax(&min, &max, mT0, mT1);      float newpeak = (fabs(min) > fabs(max) ? fabs(min) : fabs(max));            if (newpeak > peak)         peak = newpeak;         t = iter.Next();      count++;   }      return true;}bool EffectAmplify::TransferParameters( Shuttle & shuttle ){   shuttle.TransferFloat( wxT("Ratio"), ratio, 0.9f );   return true;}bool EffectAmplify::PromptUser(){   AmplifyDialog dlog(this, mParent, -1, _("Amplify"));   dlog.peak = peak;   if (peak > 0.0)      dlog.ratio = 1.0 / peak;   else      dlog.ratio = 1.0;   dlog.TransferDataToWindow();   dlog.CenterOnParent();   dlog.ShowModal();   if (!dlog.GetReturnCode())      return false;   ratio = dlog.ratio;   if (dlog.noclip && ratio*peak > 1.0)      ratio = 1.0 / peak;   return true;}bool EffectAmplify::ProcessSimpleMono(float *buffer, sampleCount len){   sampleCount i;   for (i = 0; i < len; i++)      buffer[i] = (buffer[i] * ratio);   return true;}//----------------------------------------------------------------------------// AmplifyDialog//----------------------------------------------------------------------------#define AMP_MIN -240#define AMP_MAX 240// WDR: event table for AmplifyDialogBEGIN_EVENT_TABLE(AmplifyDialog, wxDialog)    EVT_BUTTON(wxID_OK, AmplifyDialog::OnOk)    EVT_BUTTON(wxID_CANCEL, AmplifyDialog::OnCancel)    EVT_SLIDER(ID_AMP_SLIDER, AmplifyDialog::OnAmpSlider)    EVT_TEXT(ID_AMP_TEXT, AmplifyDialog::OnAmpText)    EVT_TEXT(ID_PEAK_TEXT, AmplifyDialog::OnPeakText)    EVT_CHECKBOX(ID_CLIP_CHECKBOX, AmplifyDialog::OnClipCheckBox)    EVT_BUTTON(ID_BUTTON_PREVIEW, AmplifyDialog::OnPreview)END_EVENT_TABLE()AmplifyDialog::AmplifyDialog(EffectAmplify * effect,                              wxWindow * parent, wxWindowID id,                              const wxString & title,                              const wxPoint & position, const wxSize & size,                              long style):   wxDialog(parent, id, title, position, size, style){   mLoopDetect = false;	m_pEffect = effect;   ratio = float(1.0);   peak = float(0.0);	wxStaticText * pStaticText;   wxBoxSizer * pBoxSizer_Dialog = new wxBoxSizer(wxVERTICAL);   pStaticText = new wxStaticText(this, -1,                                  _("Amplify by Dominic Mazzoni"),                                  wxDefaultPosition, wxDefaultSize, 0);   pBoxSizer_Dialog->Add(pStaticText, 0, wxALIGN_CENTER | wxALL, 10);   // Amplification text control   wxBoxSizer *item2 = new wxBoxSizer(wxHORIZONTAL);   pStaticText = new wxStaticText(this, -1, _("Amplification (dB):"),                                  wxDefaultPosition, wxDefaultSize, 0);   item2->Add(pStaticText, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);   wxTextCtrl * item4 = new wxTextCtrl(this, ID_AMP_TEXT, wxT(""),                                        wxDefaultPosition, wxSize(60, -1),                                        0, wxTextValidator(wxFILTER_NUMERIC));   item2->Add(item4, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);   pBoxSizer_Dialog->Add(item2, 0, wxALIGN_CENTER | wxALL, 5);      // slider   wxSlider *item5 =       new wxSlider(this, ID_AMP_SLIDER, 0, AMP_MIN, AMP_MAX,                    wxDefaultPosition, wxSize(100, -1), wxSL_HORIZONTAL);   pBoxSizer_Dialog->Add(item5, 1, wxGROW | wxALIGN_CENTER | wxALL, 5);   // New Peak Amplitude text control   wxBoxSizer *item6 = new wxBoxSizer(wxHORIZONTAL);      pStaticText = new wxStaticText(this, -1, _("New Peak Amplitude (dB):"),                                  wxDefaultPosition, wxDefaultSize, 0);   item6->Add(pStaticText, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);      wxTextCtrl *item8 = new wxTextCtrl(this, ID_PEAK_TEXT, wxT(""),                                       wxDefaultPosition, wxSize(60, -1), 0);   item6->Add(item8, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);      pBoxSizer_Dialog->Add(item6, 0, wxALIGN_CENTER | wxALL, 5);      // "Allow clipping" checkbox   wxCheckBox *item8b = new wxCheckBox(this, ID_CLIP_CHECKBOX,                                       _("Allow clipping"),                                       wxDefaultPosition, wxDefaultSize, 0);      pBoxSizer_Dialog->Add(item8b, 0, wxALIGN_CENTER | wxALL, 5);   // Preview, OK, & Cancel buttons   pBoxSizer_Dialog->Add(0, 10, 0); // spacer   wxBoxSizer * pBoxSizer_OK = new wxBoxSizer(wxHORIZONTAL);   wxButton * pButton_Preview =       new wxButton(this, ID_BUTTON_PREVIEW, m_pEffect->GetPreviewName());   pBoxSizer_OK->Add(pButton_Preview, 0, wxALIGN_CENTER | wxALL, 5);   pBoxSizer_OK->Add(25, 8); // horizontal spacer      wxButton *item11 =      new wxButton(this, wxID_CANCEL, _("Cancel"), wxDefaultPosition,                   wxDefaultSize, 0);   pBoxSizer_OK->Add(item11, 0, wxALIGN_CENTER | wxALL, 5);      wxButton *item10 =      new wxButton(this, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0);   item10->SetDefault();   item10->SetFocus();   pBoxSizer_OK->Add(item10, 0, wxALIGN_CENTER | wxALL, 5);      pBoxSizer_Dialog->Add(pBoxSizer_OK, 0, wxALIGN_CENTER | wxALL, 5);      SetAutoLayout(TRUE);   SetSizer(pBoxSizer_Dialog);   pBoxSizer_Dialog->Fit(this);   pBoxSizer_Dialog->SetSizeHints(this);}bool AmplifyDialog::Validate(){   return TRUE;}bool AmplifyDialog::TransferDataToWindow(){   wxSlider *slider;   slider = GetAmpSlider();   if (slider)      slider->SetValue((int)(200*log10(ratio)+0.5));   mLoopDetect = true;   wxTextCtrl *text = GetAmpText();   if (text) {      wxString str;      str.Printf(wxT("%.1f"), 20*log10(ratio));      text->SetValue(str);   }   text = GetPeakText();   if (text) {      wxString str;      str.Printf(wxT("%.1f"), 20*log10(ratio*peak));      text->SetValue(str);   }   mLoopDetect = false;   return TRUE;}bool AmplifyDialog::TransferDataFromWindow(){   wxTextCtrl *c = GetAmpText();   if (c) {      double r = 0;      wxString val = c->GetValue();      val.ToDouble(&r);      ratio = pow(10.0,TrapDouble(r*10, AMP_MIN, AMP_MAX)/200.0);   }   noclip = GetClipCheckBox()->GetValue();   return TRUE;}// WDR: handler implementations for AmplifyDialogvoid AmplifyDialog::OnAmpText(wxCommandEvent & event){   if (mLoopDetect)      return;   wxTextCtrl *c = GetAmpText();   if (c) {      double r;      mLoopDetect = true;      wxString val = c->GetValue();      val.ToDouble(&r);      ratio = pow(10.0,TrapDouble(r*10, AMP_MIN, AMP_MAX)/200.0);      wxSlider *slider = GetAmpSlider();      if (slider)         slider->SetValue((int)(200*log10(ratio)+0.5));      wxString str;      str.Printf(wxT("%.1f"), 20*log10(ratio*peak));      GetPeakText()->SetValue(str);      mLoopDetect = false;   }      CheckClip();}void AmplifyDialog::OnPeakText(wxCommandEvent & event){   if (mLoopDetect)      return;   wxTextCtrl *c = GetPeakText();   if (c) {      double r;      mLoopDetect = true;      wxString val = c->GetValue();      val.ToDouble(&r);      ratio = pow(10.0, r/20.0) / peak;            double dB = TrapDouble(200*log10(ratio), AMP_MIN, AMP_MAX)/10.0;      ratio = pow(10.0, dB/20.0);      wxSlider *slider = GetAmpSlider();      if (slider)         slider->SetValue((int)(10*dB+0.5));            wxString str;      str.Printf(wxT("%.1f"), dB);      GetAmpText()->SetValue(str);            mLoopDetect = false;   }      CheckClip();}void AmplifyDialog::OnAmpSlider(wxCommandEvent & event){   if (mLoopDetect)      return;   mLoopDetect = true;   wxString str;   double dB = GetAmpSlider()->GetValue() / 10.0;   ratio = pow(10.0,TrapDouble(dB, AMP_MIN, AMP_MAX)/20.0);      double dB2 = (GetAmpSlider()->GetValue()-1) / 10.0;   double ratio2 = pow(10.0,TrapDouble(dB2, AMP_MIN, AMP_MAX)/20.0);   if (GetClipCheckBox()->GetValue() &&       ratio * peak > 1.0 &&       ratio2 * peak < 1.0)      ratio = 1.0 / peak;      str.Printf(wxT("%.1f"), 20*log10(ratio));   GetAmpText()->SetValue(str);   str.Printf(wxT("%.1f"), 20*log10(ratio*peak));   GetPeakText()->SetValue(str);   mLoopDetect = false;   CheckClip();}void AmplifyDialog::OnClipCheckBox(wxCommandEvent & event){   CheckClip();}void AmplifyDialog::CheckClip(){   if (!GetClipCheckBox()->GetValue()) {      GetOK()->Enable(ratio * peak <= 1.0);   }   else {      GetOK()->Enable(true);   }}void AmplifyDialog::OnPreview(wxCommandEvent &event){   TransferDataFromWindow();	// Save & restore parameters around Preview, because we didn't do OK.	float oldRatio = m_pEffect->ratio;	float oldPeak = m_pEffect->peak;   m_pEffect->ratio = ratio;   if (noclip && ratio*peak > 1.0)      m_pEffect->ratio = 1.0 / peak;   m_pEffect->peak = peak;   m_pEffect->Preview();   m_pEffect->ratio = oldRatio;   m_pEffect->peak = oldPeak;}void AmplifyDialog::OnOk(wxCommandEvent & event){   TransferDataFromWindow();      if (GetClipCheckBox()->GetValue() == true) {     if (ratio * peak > 1.0)        ratio = 1.0 / peak;   }   if (Validate())      EndModal(true);   else {      event.Skip();   }}void AmplifyDialog::OnCancel(wxCommandEvent & event){   EndModal(false);}// 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: a8583903-8582-4293-b7d0-3196ab53e0c8

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美久久一二区| 91传媒视频在线播放| 欧洲另类一二三四区| 国产欧美日韩中文久久| 五月天欧美精品| 99久精品国产| 欧美激情综合网| 国产盗摄一区二区| 久久久久久久久久久久久女国产乱 | 欧美精品久久久久久久久老牛影院| 精品一区二区三区免费观看| 日韩午夜激情视频| 美女高潮久久久| 欧美一区二区视频观看视频 | 一区二区三区国产| 91在线免费看| 国产精品亚洲一区二区三区在线| 中文字幕成人av| 日韩精品在线网站| 国产黄色91视频| 美女视频网站久久| 视频一区二区中文字幕| 日韩欧美一级片| 欧美日韩aaa| 国产v日产∨综合v精品视频| 国产欧美精品一区二区色综合| 91麻豆精品国产91久久久久久| 国产精品自在在线| 男人的天堂久久精品| 国产精品久久久久久久久动漫| 91视频.com| 青青国产91久久久久久| 亚洲国产日韩在线一区模特| 欧美一级在线观看| 91 com成人网| 91精品在线麻豆| 欧美日精品一区视频| 国产一区二区看久久| 一区二区高清在线| 亚洲乱码日产精品bd| 日韩精品一区在线观看| 日韩一级免费一区| 欧美电视剧在线看免费| 精品日韩在线一区| 色视频一区二区| 黄一区二区三区| 亚洲h动漫在线| 国产精品视频一二三区| 欧美一区二区视频观看视频| 日韩精品一区二区三区老鸭窝| 日韩精品一区二区三区swag | 欧美日韩不卡在线| 欧美片在线播放| 日韩欧美久久一区| 欧美精品一区二| 欧美日韩电影一区| 日韩精品一区二区三区四区视频| 亚洲精品在线观| 欧美人伦禁忌dvd放荡欲情| 69堂成人精品免费视频| 欧美成人国产一区二区| 国产视频911| 欧美v日韩v国产v| 国产日韩欧美综合一区| 综合激情成人伊人| 欧美激情一区二区三区蜜桃视频| 国产精品网友自拍| 亚洲综合一区二区精品导航| 国产精品久久久久久户外露出| 最新欧美精品一区二区三区| 国产精品污污网站在线观看 | 石原莉奈一区二区三区在线观看 | 国产精品18久久久| 色综合天天综合色综合av| 国产乱码一区二区三区| av一二三不卡影片| 国产99精品国产| 色综合一区二区| 精品少妇一区二区三区在线视频| 国产精品视频免费看| 五月天亚洲婷婷| 成人av电影在线网| 成人一级视频在线观看| 国产精品自产自拍| 91高清在线观看| 2022国产精品视频| 亚洲一区av在线| 国产福利91精品一区| 欧美日韩在线观看一区二区| 久久天天做天天爱综合色| 一区二区三国产精华液| 激情亚洲综合在线| 欧美综合一区二区三区| 国产亚洲综合色| 日韩精品1区2区3区| av在线不卡观看免费观看| 日韩午夜在线播放| 一区二区三区小说| 国产精品一区一区| 7777女厕盗摄久久久| 最新国产成人在线观看| 国产在线精品免费| 欧美人成免费网站| 亚洲精品国产a| 懂色av一区二区夜夜嗨| 欧美一区二区三区啪啪| 亚洲精品久久7777| 国产91在线|亚洲| 欧美一区二区三区精品| 夜色激情一区二区| 成人美女视频在线看| 久久综合色婷婷| 欧美96一区二区免费视频| 欧美在线观看视频一区二区三区| 亚洲国产高清aⅴ视频| 久久99精品国产91久久来源| 欧美精品丝袜中出| 亚洲一区二区不卡免费| 91香蕉视频在线| 国产精品二区一区二区aⅴ污介绍| 麻豆极品一区二区三区| 欧美视频日韩视频在线观看| 欧美成人伊人久久综合网| 亚洲国产成人91porn| 不卡免费追剧大全电视剧网站| 26uuu久久综合| 激情综合色丁香一区二区| 91精品国产美女浴室洗澡无遮挡| 亚洲自拍偷拍图区| 色999日韩国产欧美一区二区| 国产欧美精品一区aⅴ影院 | 亚洲美腿欧美偷拍| 免费的成人av| 欧美日韩一二三区| 亚洲图片有声小说| 欧美日韩精品一二三区| 亚洲美女精品一区| 91国产丝袜在线播放| 亚洲综合在线电影| 欧美日韩五月天| 丝袜亚洲另类欧美综合| 欧美高清精品3d| 蜜乳av一区二区三区| 欧美电视剧免费全集观看 | 91福利社在线观看| 亚洲欧美偷拍另类a∨色屁股| 99re视频精品| 亚洲综合一区二区| 欧美一区国产二区| 精品一区二区精品| 日本一区二区在线不卡| 不卡av免费在线观看| 亚洲精品中文在线| 欧美精品日韩精品| 久久国产综合精品| 欧美日韩精品专区| 青青草97国产精品免费观看 | 国产精品萝li| 91麻豆精品视频| 亚瑟在线精品视频| 日韩视频在线你懂得| 粉嫩绯色av一区二区在线观看| 国产精品久久久久久久午夜片| 色老综合老女人久久久| 丝袜国产日韩另类美女| 精品国产第一区二区三区观看体验 | 亚洲少妇屁股交4| 欧美日韩国产片| 国产在线精品不卡| 亚洲人一二三区| 欧美一区二区网站| av电影在线观看完整版一区二区| 亚洲愉拍自拍另类高清精品| 日韩免费看网站| 不卡一区二区中文字幕| 亚洲va韩国va欧美va精品| 欧美一区二区三区系列电影| 成人白浆超碰人人人人| 丝袜a∨在线一区二区三区不卡 | 三级在线观看一区二区 | 亚洲国产高清aⅴ视频| 欧美日韩国产大片| 国产99久久久国产精品免费看| 香蕉久久夜色精品国产使用方法 | 久久综合久色欧美综合狠狠| 94-欧美-setu| 精品亚洲欧美一区| 亚洲精品中文在线观看| 久久综合久久综合久久综合| 欧美性淫爽ww久久久久无| 国产综合久久久久久久久久久久| 亚洲激情在线激情| 久久久午夜精品| 欧美日韩aaaaaa| 91亚洲大成网污www| 国产成人av一区| 免费欧美在线视频| 一区二区三区欧美久久| 国产欧美日产一区| 欧美一区二区三区免费视频|