From: <mil...@us...> - 2003-01-28 12:50:56
|
Update of /cvsroot/ffdshow/ffvfw/src/dialog In directory sc8-pr-cvs1:/tmp/cvs-serv18779/src/dialog Modified Files: Cme.cpp CmeXvid.cpp Conepass.cpp TbitrateDlg.cpp TconfPage.cpp TffvfwPage.cpp TperfectDlg.cpp Twindow.cpp Twindow.h Added Files: TpresetsDlg.cpp TpresetsDlg.h Log Message: working on presets 3 --- NEW FILE: TpresetsDlg.cpp --- /* * Copyright (c) 2003 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "stdafx.h" #include "TpresetsDlg.h" #include "resource.h" #include "Tpreset.h" TpresetsDlg::TpresetsDlg(HWND parent,Tpresets &Ipresets):presets(Ipresets) { DialogBoxParam(*hi,MAKEINTRESOURCE(IDD_PRESETS),parent,dlgProc0,LPARAM(this)); } INT_PTR CALLBACK TpresetsDlg::dlgProc0(HWND m_hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch (uMsg) { case WM_INITDIALOG: SetWindowLong(m_hwnd,GWL_USERDATA,lParam); break; }; TpresetsDlg *self=(TpresetsDlg*)GetWindowLong(m_hwnd,GWL_USERDATA); return self?self->dlgProc(m_hwnd,uMsg,wParam,lParam):FALSE; } INT_PTR CALLBACK TpresetsDlg::dlgProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch (uMsg) { case WM_INITDIALOG: m_hwnd=hwndDlg; init(); return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: case IDCANCEL: EndDialog(m_hwnd,wParam); return TRUE; case IDC_BT_PRESET_RENAME: { Tpreset *preset=(Tpreset*)cbxGetCurItemData(IDC_CBX_PRESETS); char presetName[MAX_PATH];strcpy(presetName,preset->name); if (inputString("Rename preset","Enter new preset name",presetName,MAX_PATH) && presetName[0]) { preset->rename(presetName); fillPresets(); } return TRUE; } case IDC_BT_PRESET_REMOVE: { Tpreset *preset=(Tpreset*)cbxGetCurItemData(IDC_CBX_PRESETS); if (MessageBox(m_hwnd,"Are you sure you want to delete selected preset?","Confirm preset removal",MB_YESNO|MB_ICONQUESTION)==IDYES) { presets.remove(preset); fillPresets(); } return TRUE; } case IDC_CBX_PRESETS: if (HIWORD(wParam)==CBN_SELCHANGE) { int i=SendDlgItemMessage(m_hwnd,IDC_CBX_PRESETS,CB_GETCURSEL,0,0); selectPreset(i+2); return TRUE; } break; }; break; } return FALSE; } void TpresetsDlg::init(void) { hlv=GetDlgItem(m_hwnd,IDC_LV_PRESET); int ncol=0; RECT r; GetWindowRect(hlv,&r); lvAddCol(hlv,ncol,(r.right-r.left)/2,"Property",false); lvAddCol(hlv,ncol,(r.right-r.left)/2-25,"Value",false); ListView_SetExtendedListViewStyleEx(hlv,LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES/*|LVS_EX_CHECKBOXES*/,LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES/*|LVS_EX_CHECKBOXES*/); fillPresets(); selectPreset(2); } void TpresetsDlg::fillPresets(void) { int ii=SendDlgItemMessage(m_hwnd,IDC_CBX_PRESETS,CB_GETCURSEL,0,0); SendDlgItemMessage(m_hwnd,IDC_CBX_PRESETS,CB_RESETCONTENT,0,0); for (int i=2;i<presets.size();i++) cbxAdd(IDC_CBX_PRESETS,presets[i].name,int(&presets[i])); selectPreset(ii+2); } void TpresetsDlg::selectPreset(int i) { static const int idPreset[]={IDC_BT_PRESET_RENAME,IDC_BT_PRESET_REMOVE,0}; if (SendDlgItemMessage(m_hwnd,IDC_CBX_PRESETS,CB_SETCURSEL,i-2,0)==CB_ERR) { enable(false,idPreset); return; } enable(true,idPreset); ListView_DeleteAllItems(hlv); Tpreset &preset=presets[i]; int ii=0; for (Tpreset::Tvals::const_iterator v=preset.vals.begin();v!=preset.vals.end();v++,ii++) { const Tval &val=v->second; LVITEM lvi;memset(&lvi,0,sizeof(lvi)); lvi.mask=LVIF_TEXT|LVIF_PARAM; lvi.iItem=ii; lvi.pszText=LPSTR(v->first.c_str()); lvi.lParam=long(&val); int iii=ListView_InsertItem(hlv,&lvi); char valS[20]; ListView_SetItemText(hlv,iii,1,LPSTR(val.s.empty()?_itoa(val.i,valS,10):val.s.c_str())); //ListView_SetCheckState(hlv,ii,TRUE); } } --- NEW FILE: TpresetsDlg.h --- #ifndef _TPRESETSDLG_H_ #define _TPRESETSDLG_H_ #include "Twindow.h" struct Tpresets; struct TpresetsDlg :public Twindow { private: Tpresets &presets; static INT_PTR CALLBACK dlgProc0(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam); INT_PTR CALLBACK dlgProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam); HWND hlv; void init(void); void fillPresets(void); void selectPreset(int i); public: TpresetsDlg(HWND parent,Tpresets &Ipresets); }; #endif Index: Cme.cpp =================================================================== RCS file: /cvsroot/ffdshow/ffvfw/src/dialog/Cme.cpp,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** Cme.cpp 27 Jan 2003 14:37:45 -0000 1.18 --- Cme.cpp 28 Jan 2003 12:50:50 -0000 1.19 *************** *** 59,63 **** SendDlgItemMessage(m_hwnd,IDC_CBX_DIA_SIZE,CB_SETCURSEL,cfg->co.dia_size,0); setCheck(IDC_CHB_HQ,cfg->co.me_hq); ! setCheck(IDC_CHB_4MV,cfg->co.me_4mv); prepass2dlg(); --- 59,63 ---- SendDlgItemMessage(m_hwnd,IDC_CBX_DIA_SIZE,CB_SETCURSEL,cfg->co.dia_size,0); setCheck(IDC_CHB_HQ,cfg->co.me_hq); ! setCheck(IDC_CHB_4MV,cfg->co.me_4mv);enable(sup_4mv(cfg->co.codecId),IDC_CHB_4MV); prepass2dlg(); Index: CmeXvid.cpp =================================================================== RCS file: /cvsroot/ffdshow/ffvfw/src/dialog/CmeXvid.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** CmeXvid.cpp 27 Jan 2003 14:37:45 -0000 1.14 --- CmeXvid.cpp 28 Jan 2003 12:50:50 -0000 1.15 *************** *** 50,56 **** { int me=cfg->co.is_xvid_me_custom?cfg->co.xvid_me_custom:meXviDpresets[cfg->co.xvid_motion_search].preset; ! setCheck(IDC_CHB_ADVANCEDDIAMOND8 ,me&PMV_ADVANCEDDIAMOND8 ); setCheck(IDC_CHB_ADVANCEDDIAMOND16,me&PMV_ADVANCEDDIAMOND16); - setCheck(IDC_CHB_HALFPELDIAMOND16 ,me&PMV_HALFPELDIAMOND16 ); setCheck(IDC_CHB_HALFPELREFINE16 ,me&PMV_HALFPELREFINE16 ); --- 50,55 ---- { int me=cfg->co.is_xvid_me_custom?cfg->co.xvid_me_custom:meXviDpresets[cfg->co.xvid_motion_search].preset; ! setCheck(IDC_CHB_ADVANCEDDIAMOND16,me&PMV_ADVANCEDDIAMOND16); setCheck(IDC_CHB_HALFPELDIAMOND16 ,me&PMV_HALFPELDIAMOND16 ); setCheck(IDC_CHB_HALFPELREFINE16 ,me&PMV_HALFPELREFINE16 ); *************** *** 60,63 **** --- 59,63 ---- setCheck(IDC_CHB_USESQUARES16 ,me&PMV_USESQUARES16 ); + setCheck(IDC_CHB_ADVANCEDDIAMOND8 ,me&PMV_ADVANCEDDIAMOND8 ); setCheck(IDC_CHB_HALFPELDIAMOND8 ,me&PMV_HALFPELDIAMOND8 ); setCheck(IDC_CHB_HALFPELREFINE8 ,me&PMV_HALFPELREFINE8 ); *************** *** 98,102 **** cfg->co.me_cmp_chroma=getCheck(IDC_CHB_XVID_CHROMA_ME); return TRUE; - case IDC_CHB_ADVANCEDDIAMOND8 : case IDC_CHB_ADVANCEDDIAMOND16: case IDC_CHB_HALFPELDIAMOND16 : --- 98,101 ---- *************** *** 106,109 **** --- 105,109 ---- case IDC_CHB_OVERLAPPING16 : case IDC_CHB_USESQUARES16 : + case IDC_CHB_ADVANCEDDIAMOND8 : case IDC_CHB_HALFPELDIAMOND8 : case IDC_CHB_HALFPELREFINE8 : Index: Conepass.cpp =================================================================== RCS file: /cvsroot/ffdshow/ffvfw/src/dialog/Conepass.cpp,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** Conepass.cpp 28 Jan 2003 05:51:55 -0000 1.18 --- Conepass.cpp 28 Jan 2003 12:50:51 -0000 1.19 *************** *** 23,26 **** --- 23,33 ---- #include "TffvfwPage.h" + //rc_eq - ? + //rc_buffer_size + //rc_max_rate + //rc_min_rate + //rc_buffer_aggressivity + //rc_initial_cplx - ? + void TonePassPage::init(void) { *************** *** 36,42 **** { SetDlgItemInt(m_hwnd,IDC_ED_VRATETOL,cfg->co.ff1_vratetol,FALSE); ! SetDlgItemInt(m_hwnd,IDC_ED_VQCOMP,cfg->co.ff1_vqcomp,FALSE); ! SetDlgItemInt(m_hwnd,IDC_ED_VQBLUR,cfg->co.ff1_vqblur,FALSE); SetDlgItemInt(m_hwnd,IDC_ED_VQDIFF,cfg->co.ff1_vqdiff,FALSE); } --- 43,52 ---- { SetDlgItemInt(m_hwnd,IDC_ED_VRATETOL,cfg->co.ff1_vratetol,FALSE); ! char pomS[30]; ! sprintf(pomS,"%g",float(cfg->co.ff1_vqcomp/100.0));SetDlgItemText(m_hwnd,IDC_ED_VQCOMP,pomS); ! sprintf(pomS,"%g",float(cfg->co.ff1_vqblur1/100.0));SetDlgItemText(m_hwnd,IDC_ED_VQBLUR1,pomS); ! sprintf(pomS,"%g",float(cfg->co.ff1_vqblur2/100.0));SetDlgItemText(m_hwnd,IDC_ED_VQBLUR2,pomS); SetDlgItemInt(m_hwnd,IDC_ED_VQDIFF,cfg->co.ff1_vqdiff,FALSE); + setCheck(IDC_CHB_RC_SQUISH,cfg->co.ff1_rc_squish); } *************** *** 50,54 **** case IDC_ED_VRATETOL: case IDC_ED_VQCOMP: ! case IDC_ED_VQBLUR: case IDC_ED_VQDIFF: if (HIWORD(wParam)==EN_CHANGE) --- 60,65 ---- case IDC_ED_VRATETOL: case IDC_ED_VQCOMP: ! case IDC_ED_VQBLUR1: ! case IDC_ED_VQBLUR2: case IDC_ED_VQDIFF: if (HIWORD(wParam)==EN_CHANGE) *************** *** 60,65 **** { case IDC_ED_VRATETOL:eval(hed,1,1024*10,&cfg->co.ff1_vratetol);break; ! case IDC_ED_VQCOMP:eval(hed,0,100,&cfg->co.ff1_vqcomp);break; ! case IDC_ED_VQBLUR:eval(hed,0,100,&cfg->co.ff1_vqblur);break; case IDC_ED_VQDIFF:eval(hed,0,31,&cfg->co.ff1_vqdiff);break; } --- 71,77 ---- { case IDC_ED_VRATETOL:eval(hed,1,1024*10,&cfg->co.ff1_vratetol);break; ! case IDC_ED_VQCOMP:eval(hed,0.0,1.0,&cfg->co.ff1_vqcomp,100.0);break; ! case IDC_ED_VQBLUR1:eval(hed,0.0,1.0,&cfg->co.ff1_vqblur1,100.0);break; ! case IDC_ED_VQBLUR2:eval(hed,0.0,1.0,&cfg->co.ff1_vqblur2,100.0);break; case IDC_ED_VQDIFF:eval(hed,0,31,&cfg->co.ff1_vqdiff);break; } *************** *** 67,70 **** --- 79,85 ---- } break; + case IDC_CHB_RC_SQUISH: + cfg->co.ff1_rc_squish=getCheck(IDC_CHB_RC_SQUISH); + return TRUE; } break; *************** *** 76,81 **** { case IDC_ED_VRATETOL:ok=eval(hwnd,1,1024*10);break; ! case IDC_ED_VQCOMP:ok=eval(hwnd,0,100);break; ! case IDC_ED_VQBLUR:ok=eval(hwnd,0,100);break; case IDC_ED_VQDIFF:ok=eval(hwnd,0,31);break; default:return FALSE; --- 91,97 ---- { case IDC_ED_VRATETOL:ok=eval(hwnd,1,1024*10);break; ! case IDC_ED_VQCOMP:ok=eval(hwnd,0.0,1.0);break; ! case IDC_ED_VQBLUR1:ok=eval(hwnd,0.0,1.0);break; ! case IDC_ED_VQBLUR2:ok=eval(hwnd,0.0,1.0);break; case IDC_ED_VQDIFF:ok=eval(hwnd,0,31);break; default:return FALSE; Index: TbitrateDlg.cpp =================================================================== RCS file: /cvsroot/ffdshow/ffvfw/src/dialog/TbitrateDlg.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** TbitrateDlg.cpp 27 Jan 2003 05:47:10 -0000 1.8 --- TbitrateDlg.cpp 28 Jan 2003 12:50:51 -0000 1.9 *************** *** 171,174 **** break; } ! return (dlg)?dlg->msgProc(uMsg,wParam,lParam):FALSE; } --- 171,174 ---- break; } ! return dlg?dlg->msgProc(uMsg,wParam,lParam):FALSE; } Index: TconfPage.cpp =================================================================== RCS file: /cvsroot/ffdshow/ffvfw/src/dialog/TconfPage.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** TconfPage.cpp 28 Jan 2003 05:51:55 -0000 1.12 --- TconfPage.cpp 28 Jan 2003 12:50:51 -0000 1.13 *************** *** 86,90 **** if (GetDlgItem(m_hwnd,IDC_ED_HELP)) { - //HMODULE hm=(HMODULE)GetWindowLong(m_hwnd,GWL_HINSTANCE); HRSRC rsrc=FindResource(*hi,MAKEINTRESOURCE(dialogId),"TEXT"); if (!rsrc) return; --- 86,89 ---- Index: TffvfwPage.cpp =================================================================== RCS file: /cvsroot/ffdshow/ffvfw/src/dialog/TffvfwPage.cpp,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** TffvfwPage.cpp 28 Jan 2003 06:39:15 -0000 1.41 --- TffvfwPage.cpp 28 Jan 2003 12:50:51 -0000 1.42 *************** *** 42,45 **** --- 42,46 ---- #include "Tconfig.h" #include "Tffvfw.h" + #include "TpresetsDlg.h" //=========================== TffvfwPage::ThtiPage =========================== *************** *** 146,149 **** --- 147,151 ---- TVITEM tvi; tvi.hItem=(*i)->hti; + tvi.lParam=0; tvi.mask=TVIF_PARAM; TreeView_GetItem(htv,&tvi); *************** *** 226,230 **** }; TffvfwPage *page=(TffvfwPage*)GetWindowLong(hwnd,GWL_USERDATA); ! return page->dlgProc(hwnd,uMsg,wParam,lParam); } --- 228,232 ---- }; TffvfwPage *page=(TffvfwPage*)GetWindowLong(hwnd,GWL_USERDATA); ! return page?page->dlgProc(hwnd,uMsg,wParam,lParam):FALSE; } *************** *** 642,646 **** insertSubmenu(hm,ord,"Save page",hmPresets);enable(hm,4,page->category); insertSeparator(hm,ord); ! insertMenuItem(hm,ord,IDI_MNI_MANAGE,"Manage presets..."); RECT r; GetWindowRect(GetDlgItem(m_hwnd,IDC_BT_PRESET),&r); --- 644,648 ---- insertSubmenu(hm,ord,"Save page",hmPresets);enable(hm,4,page->category); insertSeparator(hm,ord); ! insertMenuItem(hm,ord,IDI_MNI_MANAGE,"Manage presets...");enable(hm,6,localCfg.ffvfw->presets.size()>=2); RECT r; GetWindowRect(GetDlgItem(m_hwnd,IDC_BT_PRESET),&r); *************** *** 651,655 **** if (cmd!=0) if (cmd==5000) ! ; else { --- 653,659 ---- if (cmd!=0) if (cmd==5000) ! { ! TpresetsDlg pdlg(m_hwnd,localCfg.ffvfw->presets); ! } else { *************** *** 659,663 **** { char presetName[MAX_PATH]=""; ! if (inputString("Save to new preset","Preset name",presetName,MAX_PATH) && presetName[0]) { preset=localCfg.ffvfw->presets.getPreset(presetName); --- 663,667 ---- { char presetName[MAX_PATH]=""; ! if (inputString("Save as new preset","Preset name",presetName,MAX_PATH) && presetName[0]) { preset=localCfg.ffvfw->presets.getPreset(presetName); Index: TperfectDlg.cpp =================================================================== RCS file: /cvsroot/ffdshow/ffvfw/src/dialog/TperfectDlg.cpp,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** TperfectDlg.cpp 23 Jan 2003 06:06:24 -0000 1.23 --- TperfectDlg.cpp 28 Jan 2003 12:50:51 -0000 1.24 *************** *** 529,532 **** break; } ! return (dlg)?dlg->msgProc(uMsg,wParam,lParam):FALSE; } --- 529,532 ---- break; } ! return dlg?dlg->msgProc(uMsg,wParam,lParam):FALSE; } Index: Twindow.cpp =================================================================== RCS file: /cvsroot/ffdshow/ffvfw/src/dialog/Twindow.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Twindow.cpp 27 Jan 2003 14:37:47 -0000 1.6 --- Twindow.cpp 28 Jan 2003 12:50:51 -0000 1.7 *************** *** 103,104 **** --- 103,116 ---- return FALSE; } + + void Twindow::lvAddCol(HWND hlv,int &ncol,int w,const char *txt,bool right) + { + LVCOLUMN lvc; + lvc.mask=LVCF_FMT|LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM; + lvc.iSubItem=ncol; + lvc.pszText=LPSTR(txt); + lvc.cx=w; + lvc.fmt=(right)?LVCFMT_RIGHT:LVCFMT_LEFT; + ListView_InsertColumn(hlv,ncol,&lvc); + ncol++; + } Index: Twindow.h =================================================================== RCS file: /cvsroot/ffdshow/ffvfw/src/dialog/Twindow.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Twindow.h 27 Jan 2003 14:37:47 -0000 1.8 --- Twindow.h 28 Jan 2003 12:50:51 -0000 1.9 *************** *** 70,73 **** --- 70,75 ---- } + static void lvAddCol(HWND hlv,int &ncol,int w,const char *txt,bool right); + static void enable(HMENU hm,int ord,bool is); |