--- np2/win9x/dialog/d_config.cpp 2005/03/20 13:12:50 1.12 +++ np2/win9x/dialog/d_config.cpp 2007/11/11 07:11:28 1.15 @@ -10,38 +10,33 @@ #include "pccore.h" -static const TCHAR str_2halfmhz[] = _T("2.4576MHz"); -static const TCHAR str_2mhz[] = _T("1.9968MHz"); -static const TCHAR *basecstr[2] = {str_2mhz, str_2halfmhz}; +static const CBPARAM cpBase[] = +{ + {MAKEINTRESOURCE(IDS_2_0MHZ), PCBASECLOCK20}, + {MAKEINTRESOURCE(IDS_2_5MHZ), PCBASECLOCK25}, +}; static const UINT32 mulval[10] = {1, 2, 4, 5, 6, 8, 10, 12, 16, 20}; static const TCHAR str_clockfmt[] = _T("%2u.%.4u"); -static void setclock(HWND hWnd, UINT multiple) { - - UINT32 clock; - TCHAR work[32]; - - GetDlgItemText(hWnd, IDC_BASECLOCK, work, NELEMENTS(work)); - if (work[0] == '1') { - clock = PCBASECLOCK20 / 100; - } - else { - clock = PCBASECLOCK25 / 100; - } - if (multiple == 0) { - GetDlgItemText(hWnd, IDC_MULTIPLE, work, NELEMENTS(work)); - multiple = (UINT)miltchar_solveINT(work); - } - if (multiple < 1) { - multiple = 1; - } - else if (multiple > 32) { - multiple = 32; - } - clock *= multiple; - wsprintf(work, str_clockfmt, clock / 10000, clock % 10000); - SetDlgItemText(hWnd, IDC_CLOCKMSG, work); +static void setclock(HWND hWnd, UINT uMultiple) +{ + UINT uClock; + TCHAR szWork[32]; + + uClock = dlgs_getcbcur(hWnd, IDC_BASECLOCK, PCBASECLOCK20); + + if (uMultiple == 0) + { + GetDlgItemText(hWnd, IDC_MULTIPLE, szWork, NELEMENTS(szWork)); + uMultiple = (UINT)miltchar_solveINT(szWork); + } + uMultiple = max(uMultiple, 1); + uMultiple = min(uMultiple, 32); + + uClock = (uClock / 100) * uMultiple; + wsprintf(szWork, str_clockfmt, uClock / 10000, uClock % 10000); + SetDlgItemText(hWnd, IDC_CLOCKMSG, szWork); } static void cfgcreate(HWND hWnd) { @@ -49,36 +44,45 @@ static void cfgcreate(HWND hWnd) { TCHAR work[32]; UINT val; - SETLISTSTR(hWnd, IDC_BASECLOCK, basecstr); - if (np2cfg.baseclock < AVE(PCBASECLOCK25, PCBASECLOCK20)) { - val = 0; + dlgs_setcbitem(hWnd, IDC_BASECLOCK, cpBase, NELEMENTS(cpBase)); + if (np2cfg.baseclock < AVE(PCBASECLOCK25, PCBASECLOCK20)) + { + val = PCBASECLOCK20; } - else { - val = 1; + else + { + val = PCBASECLOCK25; } - SendDlgItemMessage(hWnd, IDC_BASECLOCK, CB_SETCURSEL, val, 0); + dlgs_setcbcur(hWnd, IDC_BASECLOCK, val); + SETLISTUINT32(hWnd, IDC_MULTIPLE, mulval); wsprintf(work, tchar_u, np2cfg.multiple); SetDlgItemText(hWnd, IDC_MULTIPLE, work); - if (!milstr_cmp(np2cfg.model, str_VM)) { + if (!milstr_cmp(np2cfg.model, str_VM)) + { val = IDC_MODELVM; } - else if (!milstr_cmp(np2cfg.model, str_EPSON)) { + else if (!milstr_cmp(np2cfg.model, str_EPSON)) + { val = IDC_MODELEPSON; } - else { + else + { val = IDC_MODELVX; } SetDlgItemCheck(hWnd, val, TRUE); - if (np2cfg.samplingrate < AVE(11025, 22050)) { + if (np2cfg.samplingrate < AVE(11025, 22050)) + { val = IDC_RATE11; } - else if (np2cfg.samplingrate < AVE(22050, 44100)) { + else if (np2cfg.samplingrate < AVE(22050, 44100)) + { val = IDC_RATE22; } - else { + else + { val = IDC_RATE44; } SetDlgItemCheck(hWnd, val, TRUE); @@ -86,35 +90,35 @@ static void cfgcreate(HWND hWnd) { SetDlgItemText(hWnd, IDC_SOUNDBUF, work); SetDlgItemCheck(hWnd, IDC_ALLOWRESIZE, np2oscfg.thickframe); - if (mmxflag & MMXFLAG_NOTSUPPORT) { +#if !defined(_WIN64) + if (mmxflag & MMXFLAG_NOTSUPPORT) + { EnableWindow(GetDlgItem(hWnd, IDC_DISABLEMMX), FALSE); SetDlgItemCheck(hWnd, IDC_DISABLEMMX, TRUE); } - else { + else + { SetDlgItemCheck(hWnd, IDC_DISABLEMMX, np2oscfg.disablemmx); } +#endif SetDlgItemCheck(hWnd, IDC_COMFIRM, np2oscfg.comfirm); SetDlgItemCheck(hWnd, IDC_RESUME, np2oscfg.resume); setclock(hWnd, 0); SetFocus(GetDlgItem(hWnd, IDC_BASECLOCK)); } -static void cfgupdate(HWND hWnd) { - +static void cfgupdate(HWND hWnd) +{ UINT update; TCHAR work[32]; UINT val; const OEMCHAR *str; update = 0; - GetDlgItemText(hWnd, IDC_BASECLOCK, work, NELEMENTS(work)); - if (work[0] == '1') { - val = PCBASECLOCK20; - } - else { - val = PCBASECLOCK25; - } - if (np2cfg.baseclock != val) { + + val = dlgs_getcbcur(hWnd, IDC_BASECLOCK, PCBASECLOCK20); + if (np2cfg.baseclock != val) + { np2cfg.baseclock = val; update |= SYS_UPDATECFG | SYS_UPDATECLOCK; } @@ -181,24 +185,30 @@ const OEMCHAR *str; update |= SYS_UPDATEOSCFG; } - if (!(mmxflag & MMXFLAG_NOTSUPPORT)) { +#if !defined(_WIN64) + if (!(mmxflag & MMXFLAG_NOTSUPPORT)) + { val = GetDlgItemCheck(hWnd, IDC_DISABLEMMX); - if (np2oscfg.disablemmx != (UINT8)val) { + if (np2oscfg.disablemmx != (UINT8)val) + { np2oscfg.disablemmx = (UINT8)val; mmxflag &= ~MMXFLAG_DISABLE; mmxflag |= (val)?MMXFLAG_DISABLE:0; update |= SYS_UPDATEOSCFG; } } +#endif val = GetDlgItemCheck(hWnd, IDC_COMFIRM); - if (np2oscfg.comfirm != (UINT8)val) { + if (np2oscfg.comfirm != (UINT8)val) + { np2oscfg.comfirm = (UINT8)val; update |= SYS_UPDATEOSCFG; } val = GetDlgItemCheck(hWnd, IDC_RESUME); - if (np2oscfg.resume != (UINT8)val) { + if (np2oscfg.resume != (UINT8)val) + { np2oscfg.resume = (UINT8)val; update |= SYS_UPDATEOSCFG; }