| version 1.14, 2006/12/24 07:53:01 | version 1.15, 2007/11/11 07:11:28 | 
| Line 10 | Line 10 | 
 | #include        "pccore.h" | #include        "pccore.h" | 
 |  |  | 
 |  |  | 
| static const TCHAR str_2halfmhz[] = _T("2.4576MHz"); | static const CBPARAM cpBase[] = | 
| static const TCHAR str_2mhz[] = _T("1.9968MHz"); | { | 
| static const TCHAR *basecstr[2] = {str_2mhz, str_2halfmhz}; | {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 UINT32 mulval[10] = {1, 2, 4, 5, 6, 8, 10, 12, 16, 20}; | 
 | static const TCHAR str_clockfmt[] = _T("%2u.%.4u"); | static const TCHAR str_clockfmt[] = _T("%2u.%.4u"); | 
 |  |  | 
 |  |  | 
| static void setclock(HWND hWnd, UINT multiple) { | static void setclock(HWND hWnd, UINT uMultiple) | 
|  | { | 
| UINT32  clock; | UINT    uClock; | 
| TCHAR   work[32]; | TCHAR   szWork[32]; | 
|  |  | 
| GetDlgItemText(hWnd, IDC_BASECLOCK, work, NELEMENTS(work)); | uClock = dlgs_getcbcur(hWnd, IDC_BASECLOCK, PCBASECLOCK20); | 
| if (work[0] == '1') { |  | 
| clock = PCBASECLOCK20 / 100; | if (uMultiple == 0) | 
| } | { | 
| else { | GetDlgItemText(hWnd, IDC_MULTIPLE, szWork, NELEMENTS(szWork)); | 
| clock = PCBASECLOCK25 / 100; | uMultiple = (UINT)miltchar_solveINT(szWork); | 
| } | } | 
| if (multiple == 0) { | uMultiple = max(uMultiple, 1); | 
| GetDlgItemText(hWnd, IDC_MULTIPLE, work, NELEMENTS(work)); | uMultiple = min(uMultiple, 32); | 
| multiple = (UINT)miltchar_solveINT(work); |  | 
| } | uClock = (uClock / 100) * uMultiple; | 
| if (multiple < 1) { | wsprintf(szWork, str_clockfmt, uClock / 10000, uClock % 10000); | 
| multiple = 1; | SetDlgItemText(hWnd, IDC_CLOCKMSG, szWork); | 
| } |  | 
| else if (multiple > 32) { |  | 
| multiple = 32; |  | 
| } |  | 
| clock *= multiple; |  | 
| wsprintf(work, str_clockfmt, clock / 10000, clock % 10000); |  | 
| SetDlgItemText(hWnd, IDC_CLOCKMSG, work); |  | 
 | } | } | 
 |  |  | 
 | static void cfgcreate(HWND hWnd) { | static void cfgcreate(HWND hWnd) { | 
| Line 49  static void cfgcreate(HWND hWnd) { | Line 44  static void cfgcreate(HWND hWnd) { | 
 | TCHAR   work[32]; | TCHAR   work[32]; | 
 | UINT    val; | UINT    val; | 
 |  |  | 
| SETLISTSTR(hWnd, IDC_BASECLOCK, basecstr); | dlgs_setcbitem(hWnd, IDC_BASECLOCK, cpBase, NELEMENTS(cpBase)); | 
| if (np2cfg.baseclock < AVE(PCBASECLOCK25, PCBASECLOCK20)) { | if (np2cfg.baseclock < AVE(PCBASECLOCK25, PCBASECLOCK20)) | 
| val = 0; | { | 
|  | val = PCBASECLOCK20; | 
 | } | } | 
| else { | else | 
| val = 1; | { | 
|  | val = PCBASECLOCK25; | 
 | } | } | 
| SendDlgItemMessage(hWnd, IDC_BASECLOCK, CB_SETCURSEL, val, 0); | dlgs_setcbcur(hWnd, IDC_BASECLOCK, val); | 
|  |  | 
 | SETLISTUINT32(hWnd, IDC_MULTIPLE, mulval); | SETLISTUINT32(hWnd, IDC_MULTIPLE, mulval); | 
 | wsprintf(work, tchar_u, np2cfg.multiple); | wsprintf(work, tchar_u, np2cfg.multiple); | 
 | SetDlgItemText(hWnd, IDC_MULTIPLE, work); | SetDlgItemText(hWnd, IDC_MULTIPLE, work); | 
 |  |  | 
| if (!milstr_cmp(np2cfg.model, str_VM)) { | if (!milstr_cmp(np2cfg.model, str_VM)) | 
|  | { | 
 | val = IDC_MODELVM; | val = IDC_MODELVM; | 
 | } | } | 
| else if (!milstr_cmp(np2cfg.model, str_EPSON)) { | else if (!milstr_cmp(np2cfg.model, str_EPSON)) | 
|  | { | 
 | val = IDC_MODELEPSON; | val = IDC_MODELEPSON; | 
 | } | } | 
| else { | else | 
|  | { | 
 | val = IDC_MODELVX; | val = IDC_MODELVX; | 
 | } | } | 
 | SetDlgItemCheck(hWnd, val, TRUE); | SetDlgItemCheck(hWnd, val, TRUE); | 
 |  |  | 
| if (np2cfg.samplingrate < AVE(11025, 22050)) { | if (np2cfg.samplingrate < AVE(11025, 22050)) | 
|  | { | 
 | val = IDC_RATE11; | val = IDC_RATE11; | 
 | } | } | 
| else if (np2cfg.samplingrate < AVE(22050, 44100)) { | else if (np2cfg.samplingrate < AVE(22050, 44100)) | 
|  | { | 
 | val = IDC_RATE22; | val = IDC_RATE22; | 
 | } | } | 
| else { | else | 
|  | { | 
 | val = IDC_RATE44; | val = IDC_RATE44; | 
 | } | } | 
 | SetDlgItemCheck(hWnd, val, TRUE); | SetDlgItemCheck(hWnd, val, TRUE); | 
| Line 87  static void cfgcreate(HWND hWnd) { | Line 91  static void cfgcreate(HWND hWnd) { | 
 |  |  | 
 | SetDlgItemCheck(hWnd, IDC_ALLOWRESIZE, np2oscfg.thickframe); | SetDlgItemCheck(hWnd, IDC_ALLOWRESIZE, np2oscfg.thickframe); | 
 | #if !defined(_WIN64) | #if !defined(_WIN64) | 
| if (mmxflag & MMXFLAG_NOTSUPPORT) { | if (mmxflag & MMXFLAG_NOTSUPPORT) | 
|  | { | 
 | EnableWindow(GetDlgItem(hWnd, IDC_DISABLEMMX), FALSE); | EnableWindow(GetDlgItem(hWnd, IDC_DISABLEMMX), FALSE); | 
 | SetDlgItemCheck(hWnd, IDC_DISABLEMMX, TRUE); | SetDlgItemCheck(hWnd, IDC_DISABLEMMX, TRUE); | 
 | } | } | 
| else { | else | 
|  | { | 
 | SetDlgItemCheck(hWnd, IDC_DISABLEMMX, np2oscfg.disablemmx); | SetDlgItemCheck(hWnd, IDC_DISABLEMMX, np2oscfg.disablemmx); | 
 | } | } | 
 | #endif | #endif | 
| Line 101  static void cfgcreate(HWND hWnd) { | Line 107  static void cfgcreate(HWND hWnd) { | 
 | SetFocus(GetDlgItem(hWnd, IDC_BASECLOCK)); | SetFocus(GetDlgItem(hWnd, IDC_BASECLOCK)); | 
 | } | } | 
 |  |  | 
| static void cfgupdate(HWND hWnd) { | static void cfgupdate(HWND hWnd) | 
|  | { | 
 | UINT            update; | UINT            update; | 
 | TCHAR           work[32]; | TCHAR           work[32]; | 
 | UINT            val; | UINT            val; | 
 | const OEMCHAR   *str; | const OEMCHAR   *str; | 
 |  |  | 
 | update = 0; | update = 0; | 
| GetDlgItemText(hWnd, IDC_BASECLOCK, work, NELEMENTS(work)); |  | 
| if (work[0] == '1') { | val = dlgs_getcbcur(hWnd, IDC_BASECLOCK, PCBASECLOCK20); | 
| val = PCBASECLOCK20; | if (np2cfg.baseclock != val) | 
| } | { | 
| else { |  | 
| val = PCBASECLOCK25; |  | 
| } |  | 
| if (np2cfg.baseclock != val) { |  | 
 | np2cfg.baseclock = val; | np2cfg.baseclock = val; | 
 | update |= SYS_UPDATECFG | SYS_UPDATECLOCK; | update |= SYS_UPDATECFG | SYS_UPDATECLOCK; | 
 | } | } | 
| Line 184  const OEMCHAR *str; | Line 186  const OEMCHAR *str; | 
 | } | } | 
 |  |  | 
 | #if !defined(_WIN64) | #if !defined(_WIN64) | 
| if (!(mmxflag & MMXFLAG_NOTSUPPORT)) { | if (!(mmxflag & MMXFLAG_NOTSUPPORT)) | 
|  | { | 
 | val = GetDlgItemCheck(hWnd, IDC_DISABLEMMX); | val = GetDlgItemCheck(hWnd, IDC_DISABLEMMX); | 
| if (np2oscfg.disablemmx != (UINT8)val) { | if (np2oscfg.disablemmx != (UINT8)val) | 
|  | { | 
 | np2oscfg.disablemmx = (UINT8)val; | np2oscfg.disablemmx = (UINT8)val; | 
 | mmxflag &= ~MMXFLAG_DISABLE; | mmxflag &= ~MMXFLAG_DISABLE; | 
 | mmxflag |= (val)?MMXFLAG_DISABLE:0; | mmxflag |= (val)?MMXFLAG_DISABLE:0; | 
| Line 196  const OEMCHAR *str; | Line 200  const OEMCHAR *str; | 
 | #endif | #endif | 
 |  |  | 
 | val = GetDlgItemCheck(hWnd, IDC_COMFIRM); | val = GetDlgItemCheck(hWnd, IDC_COMFIRM); | 
| if (np2oscfg.comfirm != (UINT8)val) { | if (np2oscfg.comfirm != (UINT8)val) | 
|  | { | 
 | np2oscfg.comfirm = (UINT8)val; | np2oscfg.comfirm = (UINT8)val; | 
 | update |= SYS_UPDATEOSCFG; | update |= SYS_UPDATEOSCFG; | 
 | } | } | 
 |  |  | 
 | val = GetDlgItemCheck(hWnd, IDC_RESUME); | val = GetDlgItemCheck(hWnd, IDC_RESUME); | 
| if (np2oscfg.resume != (UINT8)val) { | if (np2oscfg.resume != (UINT8)val) | 
|  | { | 
 | np2oscfg.resume = (UINT8)val; | np2oscfg.resume = (UINT8)val; | 
 | update |= SYS_UPDATEOSCFG; | update |= SYS_UPDATEOSCFG; | 
 | } | } |