static LRESULT CALLBACK SPBoptDlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { UINT8 b; UINT update; switch(msg) { case WM_INITDIALOG: spbcreate(hWnd); return(TRUE); case WM_COMMAND: switch(LOWORD(wp)) { case IDC_SPBIO: setspbjmp(hWnd, getsnd26io(hWnd, IDC_SPBIO), 0x10); break; case IDC_SPBINT: setspbjmp(hWnd, getsnd26int(hWnd, IDC_SPBINT), 0xc0); break; case IDC_SPBROM: setspbjmp(hWnd, getsnd26rom(hWnd, IDC_SPBROM), 0x07); break; case IDC_SPBDEF: spb = 0xd1; setsnd26io(hWnd, IDC_SPBIO, spb); setsnd26int(hWnd, IDC_SPBINT, spb); setsnd26rom(hWnd, IDC_SPBROM, spb); spbvrc = 0; setspbVRch(hWnd); InvalidateRect(GetDlgItem(hWnd, IDC_SPBJMP), NULL, TRUE); break; case IDC_SPBVRL: case IDC_SPBVRR: b = getspbVRch(hWnd); if ((spbvrc ^ b) & 3) { spbvrc = b; InvalidateRect(GetDlgItem(hWnd, IDC_SPBJMP), NULL, TRUE); } break; case IDC_SPBJMP: spbcmdjmp(hWnd); break; } break; case WM_NOTIFY: if ((((NMHDR *)lp)->code) == (UINT)PSN_APPLY) { update = 0; if (np2cfg.spbopt != spb) { np2cfg.spbopt = spb; update |= SYS_UPDATECFG; } if (np2cfg.spb_vrc != spbvrc) { np2cfg.spb_vrc = spbvrc; update |= SYS_UPDATECFG; } b = (UINT8)SendDlgItemMessage(hWnd, IDC_SPBVRLEVEL, TBM_GETPOS, 0, 0); if (np2cfg.spb_vrl != b) { np2cfg.spb_vrl = b; update |= SYS_UPDATECFG; } opngen_setVR(np2cfg.spb_vrc, np2cfg.spb_vrl); b = (UINT8)GetDlgItemCheck(hWnd, IDC_SPBREVERSE); if (np2cfg.spb_x != b) { np2cfg.spb_x = b; update |= SYS_UPDATECFG; } sysmng_update(update); return(TRUE); } break; case WM_DRAWITEM: if (LOWORD(wp) == IDC_SPBJMP) { dlgs_drawbmp(((LPDRAWITEMSTRUCT)lp)->hDC, dipswbmp_getsndspb(spb, spbvrc)); } return(FALSE); } return(FALSE); }
static void changeSoundOpt(void) { SINT32 val; UInt8 update; int renewal; short i,j; renewal = 0; for (j=0;j<5;j++) { val = getControlValue('vMix', j); if (val != *cfg[j]) { *cfg[j] = val; renewal = 1; } } if (renewal) { sysmng_update(SYS_UPDATECFG); } opngen_setvol(np2cfg.vol_fm); psggen_setvol(np2cfg.vol_ssg); rhythm_setvol(np2cfg.vol_rhythm); rhythm_update(&g_rhythm); adpcm_setvol(np2cfg.vol_adpcm); adpcm_update(&g_adpcm); pcm86gen_setvol(np2cfg.vol_pcm); pcm86gen_update(); renewal = 0; for (i=0;i<6;i++) { val = getControlValue('vMix',i+10); if (val != np2cfg.vol14[i]) { np2cfg.vol14[i] = val; renewal = 1; } } if (renewal) { sysmng_update(SYS_UPDATECFG); tms3631_setvol(np2cfg.vol14); } if (np2cfg.snd26opt != snd26) { np2cfg.snd26opt = snd26; sysmng_update(SYS_UPDATECFG); } if (np2cfg.snd86opt != snd86) { np2cfg.snd86opt = snd86; sysmng_update(SYS_UPDATECFG); } update = 0; if (np2cfg.spbopt != spb) { np2cfg.spbopt = spb; update |= SYS_UPDATECFG; } if (np2cfg.spb_vrc != spbvrc) { np2cfg.spb_vrc = spbvrc; update |= SYS_UPDATECFG; } val = getControlValue('splv', 0); if (np2cfg.spb_vrl != val) { np2cfg.spb_vrl = val; update |= SYS_UPDATECFG; } opngen_setVR(np2cfg.spb_vrc, np2cfg.spb_vrl); val = getControlValue('sprv', 0); if (np2cfg.spb_x != val) { np2cfg.spb_x = val; update |= SYS_UPDATECFG; } sysmng_update(update); changeJoyPadSetup(); }