tfirsettings.cpp.svn-base
来自「ffshow源码」· SVN-BASE 代码 · 共 112 行
SVN-BASE
112 行
/* * Copyright (c) 2004-2006 Milan Cutka * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */#include "stdafx.h"#include "TfirSettings.h"#include "TaudioFilterFIR.h"#include "Cfir.h"#include "TffdshowPageDec.h"const char_t* TfirSettings::types[]={ _l("lowpass"), _l("highpass"), _l("bandpass"), _l("bandstop"), NULL};const char_t* TfirSettings::windows[]={ _l("box"), _l("triangle"), _l("hamming"), _l("hanning"), _l("blackman"), _l("flattop"), _l("kaiser"), NULL};const TfilterIDFF TfirSettings::idffs={ /*name*/ _l("FIR filter"), /*id*/ IDFF_filterFir, /*is*/ IDFF_isFir, /*order*/ IDFF_orderFir, /*show*/ IDFF_showFir, /*full*/ 0, /*half*/ 0, /*dlgId*/ IDD_FIR,};TfirSettings::TfirSettings(TintStrColl *Icoll,TfilterIDFFs *filters):TfilterSettingsAudio(sizeof(*this),Icoll,filters,&idffs){ static const TintOptionT<TfirSettings> iopts[]= { IDFF_isFir ,&TfirSettings::is ,0,0,_l(""),1, _l("isFIR"),0, IDFF_showFir ,&TfirSettings::show ,0,0,_l(""),1, _l("showFIR"),1, IDFF_orderFir ,&TfirSettings::order ,1,1,_l(""),1, _l("orderFIR"),0, IDFF_firTaps ,&TfirSettings::taps ,8,1024,_l(""),1, _l("firTaps"),32, IDFF_firType ,&TfirSettings::type ,0,3,_l(""),1, _l("firType"),0, IDFF_firFreq ,&TfirSettings::freq ,1,192000,_l(""),1, _l("firFreq"),6000, IDFF_firWidth ,&TfirSettings::width ,1,192000/2,_l(""),1, _l("firWidth"),1000, IDFF_firWindow ,&TfirSettings::window ,0,6,_l(""),1, _l("firWindow"),4, IDFF_firKaiserBeta ,&TfirSettings::kaiserbeta,1000,20000,_l(""),1, _l("firKaiserBeta"),1000, 0 }; addOptions(iopts); static const TcreateParamList1 listFirType(types);setParamList(IDFF_firType,&listFirType); static const TcreateParamList1 listFirWindow(windows);setParamList(IDFF_firWindow,&listFirWindow); }void TfirSettings::createFilters(size_t filtersorder,Tfilters *filters,TfilterQueue &queue) const{ idffOnChange(idffs,filters,queue.temporary); if (show) queueFilter<TaudioFilterFir>(filtersorder,filters,queue); }void TfirSettings::createPages(TffdshowPageDec *parent) const{ parent->addFilterPage<TfirPage>(&idffs);}const int* TfirSettings::getResets(unsigned int pageId){ static const int idResets[]={IDFF_firTaps,IDFF_firType,IDFF_firFreq,IDFF_firWidth,IDFF_firWindow,IDFF_firKaiserBeta,0}; return idResets;}bool TfirSettings::getTip(unsigned int pageId,char_t *tipS,size_t len){ char_t widths[50]=_l(""); if (type==BANDPASS || type==BANDSTOP) tsprintf(widths,_l(", width %i Hz"),width); tsnprintf(tipS,len,_l("%s at %iHz%s\n%i taps\n%s window"),types[type],freq,widths,taps,windows[window]); return true;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?