| version 1.3, 2003/10/26 08:59:53 | version 1.5, 2003/10/31 03:40:10 | 
| Line 16  static const UINT32 mulval[10] = {1, 2, | Line 16  static const UINT32 mulval[10] = {1, 2, | 
 | 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) { | 
 |  |  | 
| DWORD   dval; | UINT32  clock; | 
 | char    work[32]; | char    work[32]; | 
 | int             val; |  | 
 |  |  | 
 | 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; | clock = PCBASECLOCK20 / 100; | 
 | } | } | 
 | else { | else { | 
| dval = PCBASECLOCK25 / 100; | 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 (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); | 
 |  |  | 
 |  | if (mmxflag & MMXFLAG_NOTSUPPORT) { | 
 |  | EnableWindow(GetDlgItem(hWnd, IDC_DISABLEMMX), FALSE); | 
 |  | SetDlgItemCheck(hWnd, IDC_DISABLEMMX, TRUE); | 
 |  | } | 
 |  | else { | 
 |  | SetDlgItemCheck(hWnd, IDC_DISABLEMMX, np2oscfg.disablemmx); | 
 |  | } | 
 |  | 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) { | 
 |  |  | 
 |  | UINT    update; | 
 |  | char    work[32]; | 
 |  | UINT    val; | 
 |  |  | 
 |  | update = 0; | 
 |  | GetDlgItemText(hWnd, IDC_BASECLOCK, work, sizeof(work)); | 
 |  | if (work[0] == '1') { | 
 |  | val = PCBASECLOCK20; | 
 |  | } | 
 |  | else { | 
 |  | 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_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; | 
 |  | } | 
 |  |  | 
| LRESULT CALLBACK CfgDialogProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { | GetDlgItemText(hWnd, IDC_SOUNDBUF, work, sizeof(work)); | 
|  | val = (UINT)milstr_solveINT(work); | 
|  | if (val < 100) { | 
|  | val = 100; | 
|  | } | 
|  | else if (val > 1000) { | 
|  | val = 1000; | 
|  | } | 
|  | if (np2cfg.delayms != (UINT16)val) { | 
|  | np2cfg.delayms = (UINT16)val; | 
|  | update |= SYS_UPDATECFG | SYS_UPDATESBUF; | 
|  | soundrenewal = 1; | 
|  | } | 
 |  |  | 
| char    work[128]; | if (!(mmxflag & MMXFLAG_NOTSUPPORT)) { | 
| BYTE    bval; | val = GetDlgItemCheck(hWnd, IDC_DISABLEMMX); | 
| WORD    wval; | if (np2oscfg.disablemmx != (BYTE)val) { | 
| DWORD   dval; | np2oscfg.disablemmx = (BYTE)val; | 
| int             val; | mmxflag &= ~MMXFLAG_DISABLE; | 
| UINT    update; | mmxflag |= (val)?MMXFLAG_DISABLE:0; | 
|  | update |= SYS_UPDATEOSCFG; | 
|  | } | 
|  | } | 
|  |  | 
|  | val = GetDlgItemCheck(hWnd, IDC_COMFIRM); | 
|  | if (np2oscfg.comfirm != (BYTE)val) { | 
|  | np2oscfg.comfirm = (BYTE)val; | 
|  | update |= SYS_UPDATEOSCFG; | 
|  | } | 
|  |  | 
|  | val = GetDlgItemCheck(hWnd, IDC_RESUME); | 
|  | if (np2oscfg.resume != (BYTE)val) { | 
|  | np2oscfg.resume = (BYTE)val; | 
|  | update |= SYS_UPDATEOSCFG; | 
|  | } | 
|  | sysmng_update(update); | 
|  | } | 
|  |  | 
|  | LRESULT CALLBACK CfgDialogProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { | 
 |  |  | 
 | switch (msg) { | switch (msg) { | 
 | case WM_INITDIALOG: | case WM_INITDIALOG: | 
| SETLISTSTR(hWnd, IDC_BASECLOCK, basecstr); | cfgcreate(hWnd); | 
| 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)) { |  | 
| 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); |  | 
|  |  | 
| if (mmxflag & MMXFLAG_NOTSUPPORT) { |  | 
| EnableWindow(GetDlgItem(hWnd, IDC_DISABLEMMX), FALSE); |  | 
| SetDlgItemCheck(hWnd, IDC_DISABLEMMX, TRUE); |  | 
| } |  | 
| else { |  | 
| SetDlgItemCheck(hWnd, IDC_DISABLEMMX, np2oscfg.disablemmx); |  | 
| } |  | 
| SetDlgItemCheck(hWnd, IDC_COMFIRM, np2oscfg.comfirm); |  | 
| SetDlgItemCheck(hWnd, IDC_RESUME, np2oscfg.resume); |  | 
| SetClock(hWnd); |  | 
| SetFocus(GetDlgItem(hWnd, IDC_BASECLOCK)); |  | 
 | 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; |  | 
| } |  | 
|  |  | 
| if (!(mmxflag & MMXFLAG_NOTSUPPORT)) { |  | 
| bval = GetDlgItemCheck(hWnd, IDC_DISABLEMMX); |  | 
| if (np2oscfg.disablemmx != bval) { |  | 
| np2oscfg.disablemmx = bval; |  | 
| mmxflag &= ~MMXFLAG_DISABLE; |  | 
| mmxflag |= (bval)?MMXFLAG_DISABLE:0; |  | 
| update |= SYS_UPDATEOSCFG; |  | 
| } |  | 
| } |  | 
|  |  | 
| bval = GetDlgItemCheck(hWnd, IDC_COMFIRM); |  | 
| if (np2oscfg.comfirm != bval) { |  | 
| np2oscfg.comfirm = bval; |  | 
| update |= SYS_UPDATEOSCFG; |  | 
| } |  | 
|  |  | 
| bval = GetDlgItemCheck(hWnd, IDC_RESUME); |  | 
| if (np2oscfg.resume != bval) { |  | 
| np2oscfg.resume = bval; |  | 
| update |= SYS_UPDATEOSCFG; |  | 
| } |  | 
| sysmng_update(update); |  | 
 | EndDialog(hWnd, IDOK); | EndDialog(hWnd, IDOK); | 
 | break; | break; | 
 |  |  | 
| Line 180  LRESULT CALLBACK CfgDialogProc(HWND hWnd | Line 190  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: |