|
|
| version 1.1.1.1, 2003/10/16 17:59:24 | version 1.2, 2003/12/27 02:29:45 |
|---|---|
| Line 4 | Line 4 |
| #include "np2.h" | #include "np2.h" |
| #include "dosio.h" | #include "dosio.h" |
| #include "sysmng.h" | #include "sysmng.h" |
| #include "pccore.h" | |
| #include "dialog.h" | #include "dialog.h" |
| #include "dialogs.h" | #include "dialogs.h" |
| #include "pccore.h" | |
| static const char str_2halfmhz[] = "2.4576MHz"; | static const char str_2halfmhz[] = "2.4576MHz"; |
| static const char str_2mhz[] = "1.9968MHz"; | static const char str_2mhz[] = "1.9968MHz"; |
| static const char *basecstr[2] = {str_2halfmhz, str_2mhz}; | static const char *basecstr[2] = {str_2mhz, str_2halfmhz}; |
| 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 char str_clockfmt[] = "%2u.%.4u"; |
| static void SetClock(HWND hWnd) { | static void setclock(HWND hWnd, UINT multiple) { |
| UINT32 clock; | |
| char work[32]; | |
| GetDlgItemText(hWnd, IDC_BASECLOCK, work, sizeof(work)); | |
| if (work[0] == '1') { | |
| clock = PCBASECLOCK20 / 100; | |
| } | |
| else { | |
| clock = PCBASECLOCK25 / 100; | |
| } | |
| if (multiple == 0) { | |
| GetDlgItemText(hWnd, IDC_MULTIPLE, work, sizeof(work)); | |
| multiple = (UINT)milstr_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 cfgcreate(HWND hWnd) { | |
| char work[32]; | |
| UINT val; | |
| SETLISTSTR(hWnd, IDC_BASECLOCK, basecstr); | |
| if (np2cfg.baseclock < AVE(PCBASECLOCK25, PCBASECLOCK20)) { | |
| val = 0; | |
| } | |
| else { | |
| val = 1; | |
| } | |
| SendDlgItemMessage(hWnd, IDC_BASECLOCK, CB_SETCURSEL, val, 0); | |
| SETLISTUINT32(hWnd, IDC_MULTIPLE, mulval); | |
| wsprintf(work, str_u, np2cfg.multiple); | |
| SetDlgItemText(hWnd, IDC_MULTIPLE, work); | |
| if (!milstr_cmp(np2cfg.model, str_VM)) { | |
| val = IDC_MODELVM; | |
| } | |
| else if (!milstr_cmp(np2cfg.model, str_EPSON)) { | |
| val = IDC_MODELEPSON; | |
| } | |
| else { | |
| val = IDC_MODELVX; | |
| } | |
| SetDlgItemCheck(hWnd, val, TRUE); | |
| if (np2cfg.samplingrate < AVE(11025, 22050)) { | |
| val = IDC_RATE11; | |
| } | |
| else if (np2cfg.samplingrate < AVE(22050, 44100)) { | |
| val = IDC_RATE22; | |
| } | |
| else { | |
| val = IDC_RATE44; | |
| } | |
| SetDlgItemCheck(hWnd, val, TRUE); | |
| wsprintf(work, str_u, np2cfg.delayms); | |
| SetDlgItemText(hWnd, IDC_SOUNDBUF, work); | |
| setclock(hWnd, 0); | |
| SetFocus(GetDlgItem(hWnd, IDC_BASECLOCK)); | |
| } | |
| DWORD dval; | static void cfgupdate(HWND hWnd) { |
| UINT update; | |
| char work[32]; | char work[32]; |
| int val; | UINT val; |
| const char *str; | |
| update = 0; | |
| GetDlgItemText(hWnd, IDC_BASECLOCK, work, sizeof(work)); | GetDlgItemText(hWnd, IDC_BASECLOCK, work, sizeof(work)); |
| if (work[0] == '1') { | if (work[0] == '1') { |
| dval = PCBASECLOCK20 / 100; | val = PCBASECLOCK20; |
| } | } |
| else { | else { |
| dval = PCBASECLOCK25 / 100; | val = PCBASECLOCK25; |
| } | |
| if (np2cfg.baseclock != val) { | |
| np2cfg.baseclock = val; | |
| update |= SYS_UPDATECFG | SYS_UPDATECLOCK; | |
| } | } |
| GetDlgItemText(hWnd, IDC_MULTIPLE, work, sizeof(work)); | GetDlgItemText(hWnd, IDC_MULTIPLE, work, sizeof(work)); |
| val = milstr_solveINT(work); | val = (UINT)milstr_solveINT(work); |
| if (val < 1) { | if (val < 1) { |
| val = 1; | val = 1; |
| } | } |
| else if (val > 32) { | else if (val > 32) { |
| val = 32; | val = 32; |
| } | } |
| dval *= val; | if (np2cfg.multiple != val) { |
| wsprintf(work, str_clockfmt, dval / 10000, dval % 10000); | np2cfg.multiple = val; |
| SetDlgItemText(hWnd, IDC_CLOCKMSG, work); | update |= SYS_UPDATECFG | SYS_UPDATECLOCK; |
| } | } |
| if (GetDlgItemCheck(hWnd, IDC_MODELVM)) { | |
| str = str_VM; | |
| } | |
| else if (GetDlgItemCheck(hWnd, IDC_MODELEPSON)) { | |
| str = str_EPSON; | |
| } | |
| else { | |
| str = str_VX; | |
| } | |
| if (milstr_cmp(np2cfg.model, str)) { | |
| milstr_ncpy(np2cfg.model, str, sizeof(np2cfg.model)); | |
| update |= SYS_UPDATECFG; | |
| } | |
| LRESULT CALLBACK CfgDialogProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { | if (GetDlgItemCheck(hWnd, IDC_RATE11)) { |
| val = 11025; | |
| } | |
| else if (GetDlgItemCheck(hWnd, IDC_RATE22)) { | |
| val = 22050; | |
| } | |
| else { | |
| val = 44100; | |
| } | |
| if (np2cfg.samplingrate != (UINT16)val) { | |
| np2cfg.samplingrate = (UINT16)val; | |
| update |= SYS_UPDATECFG | SYS_UPDATERATE; | |
| soundrenewal = 1; | |
| } | |
| char work[128]; | GetDlgItemText(hWnd, IDC_SOUNDBUF, work, sizeof(work)); |
| WORD wval; | val = (UINT)milstr_solveINT(work); |
| DWORD dval; | if (val < 40) { |
| int val; | val = 40; |
| UINT update; | } |
| else if (val > 1000) { | |
| val = 1000; | |
| } | |
| if (np2cfg.delayms != (UINT16)val) { | |
| np2cfg.delayms = (UINT16)val; | |
| update |= SYS_UPDATECFG | SYS_UPDATESBUF; | |
| soundrenewal = 1; | |
| } | |
| switch (msg) { | sysmng_update(update); |
| case WM_INITDIALOG: | } |
| SETLISTSTR(hWnd, IDC_BASECLOCK, basecstr); | |
| if (np2cfg.baseclock >= AVE(PCBASECLOCK25, PCBASECLOCK20)) { | |
| val = 0; | |
| } | |
| else { | |
| val = 1; | |
| } | |
| SendDlgItemMessage(hWnd, IDC_BASECLOCK, CB_SETCURSEL, val, 0); | |
| SETLISTUINT32(hWnd, IDC_MULTIPLE, mulval); | |
| wsprintf(work, str_u, np2cfg.multiple); | |
| SetDlgItemText(hWnd, IDC_MULTIPLE, work); | |
| if (np2cfg.samplingrate < AVE(11025, 22050)) { | LRESULT CALLBACK CfgDialogProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { |
| wval = IDC_RATE11; | |
| } | |
| else if (np2cfg.samplingrate < AVE(22050, 44100)) { | |
| wval = IDC_RATE22; | |
| } | |
| else { | |
| wval = IDC_RATE44; | |
| } | |
| SetDlgItemCheck(hWnd, wval, TRUE); | |
| wsprintf(work, str_u, np2cfg.delayms); | |
| SetDlgItemText(hWnd, IDC_SOUNDBUF, work); | |
| SetClock(hWnd); | switch (msg) { |
| SetFocus(GetDlgItem(hWnd, IDC_BASECLOCK)); | case WM_INITDIALOG: |
| cfgcreate(hWnd); | |
| return(FALSE); | return(FALSE); |
| case WM_COMMAND: | case WM_COMMAND: |
| switch (LOWORD(wp)) { | switch (LOWORD(wp)) { |
| case IDOK: | case IDOK: |
| update = 0; | cfgupdate(hWnd); |
| GetDlgItemText(hWnd, IDC_BASECLOCK, work, sizeof(work)); | |
| if (work[0] == '1') { | |
| dval = PCBASECLOCK20; | |
| } | |
| else { | |
| dval = PCBASECLOCK25; | |
| } | |
| if (dval != np2cfg.baseclock) { | |
| np2cfg.baseclock = dval; | |
| update |= SYS_UPDATECFG | SYS_UPDATECLOCK; | |
| } | |
| GetDlgItemText(hWnd, IDC_MULTIPLE, work, sizeof(work)); | |
| val = milstr_solveINT(work); | |
| if (val < 1) { | |
| val = 1; | |
| } | |
| else if (val > 32) { | |
| val = 32; | |
| } | |
| if (np2cfg.multiple != (DWORD)val) { | |
| np2cfg.multiple = val; | |
| update |= SYS_UPDATECFG | SYS_UPDATECLOCK; | |
| } | |
| if (GetDlgItemCheck(hWnd, IDC_RATE11)) { | |
| wval = 11025; | |
| } | |
| else if (GetDlgItemCheck(hWnd, IDC_RATE22)) { | |
| wval = 22050; | |
| } | |
| else { | |
| wval = 44100; | |
| } | |
| if (np2cfg.samplingrate != wval) { | |
| np2cfg.samplingrate = wval; | |
| update |= SYS_UPDATECFG | SYS_UPDATERATE; | |
| soundrenewal = 1; | |
| } | |
| GetDlgItemText(hWnd, IDC_SOUNDBUF, work, sizeof(work)); | |
| val = milstr_solveINT(work); | |
| if (val < 100) { | |
| val = 100; | |
| } | |
| else if (val > 1000) { | |
| val = 1000; | |
| } | |
| if (np2cfg.delayms != (WORD)val) { | |
| soundrenewal = 1; | |
| np2cfg.delayms = (WORD)val; | |
| update |= SYS_UPDATECFG | SYS_UPDATESBUF; | |
| } | |
| sysmng_update(update); | |
| EndDialog(hWnd, IDOK); | EndDialog(hWnd, IDOK); |
| break; | break; |
| Line 148 LRESULT CALLBACK CfgDialogProc(HWND hWnd | Line 186 LRESULT CALLBACK CfgDialogProc(HWND hWnd |
| break; | break; |
| case IDC_BASECLOCK: | case IDC_BASECLOCK: |
| setclock(hWnd, 0); | |
| return(FALSE); | |
| case IDC_MULTIPLE: | case IDC_MULTIPLE: |
| SetClock(hWnd); | if (HIWORD(wp) == CBN_SELCHANGE) { |
| UINT val; | |
| val = (UINT)SendDlgItemMessage(hWnd, IDC_MULTIPLE, | |
| CB_GETCURSEL, 0, 0); | |
| if (val < sizeof(mulval)/sizeof(UINT32)) { | |
| setclock(hWnd, mulval[val]); | |
| } | |
| } | |
| else { | |
| setclock(hWnd, 0); | |
| } | |
| return(FALSE); | return(FALSE); |
| default: | default: |