static LRESULT CALLBACK Snd86optDlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { HWND sub; switch(msg) { case WM_INITDIALOG: snd86 = np2cfg.snd86opt; dlgs_setcbitem(hWnd, IDC_SND86IO, cpIO86, NELEMENTS(cpIO86)); setsnd86io(hWnd, IDC_SND86IO, snd86); SetDlgItemCheck(hWnd, IDC_SND86INT, snd86 & 0x10); dlgs_setcbitem(hWnd, IDC_SND86INTA, cpInt86, NELEMENTS(cpInt86)); setsnd86int(hWnd, IDC_SND86INTA, snd86); dlgs_setcbitem(hWnd, IDC_SND86ID, cpID, NELEMENTS(cpID)); setsnd86id(hWnd, IDC_SND86ID, snd86); SetDlgItemCheck(hWnd, IDC_SND86ROM, snd86 & 2); sub = GetDlgItem(hWnd, IDC_SND86DIP); SetWindowLong(sub, GWL_STYLE, SS_OWNERDRAW + (GetWindowLong(sub, GWL_STYLE) & (~SS_TYPEMASK))); return(TRUE); case WM_COMMAND: switch(LOWORD(wp)) { case IDC_SND86IO: set86jmp(hWnd, getsnd86io(hWnd, IDC_SND86IO), 0x01); break; case IDC_SND86INT: set86jmp(hWnd, (GetDlgItemCheck(hWnd, IDC_SND86INT))?0x10:0x00, 0x10); break; case IDC_SND86INTA: set86jmp(hWnd, getsnd86int(hWnd, IDC_SND86INTA), 0x0c); break; case IDC_SND86ROM: set86jmp(hWnd, (GetDlgItemCheck(hWnd, IDC_SND86ROM))?0x02:0x00, 0x02); break; case IDC_SND86ID: set86jmp(hWnd, getsnd86id(hWnd, IDC_SND86ID), 0xe0); break; case IDC_SND86DEF: snd86 = 0x7f; setsnd86io(hWnd, IDC_SND86IO, snd86); SetDlgItemCheck(hWnd, IDC_SND86INT, TRUE); setsnd86int(hWnd, IDC_SND86INTA, snd86); setsnd86id(hWnd, IDC_SND86ID, snd86); SetDlgItemCheck(hWnd, IDC_SND86ROM, TRUE); InvalidateRect(GetDlgItem(hWnd, IDC_SND86DIP), NULL, TRUE); break; case IDC_SND86DIP: snd86cmddipsw(hWnd); break; } break; case WM_NOTIFY: if ((((NMHDR *)lp)->code) == (UINT)PSN_APPLY) { if (np2cfg.snd86opt != snd86) { np2cfg.snd86opt = snd86; sysmng_update(SYS_UPDATECFG); } return(TRUE); } break; case WM_DRAWITEM: if (LOWORD(wp) == IDC_SND86DIP) { dlgs_drawbmp(((LPDRAWITEMSTRUCT)lp)->hDC, dipswbmp_getsnd86(snd86)); } return(FALSE); } return(FALSE); }
static pascal OSStatus cfWinproc(EventHandlerCallRef myHandler, EventRef event, void* userData) { OSStatus err = eventNotHandledErr; HICommand cmd; BYTE defaultmix[5] = {64, 64, 64, 64, 64}; BYTE b; if (GetEventClass(event)==kEventClassCommand && GetEventKind(event)==kEventCommandProcess ) { GetEventParameter(event, kEventParamDirectObject, typeHICommand, NULL, sizeof(HICommand), NULL, &cmd); switch (cmd.commandID) { case 'vDEF': initMixer(defaultmix); break; case '26io': setjmper(&snd26, (getMenuValue == 1)?0x10:0x00, 0x10); break; case '26in': setjmper(&snd26, getsnd26int(cmd.commandID), 0xc0); break; case '26rm': setjmper(&snd26, getMenuValue, 0x07); break; case '26DF': snd26 = 0xd1; set26s(snd26, '26io', '26in', '26rm'); break; case '86io': setjmper(&snd86, (getMenuValue == 0)?0x01:0x00, 0x01); break; case '86it': setjmper(&snd86, (getControlValue(cmd.commandID, 0))?0x10:0x00, 0x10); break; case '86in': setjmper(&snd86, getsnd86int(), 0x0c); break; case '86id': setjmper(&snd86, (~getMenuValue & 7) << 5, 0xe0); break; case '86rm': setjmper(&snd86, (getControlValue(cmd.commandID, 0))?0x02:0x00, 0x02); break; case '86DF': snd86 = 0x7f; set86s(); break; case 'spio': setjmper(&spb, (getMenuValue == 1)?0x10:0x00, 0x10); break; case 'spin': setjmper(&spb, getsnd26int(cmd.commandID), 0xc0); break; case 'sprm': setjmper(&spb, getMenuValue, 0x07); break; case 'spvl': case 'spvr': b = getspbVRch(); if ((spbvrc ^ b) & 3) { spbvrc = b; } break; case 'spDF': spb = 0xd1; spbvrc = 0; setSPB(); break; case kHICommandOK: changeSoundOpt(); endLoop(soundWin); err=noErr; break; case kHICommandCancel: revertTemporal(); endLoop(soundWin); err=noErr; break; case JOYPAD_UP: case JOYPAD_DOWN: case JOYPAD_LEFT: case JOYPAD_RIGHT: case JOYPAD_ABUTTON: case JOYPAD_BBUTTON: err=setupJoyConfig(cmd.commandID); break; default: break; } } (void)myHandler; (void)userData; return err; }