teqsettings.cpp.svn-base

来自「ffshow源码」· SVN-BASE 代码 · 共 140 行

SVN-BASE
140
字号
/* * Copyright (c) 2003-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 "TeqSettings.h"#include "TaudioFilterEQ.h"#include "TaudioFilterEQsuper.h"#include "Ceq.h"#include "TffdshowPageDec.h"const float TeqSettings::F[10]={31.25,62.5,125,250,500,1000,2000,4000,8000,16000};const float TeqSettings::Fwinamp[10]={60,170,310,600,1000,3000,6000,12000,14000,16000};const TfilterIDFF TeqSettings::idffs={ /*name*/      _l("Equalizer"), /*id*/        IDFF_filterEQ, /*is*/        IDFF_isEQ, /*order*/     IDFF_orderEQ, /*show*/      IDFF_showEQ, /*full*/      0, /*half*/      0, /*dlgId*/     IDD_EQ,};TeqSettings::TeqSettings(TintStrColl *Icoll,TfilterIDFFs *filters):TfilterSettingsAudio(sizeof(*this),Icoll,filters,&idffs){ static const TintOptionT<TeqSettings> iopts[]=  {   IDFF_isEQ      ,&TeqSettings::is    ,0,0,_l(""),1,     _l("isEQ"),0,   IDFF_showEQ    ,&TeqSettings::show  ,0,0,_l(""),1,     _l("showEQ"),1,   IDFF_orderEQ   ,&TeqSettings::order ,1,1,_l(""),1,     _l("orderEQ"),0,   IDFF_eqSuper   ,&TeqSettings::super ,0,0,_l(""),1,     _l("eqSuper"),0,   IDFF_eq0       ,&TeqSettings::eq0   ,0,200,_l(""),1,     _l("eq0"),100,   IDFF_eq1       ,&TeqSettings::eq1   ,0,200,_l(""),1,     _l("eq1"),100,   IDFF_eq2       ,&TeqSettings::eq2   ,0,200,_l(""),1,     _l("eq2"),100,   IDFF_eq3       ,&TeqSettings::eq3   ,0,200,_l(""),1,     _l("eq3"),100,   IDFF_eq4       ,&TeqSettings::eq4   ,0,200,_l(""),1,     _l("eq4"),100,   IDFF_eq5       ,&TeqSettings::eq5   ,0,200,_l(""),1,     _l("eq5"),100,   IDFF_eq6       ,&TeqSettings::eq6   ,0,200,_l(""),1,     _l("eq6"),100,   IDFF_eq7       ,&TeqSettings::eq7   ,0,200,_l(""),1,     _l("eq7"),100,   IDFF_eq8       ,&TeqSettings::eq8   ,0,200,_l(""),1,     _l("eq8"),100,   IDFF_eq9       ,&TeqSettings::eq9   ,0,200,_l(""),1,     _l("eq9"),100,   IDFF_eqLowdb   ,&TeqSettings::lowdb ,-10000,10000,_l(""),1,     _l("eqLowdb"),-1200,   IDFF_eqHighdb  ,&TeqSettings::highdb,-10000,10000,_l(""),1,     _l("eqHighdb"),1200,   IDFF_eq0freq   ,&TeqSettings::f0    ,100,192000*100,_l(""),1,     _l("eq0freq"),int(F[0]*100),   IDFF_eq1freq   ,&TeqSettings::f1    ,100,192000*100,_l(""),1,     _l("eq1freq"),int(F[1]*100),   IDFF_eq2freq   ,&TeqSettings::f2    ,100,192000*100,_l(""),1,     _l("eq2freq"),int(F[2]*100),   IDFF_eq3freq   ,&TeqSettings::f3    ,100,192000*100,_l(""),1,     _l("eq3freq"),int(F[3]*100),   IDFF_eq4freq   ,&TeqSettings::f4    ,100,192000*100,_l(""),1,     _l("eq4freq"),int(F[4]*100),   IDFF_eq5freq   ,&TeqSettings::f5    ,100,192000*100,_l(""),1,     _l("eq5freq"),int(F[5]*100),   IDFF_eq6freq   ,&TeqSettings::f6    ,100,192000*100,_l(""),1,     _l("eq6freq"),int(F[6]*100),   IDFF_eq7freq   ,&TeqSettings::f7    ,100,192000*100,_l(""),1,     _l("eq7freq"),int(F[7]*100),   IDFF_eq8freq   ,&TeqSettings::f8    ,100,192000*100,_l(""),1,     _l("eq8freq"),int(F[8]*100),   IDFF_eq9freq   ,&TeqSettings::f9    ,100,192000*100,_l(""),1,     _l("eq9freq"),int(F[9]*100),   0  }; addOptions(iopts);}void TeqSettings::createFilters(size_t filtersorder,Tfilters *filters,TfilterQueue &queue) const{ idffOnChange(idffs,filters,queue.temporary); if (is && show)  {   if (!queue.temporary) setOnChange(IDFF_eqSuper,filters,&Tfilters::onQueueChange);   if (super)    queueFilter<TaudioFilterEQsuper>(filtersorder,filters,queue);    else    queueFilter<TaudioFilterEQ>(filtersorder,filters,queue);   }  }void TeqSettings::createPages(TffdshowPageDec *parent) const{ parent->addFilterPage<TeqPage>(&idffs);}const int* TeqSettings::getResets(unsigned int pageId){ static const int idResets[]={  IDFF_eq0,IDFF_eq1,IDFF_eq2,IDFF_eq3,IDFF_eq4,IDFF_eq5,IDFF_eq6,IDFF_eq7,IDFF_eq8,IDFF_eq9,  IDFF_eq0freq,IDFF_eq1freq,IDFF_eq2freq,IDFF_eq3freq,IDFF_eq4freq,IDFF_eq5freq,IDFF_eq6freq,IDFF_eq7freq,IDFF_eq8freq,IDFF_eq9freq,  IDFF_eqLowdb,IDFF_eqHighdb,   IDFF_eqSuper,  0}; return idResets;}bool TeqSettings::getTip(unsigned int pageId,char_t *tipS,size_t len){ char_t tip[200]=_l(""); for (int i=0;i<10;i++)  strcatf(tip,_l("%.2f, "),((highdb-lowdb)*(&eq0)[i]/200+lowdb)/100.0f); *strrchr(tip,',')='\0'; tsnprintf(tipS,len,_l("%s%s"),tip,super?_l("\nSuperEQ"):_l("")); tipS[len-1]='\0'; return true;}

⌨️ 快捷键说明

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