|
|
| version 1.10, 2005/02/07 15:39:27 | version 1.15, 2007/11/11 07:11:28 |
|---|---|
| Line 2 | Line 2 |
| #include "strres.h" | #include "strres.h" |
| #include "resource.h" | #include "resource.h" |
| #include "np2.h" | #include "np2.h" |
| #include "oemtext.h" | |
| #include "dosio.h" | #include "dosio.h" |
| #include "sysmng.h" | #include "sysmng.h" |
| #include "dialog.h" | #include "dialog.h" |
| Line 9 | Line 10 |
| #include "pccore.h" | #include "pccore.h" |
| static const char str_2halfmhz[] = "2.4576MHz"; | static const CBPARAM cpBase[] = |
| static const char str_2mhz[] = "1.9968MHz"; | { |
| static const char *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 char str_clockfmt[] = "%2u.%.4u"; | static const TCHAR str_clockfmt[] = _T("%2u.%.4u"); |
| static void setclock(HWND hWnd, UINT multiple) { | static void setclock(HWND hWnd, UINT uMultiple) |
| { | |
| UINT uClock; | |
| TCHAR szWork[32]; | |
| UINT32 clock; | uClock = dlgs_getcbcur(hWnd, IDC_BASECLOCK, PCBASECLOCK20); |
| char work[32]; | |
| GetDlgItemText(hWnd, IDC_BASECLOCK, work, sizeof(work)); | if (uMultiple == 0) |
| if (work[0] == '1') { | { |
| clock = PCBASECLOCK20 / 100; | GetDlgItemText(hWnd, IDC_MULTIPLE, szWork, NELEMENTS(szWork)); |
| uMultiple = (UINT)miltchar_solveINT(szWork); | |
| } | } |
| else { | uMultiple = max(uMultiple, 1); |
| clock = PCBASECLOCK25 / 100; | uMultiple = min(uMultiple, 32); |
| } | |
| if (multiple == 0) { | uClock = (uClock / 100) * uMultiple; |
| GetDlgItemText(hWnd, IDC_MULTIPLE, work, sizeof(work)); | wsprintf(szWork, str_clockfmt, uClock / 10000, uClock % 10000); |
| multiple = (UINT)milstr_solveINT(work); | SetDlgItemText(hWnd, IDC_CLOCKMSG, szWork); |
| } | |
| 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 cfgcreate(HWND hWnd) { | static void cfgcreate(HWND hWnd) { |
| char 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, str_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); |
| wsprintf(work, str_u, np2cfg.delayms); | wsprintf(work, tchar_u, np2cfg.delayms); |
| SetDlgItemText(hWnd, IDC_SOUNDBUF, work); | SetDlgItemText(hWnd, IDC_SOUNDBUF, work); |
| SetDlgItemCheck(hWnd, IDC_ALLOWRESIZE, np2oscfg.thickframe); | SetDlgItemCheck(hWnd, IDC_ALLOWRESIZE, np2oscfg.thickframe); |
| if (mmxflag & MMXFLAG_NOTSUPPORT) { | #if !defined(_WIN64) |
| 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 | |
| SetDlgItemCheck(hWnd, IDC_COMFIRM, np2oscfg.comfirm); | SetDlgItemCheck(hWnd, IDC_COMFIRM, np2oscfg.comfirm); |
| SetDlgItemCheck(hWnd, IDC_RESUME, np2oscfg.resume); | SetDlgItemCheck(hWnd, IDC_RESUME, np2oscfg.resume); |
| setclock(hWnd, 0); | setclock(hWnd, 0); |
| SetFocus(GetDlgItem(hWnd, IDC_BASECLOCK)); | SetFocus(GetDlgItem(hWnd, IDC_BASECLOCK)); |
| } | } |
| static void cfgupdate(HWND hWnd) { | static void cfgupdate(HWND hWnd) |
| { | |
| UINT update; | UINT update; |
| char work[32]; | TCHAR work[32]; |
| UINT val; | UINT val; |
| const char *str; | const OEMCHAR *str; |
| update = 0; | update = 0; |
| GetDlgItemText(hWnd, IDC_BASECLOCK, work, sizeof(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; |
| } | } |
| GetDlgItemText(hWnd, IDC_MULTIPLE, work, sizeof(work)); | GetDlgItemText(hWnd, IDC_MULTIPLE, work, sizeof(work)); |
| val = (UINT)milstr_solveINT(work); | val = (UINT)miltchar_solveINT(work); |
| if (val < 1) { | if (val < 1) { |
| val = 1; | val = 1; |
| } | } |
| Line 141 const char *str; | Line 146 const char *str; |
| str = str_VX; | str = str_VX; |
| } | } |
| if (milstr_cmp(np2cfg.model, str)) { | if (milstr_cmp(np2cfg.model, str)) { |
| milstr_ncpy(np2cfg.model, str, sizeof(np2cfg.model)); | milstr_ncpy(np2cfg.model, str, NELEMENTS(np2cfg.model)); |
| update |= SYS_UPDATECFG; | update |= SYS_UPDATECFG; |
| } | } |
| Line 160 const char *str; | Line 165 const char *str; |
| soundrenewal = 1; | soundrenewal = 1; |
| } | } |
| GetDlgItemText(hWnd, IDC_SOUNDBUF, work, sizeof(work)); | GetDlgItemText(hWnd, IDC_SOUNDBUF, work, NELEMENTS(work)); |
| val = (UINT)milstr_solveINT(work); | val = (UINT)miltchar_solveINT(work); |
| if (val < 40) { | if (val < 40) { |
| val = 40; | val = 40; |
| } | } |
| Line 180 const char *str; | Line 185 const char *str; |
| update |= SYS_UPDATEOSCFG; | update |= SYS_UPDATEOSCFG; |
| } | } |
| if (!(mmxflag & MMXFLAG_NOTSUPPORT)) { | #if !defined(_WIN64) |
| 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; |
| update |= SYS_UPDATEOSCFG; | update |= SYS_UPDATEOSCFG; |
| } | } |
| } | } |
| #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; |
| } | } |