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

📄 tdialogsettings.cpp.svn-base

📁 ffshow源码
💻 SVN-BASE
字号:
/* * Copyright (c) 2002-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 "reg.h"#include "TdialogSettings.h"#include "resource.h"#include "ffdshow_constants.h"#include "Tconfig.h"//===================================== TdialogSettingsBase =====================================TdialogSettingsBase::TdialogSettingsBase(const char_t *Ireg_child,TintStrColl *Icoll):reg_child(Ireg_child),loaded(false),Toptions(Icoll){ static const TintOptionT<TdialogSettingsBase> iopts[]=  {   IDFF_lastPage           ,&TdialogSettingsBase::mainLastPage    ,1,1,_l(""),0,     _l("lastPage"),TintOption::DEF_DYN,   IDFF_dlgRestorePos      ,&TdialogSettingsBase::mainIsRestorePos,0,0,_l(""),0,     _l("dlgRestorePos"),0,   IDFF_dlgPosX            ,&TdialogSettingsBase::mainPosX        ,-4096,4096,_l(""),0,     _l("dlgPosX"),0,   IDFF_dlgPosY            ,&TdialogSettingsBase::mainPosY        ,-4096,4096,_l(""),0,     _l("dlgPosY"),0,   IDFF_showHints          ,&TdialogSettingsBase::showHints       ,0,0,_l(""),0,     _l("showHints"),1,   IDFF_lvCodecsWidth0     ,&TdialogSettingsBase::codecsLvWidth0  ,1,2048,_l(""),0,     _l("lvCodecsWidth0"),TintOption::DEF_DYN,   IDFF_lvCodecsWidth1     ,&TdialogSettingsBase::codecsLvWidth1  ,1,2048,_l(""),0,     _l("lvCodecsWidth1"),TintOption::DEF_DYN,   IDFF_lvCodecsWidth2     ,&TdialogSettingsBase::codecsLvWidth2  ,1,2048,_l(""),0,     _l("lvCodecsWidth2"),TintOption::DEF_DYN,   IDFF_lvCodecsSelected   ,&TdialogSettingsBase::codecsLastSel   ,0,1000,_l(""),0,     _l("lvCodecsSelected"),0,   0  }; addOptions(iopts);  static const TstrOption sopts[]=  {   IDFF_lang,(TstrVal)&TdialogSettingsBase::lang,20,_l(""),0,     NULL,NULL,   0  }; addOptions(sopts); }void TdialogSettingsBase::reg_op(TregOp &t){ Toptions::reg_op(t); t._REG_OP_N(0,_l("translateMode"),translate,0);}void TdialogSettingsBase::load(const Tconfig *config){ loaded=true; char_t key[MAX_PATH];tsprintf(key,FFDSHOW_REG_PARENT _l("\\%s"),reg_child); TregOpRegRead t(HKEY_CURRENT_USER,key); reg_op(t); TregOpRegRead tl(HKEY_CURRENT_USER,FFDSHOW_REG_PARENT _l("\\") FFDSHOW); tl._REG_OP_S(IDFF_lang,_l("lang"),lang,20,_l("")); if (lang[0]=='\0')  {   TregOpRegRead tNSI(HKEY_LOCAL_MACHINE,FFDSHOW_REG_PARENT _l("\\") FFDSHOW);   char_t langId[MAX_PATH];   tNSI._REG_OP_S(0,_l("lang"),langId,MAX_PATH,_l("1033"));   char_t langfilesmask[MAX_PATH];tsprintf(langfilesmask,_l("%s.*"),langId);   char_t lngMask[MAX_PATH];_makepath(lngMask,NULL,config->pth,_l("languages\\ffdshow"),langfilesmask);   strings langfiles;   findFiles(lngMask,langfiles,false);   if (langfiles.size()==0)    strcpy(lang,_l("en"));   else    extractfileext(langfiles[0].c_str(),lang);  }}void TdialogSettingsBase::save(void){ char_t key[MAX_PATH];tsprintf(key,FFDSHOW_REG_PARENT _l("\\%s"),reg_child); TregOpRegWrite t(HKEY_CURRENT_USER,key); reg_op(t); TregOpRegWrite tl(HKEY_CURRENT_USER,FFDSHOW_REG_PARENT _l("\\") FFDSHOW); tl._REG_OP_S(IDFF_lang,_l("lang"),lang,20,_l("en"));}//===================================== TdialogSettingsDec ======================================TdialogSettingsDec::TdialogSettingsDec(const char_t *Ireg_child,TintStrColl *Icoll):TdialogSettingsBase(Ireg_child,Icoll){ static const TintOptionT<TdialogSettingsDec> iopts[]=  {   IDFF_lvWidth0        ,&TdialogSettingsDec::presetsLvWidth0  ,1,2048,_l(""),0,     _l("lvWidth0"),300,   IDFF_lvKeysWidth0     ,&TdialogSettingsDec::keysLvWidth0    ,1,2048,_l(""),0,     _l("lvKeysWidth0"),240,   IDFF_lvKeysWidth1     ,&TdialogSettingsDec::keysLvWidth1    ,1,2048,_l(""),0,     _l("lvKeysWidth1"),90,   IDFF_dlgDecCurrentPage,&TdialogSettingsDec::currentPage     ,0,1,_l(""),0,     _l("dlgDecCurrentPage"),0,   0  }; addOptions(iopts); }//==================================== TdialogSettingsDecVideo =====================================TdialogSettingsDecVideo::TdialogSettingsDecVideo(bool vfwdec,TintStrColl *Icoll):TdialogSettingsDec(vfwdec?FFDSHOWDECVIDEOVFW:FFDSHOWDECVIDEO,Icoll){ static const TintOptionT<TdialogSettingsDecVideo> iopts[]=  {   IDFF_dlgCustColor0 ,&TdialogSettingsDecVideo::dlgCustColor0 ,1,1,_l(""),0,     _l("dlgCustColor0") ,RGB( 0*16, 0*16, 0*16),   IDFF_dlgCustColor1 ,&TdialogSettingsDecVideo::dlgCustColor1 ,1,1,_l(""),0,     _l("dlgCustColor1") ,RGB( 1*16, 1*16, 1*16),   IDFF_dlgCustColor2 ,&TdialogSettingsDecVideo::dlgCustColor2 ,1,1,_l(""),0,     _l("dlgCustColor2") ,RGB( 2*16, 2*16, 2*16),   IDFF_dlgCustColor3 ,&TdialogSettingsDecVideo::dlgCustColor3 ,1,1,_l(""),0,     _l("dlgCustColor3") ,RGB( 3*16, 3*16, 3*16),   IDFF_dlgCustColor4 ,&TdialogSettingsDecVideo::dlgCustColor4 ,1,1,_l(""),0,     _l("dlgCustColor4") ,RGB( 4*16, 4*16, 4*16),   IDFF_dlgCustColor5 ,&TdialogSettingsDecVideo::dlgCustColor5 ,1,1,_l(""),0,     _l("dlgCustColor5") ,RGB( 5*16, 5*16, 5*16),   IDFF_dlgCustColor6 ,&TdialogSettingsDecVideo::dlgCustColor6 ,1,1,_l(""),0,     _l("dlgCustColor6") ,RGB( 6*16, 6*16, 6*16),   IDFF_dlgCustColor7 ,&TdialogSettingsDecVideo::dlgCustColor7 ,1,1,_l(""),0,     _l("dlgCustColor7") ,RGB( 7*16, 7*16, 7*16),   IDFF_dlgCustColor8 ,&TdialogSettingsDecVideo::dlgCustColor8 ,1,1,_l(""),0,     _l("dlgCustColor8") ,RGB( 8*16, 8*16, 8*16),   IDFF_dlgCustColor9 ,&TdialogSettingsDecVideo::dlgCustColor9 ,1,1,_l(""),0,     _l("dlgCustColor9") ,RGB( 9*16, 9*16, 9*16),   IDFF_dlgCustColor10,&TdialogSettingsDecVideo::dlgCustColor10,1,1,_l(""),0,     _l("dlgCustColor10"),RGB(10*16,10*16,10*16),   IDFF_dlgCustColor11,&TdialogSettingsDecVideo::dlgCustColor11,1,1,_l(""),0,     _l("dlgCustColor11"),RGB(11*16,11*16,11*16),   IDFF_dlgCustColor12,&TdialogSettingsDecVideo::dlgCustColor12,1,1,_l(""),0,     _l("dlgCustColor12"),RGB(12*16,12*16,12*16),   IDFF_dlgCustColor13,&TdialogSettingsDecVideo::dlgCustColor13,1,1,_l(""),0,     _l("dlgCustColor13"),RGB(13*16,13*16,13*16),   IDFF_dlgCustColor14,&TdialogSettingsDecVideo::dlgCustColor14,1,1,_l(""),0,     _l("dlgCustColor14"),RGB(14*16,14*16,14*16),   IDFF_dlgCustColor15,&TdialogSettingsDecVideo::dlgCustColor15,1,1,_l(""),0,     _l("dlgCustColor15"),RGB(  255,  255,  255),   0  }; addOptions(iopts); }int TdialogSettingsDecVideo::getDefault(int id){ switch (id)  {   case IDFF_lastPage:return IDD_POSTPROC;   case IDFF_lvCodecsWidth0:return 74;   case IDFF_lvCodecsWidth1:return 76;   case IDFF_lvCodecsWidth2:return 180;   default:return TdialogSettingsDec::getDefault(id);  }}//==================================== TdialogSettingsDecAudio =====================================TdialogSettingsDecAudio::TdialogSettingsDecAudio(TintStrColl *Icoll,const char_t *Ireg_child):TdialogSettingsDec(Ireg_child,Icoll){ static const TintOptionT<TdialogSettingsDecAudio> iopts[]=  {   IDFF_lvConvolverWidth0     ,&TdialogSettingsDecAudio::convolverLvWidth0,1,2048,_l(""),0,     _l("lvConvolverWidth0"),70,   IDFF_lvConvolverWidth1     ,&TdialogSettingsDecAudio::convolverLvWidth1,1,2048,_l(""),0,     _l("lvConvolverWidth1"),200,   IDFF_lvConvolverWidth2     ,&TdialogSettingsDecAudio::convolverLvWidth2,1,2048,_l(""),0,     _l("lvConvolverWidth2"),300,   IDFF_lvConvolverSelected   ,&TdialogSettingsDecAudio::convolverLvSelected,0,5,_l(""),0,     _l("lvConvolverSelected"),0,        IDFF_dlgVolumeDb           ,&TdialogSettingsDecAudio::volumeDb,0,0,_l(""),0,       _l("dlgVolumeDb"),0,   0  }; addOptions(iopts); }int TdialogSettingsDecAudio::getDefault(int id){ switch (id)  {   case IDFF_lastPage:return IDD_CODECS;   case IDFF_lvCodecsWidth0:return 100;   case IDFF_lvCodecsWidth1:return 100;   case IDFF_lvCodecsWidth2:return 150;   default:return TdialogSettingsDec::getDefault(id);  }}//===================================== TdialogSettingsEnc ======================================TdialogSettingsEnc::TdialogSettingsEnc(TintStrColl *Icoll):TdialogSettingsBase(FFDSHOWENC,Icoll){ static const TintOptionT<TdialogSettingsEnc> iopts[]=  {   IDFF_enc_showGraph    ,&TdialogSettingsEnc::showGraph   ,0,0,_l(""),0,     _l("showGraph"),0,   IDFF_dlgBpsFps1000    ,&TdialogSettingsEnc::bpsFps1000 ,1,1,_l(""),0,     _l("bpsDlgFPS1000"),25000,   IDFF_dlgBpsLen        ,&TdialogSettingsEnc::bpsLen     ,1,1,_l(""),0,     _l("bpsDlgLen"),590000,   IDFF_dlgPerfectDlgX   ,&TdialogSettingsEnc::perfectDlgX,1,1,_l(""),0,     _l("perfectDlgX"),-1,   IDFF_dlgPerfectDlgY   ,&TdialogSettingsEnc::perfectDlgY,1,1,_l(""),0,     _l("perfectDlgY"),-1,   IDFF_dlgEncCurrentPage,&TdialogSettingsEnc::currentPage,0,1,_l(""),0,     _l("dlgEncCurrentPage"),0,   0  }; addOptions(iopts); }int TdialogSettingsEnc::getDefault(int id){ switch (id)  {   case IDFF_lastPage:return IDD_GENERIC;   case IDFF_lvCodecsWidth0:return 100;   case IDFF_lvCodecsWidth1:return 150;   case IDFF_lvCodecsWidth2:return 50;   default:return TdialogSettingsBase::getDefault(id);  }}

⌨️ 快捷键说明

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