--- branches/dev-api-4/xvidcore/vfw/src/config.c 2003/12/21 06:45:41 1292 +++ branches/dev-api-4/xvidcore/vfw/src/config.c 2004/01/02 13:18:28 1301 @@ -202,6 +202,7 @@ {"vhq_mode", ®.vhq_mode, 1}, {"chromame", ®.chromame, 1}, {"cartoon_mode", ®.cartoon_mode, 0}, + {"turbo", ®.turbo, 0}, {"max_key_interval", ®.max_key_interval, 300}, {"frame_drop_ratio", ®.frame_drop_ratio, 0}, @@ -265,6 +266,8 @@ #define REG_GET_B(X, Y, Z) size=sizeof((Z));if(RegQueryValueEx(hKey, X, 0, 0, Y, &size) != ERROR_SUCCESS) {memcpy(Y, Z, sizeof((Z)));} +#define XVID_DLL_NAME "xvidcore.dll" + void config_reg_get(CONFIG * config) { char tmp[32]; @@ -272,10 +275,20 @@ DWORD size; int i,j; xvid_gbl_info_t info; + HINSTANCE m_hdll; memset(&info, 0, sizeof(info)); info.version = XVID_VERSION; - xvid_global(0, XVID_GBL_INFO, &info, NULL); + + m_hdll = LoadLibrary(XVID_DLL_NAME); + if (m_hdll != NULL) { + + ((int (__cdecl *)(void *, int, void *, void *))GetProcAddress(m_hdll, "xvid_global")) + (0, XVID_GBL_INFO, &info, NULL); + + FreeLibrary(m_hdll); + } + reg.cpu = info.cpu_flags; reg.num_threads = info.num_threads; @@ -876,6 +889,7 @@ SendDlgItemMessage(hDlg, IDC_VHQ, CB_SETCURSEL, config->vhq_mode, 0); CheckDlg(hDlg, IDC_CHROMAME, config->chromame); CheckDlg(hDlg, IDC_CARTOON, config->cartoon_mode); + CheckDlg(hDlg, IDC_TURBO, config->turbo); SetDlgItemInt(hDlg, IDC_FRAMEDROP, config->frame_drop_ratio, FALSE); SetDlgItemInt(hDlg, IDC_MAXKEY, config->max_key_interval, FALSE); break; @@ -1011,6 +1025,7 @@ config->vhq_mode = SendDlgItemMessage(hDlg, IDC_VHQ, CB_GETCURSEL, 0, 0); config->chromame = IsDlgChecked(hDlg, IDC_CHROMAME); config->cartoon_mode = IsDlgChecked(hDlg, IDC_CARTOON); + config->turbo = IsDlgChecked(hDlg, IDC_TURBO); config->frame_drop_ratio = config_get_uint(hDlg, IDC_FRAMEDROP, config->frame_drop_ratio); @@ -1686,18 +1701,30 @@ char core[100]; HFONT hFont; LOGFONT lfData; + HINSTANCE m_hdll; SetDlgItemText(hDlg, IDC_BUILD, XVID_BUILD); SetDlgItemText(hDlg, IDC_SPECIAL_BUILD, XVID_SPECIAL_BUILD); memset(&info, 0, sizeof(info)); info.version = XVID_VERSION; - xvid_global(0, XVID_GBL_INFO, &info, NULL); - wsprintf(core, "libxvidcore version %d.%d.%d (\"%s\")", - XVID_VERSION_MAJOR(info.actual_version), - XVID_VERSION_MINOR(info.actual_version), - XVID_VERSION_PATCH(info.actual_version), - info.build); + + m_hdll = LoadLibrary(XVID_DLL_NAME); + if (m_hdll != NULL) { + + ((int (__cdecl *)(void *, int, void *, void *))GetProcAddress(m_hdll, "xvid_global")) + (0, XVID_GBL_INFO, &info, NULL); + + wsprintf(core, "xvidcore.dll version %d.%d.%d (\"%s\")", + XVID_VERSION_MAJOR(info.actual_version), + XVID_VERSION_MINOR(info.actual_version), + XVID_VERSION_PATCH(info.actual_version), + info.build); + + FreeLibrary(m_hdll); + } else { + wsprintf(core, "xvidcore.dll not found!"); + } SetDlgItemText(hDlg, IDC_CORE, core); @@ -1716,7 +1743,6 @@ SetDlgItemText(hDlg, IDC_WEBSITE, XVID_WEBSITE); } break; - case WM_CTLCOLORSTATIC : if ((HWND)lParam == GetDlgItem(hDlg, IDC_WEBSITE)) {