--- trunk/xvidcore/vfw/src/config.c 2006/07/10 17:39:38 1718 +++ trunk/xvidcore/vfw/src/config.c 2008/11/30 16:38:31 1827 @@ -546,7 +546,7 @@ #define UINT_BUF_SZ 20 static int config_get_cbuint(HWND hDlg, UINT item, int def) { - int sel = SendMessage(GetDlgItem(hDlg, item), CB_GETCURSEL, 0, 0); + LRESULT sel = SendMessage(GetDlgItem(hDlg, item), CB_GETCURSEL, 0, 0); char buf[UINT_BUF_SZ]; if (sel<0) { @@ -703,14 +703,14 @@ /* quantization matrix dialog proc */ -static BOOL CALLBACK quantmatrix_proc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK quantmatrix_proc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { - CONFIG* config = (CONFIG*)GetWindowLong(hDlg, GWL_USERDATA); + CONFIG* config = (CONFIG*)GetWindowLongPtr(hDlg, GWLP_USERDATA); switch (uMsg) { case WM_INITDIALOG : - SetWindowLong(hDlg, GWL_USERDATA, lParam); + SetWindowLongPtr(hDlg, GWLP_USERDATA, lParam); config = (CONFIG*)lParam; quant_upload(hDlg, config); @@ -1105,7 +1105,9 @@ EnableDlgWindow(hDlg, IDC_CPU_MMXEXT, cpu_force); EnableDlgWindow(hDlg, IDC_CPU_SSE, cpu_force); EnableDlgWindow(hDlg, IDC_CPU_SSE2, cpu_force); - EnableDlgWindow(hDlg, IDC_CPU_3DNOW, cpu_force); + EnableDlgWindow(hDlg, IDC_CPU_SSE3, cpu_force); + EnableDlgWindow(hDlg, IDC_CPU_SSE4, cpu_force); + EnableDlgWindow(hDlg, IDC_CPU_3DNOW, cpu_force); EnableDlgWindow(hDlg, IDC_CPU_3DNOWEXT, cpu_force); break; } @@ -1256,7 +1258,9 @@ CheckDlg(hDlg, IDC_CPU_MMXEXT, (config->cpu & XVID_CPU_MMXEXT)); CheckDlg(hDlg, IDC_CPU_SSE, (config->cpu & XVID_CPU_SSE)); CheckDlg(hDlg, IDC_CPU_SSE2, (config->cpu & XVID_CPU_SSE2)); - CheckDlg(hDlg, IDC_CPU_3DNOW, (config->cpu & XVID_CPU_3DNOW)); + CheckDlg(hDlg, IDC_CPU_SSE3, (config->cpu & XVID_CPU_SSE3)); + CheckDlg(hDlg, IDC_CPU_SSE4, (config->cpu & XVID_CPU_SSE41)); + CheckDlg(hDlg, IDC_CPU_3DNOW, (config->cpu & XVID_CPU_3DNOW)); CheckDlg(hDlg, IDC_CPU_3DNOWEXT, (config->cpu & XVID_CPU_3DNOWEXT)); CheckRadioButton(hDlg, IDC_CPU_AUTO, IDC_CPU_FORCE, @@ -1453,14 +1457,16 @@ config->cpu |= IsDlgChecked(hDlg, IDC_CPU_MMXEXT) ? XVID_CPU_MMXEXT : 0; config->cpu |= IsDlgChecked(hDlg, IDC_CPU_SSE) ? XVID_CPU_SSE : 0; config->cpu |= IsDlgChecked(hDlg, IDC_CPU_SSE2) ? XVID_CPU_SSE2 : 0; - config->cpu |= IsDlgChecked(hDlg, IDC_CPU_3DNOW) ? XVID_CPU_3DNOW : 0; + config->cpu |= IsDlgChecked(hDlg, IDC_CPU_SSE3) ? XVID_CPU_SSE3 : 0; + config->cpu |= IsDlgChecked(hDlg, IDC_CPU_SSE4) ? XVID_CPU_SSE41 : 0; + config->cpu |= IsDlgChecked(hDlg, IDC_CPU_3DNOW) ? XVID_CPU_3DNOW : 0; config->cpu |= IsDlgChecked(hDlg, IDC_CPU_3DNOWEXT) ? XVID_CPU_3DNOWEXT : 0; config->cpu |= IsDlgChecked(hDlg, IDC_CPU_FORCE) ? XVID_CPU_FORCE : 0; config->debug = get_dlgitem_hex(hDlg, IDC_DEBUG, config->debug); break; case IDD_ENC : - config->num_threads = config_get_uint(hDlg, IDC_NUMTHREADS, config->num_threads); + config->num_threads = min(4, config_get_uint(hDlg, IDC_NUMTHREADS, config->num_threads)); config->fourcc_used = SendDlgItemMessage(hDlg, IDC_FOURCC, CB_GETCURSEL, 0, 0); config->vop_debug = IsDlgChecked(hDlg, IDC_VOPDEBUG); config->display_status = IsDlgChecked(hDlg, IDC_DISPLAY_STATUS); @@ -1481,17 +1487,17 @@ /* advanced dialog proc */ -static BOOL CALLBACK adv_proc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK adv_proc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { PROPSHEETINFO *psi; - psi = (PROPSHEETINFO*)GetWindowLong(hDlg, GWL_USERDATA); + psi = (PROPSHEETINFO*)GetWindowLongPtr(hDlg, GWLP_USERDATA); switch (uMsg) { case WM_INITDIALOG : psi = (PROPSHEETINFO*) ((LPPROPSHEETPAGE)lParam)->lParam; - SetWindowLong(hDlg, GWL_USERDATA, (LPARAM)psi); + SetWindowLongPtr(hDlg, GWLP_USERDATA, (LPARAM)psi); if (g_hTooltip) EnumChildWindows(hDlg, enum_tooltips, 0); @@ -1679,19 +1685,19 @@ DPRINTF("PSN_SET"); adv_upload(hDlg, psi->idd, psi->config); adv_mode(hDlg, psi->idd, psi->config); - SetWindowLong(hDlg, DWL_MSGRESULT, FALSE); + SetWindowLongPtr(hDlg, DWLP_MSGRESULT, FALSE); break; case PSN_KILLACTIVE : DPRINTF("PSN_KILL"); adv_download(hDlg, psi->idd, psi->config); - SetWindowLong(hDlg, DWL_MSGRESULT, FALSE); + SetWindowLongPtr(hDlg, DWLP_MSGRESULT, FALSE); break; case PSN_APPLY : DPRINTF("PSN_APPLY"); psi->config->save = TRUE; - SetWindowLong(hDlg, DWL_MSGRESULT, FALSE); + SetWindowLongPtr(hDlg, DWLP_MSGRESULT, FALSE); break; } break; @@ -1745,7 +1751,7 @@ psh.dwFlags = PSH_PROPSHEETPAGE | PSH_NOAPPLYNOW | PSH_NOCONTEXTHELP; psh.hwndParent = hParent; psh.hInstance = g_hInst; - psh.pszCaption = (LPSTR) "XviD Configuration"; + psh.pszCaption = (LPSTR) "Xvid Configuration"; psh.nPages = size; psh.nStartPage = 0; psh.ppsp = (LPCPROPSHEETPAGE)&psp; @@ -1912,15 +1918,15 @@ static const int other_dlgs[] = { IDD_ENC, IDD_DEC, IDD_COMMON }; -BOOL CALLBACK main_proc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +INT_PTR CALLBACK main_proc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { - CONFIG* config = (CONFIG*)GetWindowLong(hDlg, GWL_USERDATA); + CONFIG* config = (CONFIG*)GetWindowLongPtr(hDlg, GWLP_USERDATA); unsigned int i; switch (uMsg) { case WM_INITDIALOG : - SetWindowLong(hDlg, GWL_USERDATA, lParam); + SetWindowLongPtr(hDlg, GWLP_USERDATA, lParam); config = (CONFIG*)lParam; for (i=0; i