- Timestamp:
- Mar 19, 2000, 10:16:58 AM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/dinput/dinput.cpp
r2499 r3163 1 /* $Id: dinput.cpp,v 1. 4 2000-01-22 10:31:06 sandervlExp $ */1 /* $Id: dinput.cpp,v 1.5 2000-03-19 09:16:58 mike Exp $ */ 2 2 /* DirectInput 3 3 * … … 218 218 ICOM_VTBL(This) = &ddiavt; 219 219 *ppDI=(IDirectInputA*)This; 220 OSLibInit(); 220 221 return 0; 221 222 } … … 523 524 ) 524 525 { 526 ICOM_THIS(SysKeyboardAImpl,iface); 527 // TRACE("DINPUT-SKAI: GetDeviceData (this=%p,%ld,%p)\n", 528 // This, len, ptr); 529 525 530 #ifdef __WIN32OS2__ 526 return OSLibGetDIState(len, ptr) ? DI_OK : E_FAIL; 531 // return OSLibGetDIState(len, ptr) ? DI_OK : E_FAIL; 532 if (ptr == NULL || len > 256) 533 return E_FAIL; 534 535 memcpy(ptr, This->keystate, len); 536 return DI_OK; 527 537 #else 528 538 return KEYBOARD_Driver->pGetDIState(len, ptr)?DI_OK:E_FAIL; 529 539 #endif 540 } 541 542 static ULONG WINAPI SysKeyboardAImpl_Release(LPDIRECTINPUTDEVICE2A iface) 543 { 544 ICOM_THIS(SysKeyboardAImpl,iface); 545 TRACE("DINPUT-SKAI: Release (this=%p)\n", This); 546 547 This->ref--; 548 if (This->ref) 549 return This->ref; 550 551 /* Free the data queue */ 552 if (This->data_queue != NULL) 553 HeapFree(GetProcessHeap(),0,This->data_queue); 554 555 /* Remeove the previous event handler (in case of releasing an acquired 556 keyboard device) */ 557 KEYBOARD_Enable(NULL); 558 559 HeapFree(GetProcessHeap(),0,This); 560 return 0; 530 561 } 531 562 … … 594 625 595 626 SysKeyboardAImpl* This = (SysKeyboardAImpl*) current_keylock; 627 BYTE scan = (lParam >> 16) & 0xFF; 596 628 597 629 // fake a key up transition for typematic repeat … … 599 631 if (lParam & 0x40000000) { // key was down before 600 632 dprintf(("Repeat\n")); 601 GEN_KEYEVENT( (lParam >> 16) & 0xFF,// scancode633 GEN_KEYEVENT(scan, // scancode 602 634 0, // key up 603 635 time(NULL), evsequence++); 604 636 } 605 GEN_KEYEVENT((lParam >> 16) & 0xFF, // scancode 637 638 GEN_KEYEVENT(scan, // scancode 606 639 (lParam & 0x80000000) ? 0 : 0x80, 607 640 time(NULL), evsequence++); 641 642 if (msg == WM_KEYDOWN) 643 This->keystate[scan] = 0x80; 644 else 645 This->keystate[scan] = 0x00; 646 608 647 return TRUE; 609 648 } … … 632 671 /* unregister the callback */ 633 672 KEYBOARD_Enable(NULL); 634 635 /* Free the data queue */636 if (This->data_queue != NULL)637 HeapFree(GetProcessHeap(),0,This->data_queue);638 673 639 674 /* No more locks */ … … 987 1022 } 988 1023 989 TRACE(" %ld %ld", posX, posY);1024 TRACE("DINPUT-SMAI: event %ld, %ld", posX, posY); 990 1025 991 1026 if ( dwFlags & MOUSEEVENTF_MOVE ) { … … 1610 1645 IDirectInputDevice2AImpl_QueryInterface, 1611 1646 IDirectInputDevice2AImpl_AddRef, 1612 IDirectInputDevice2AImpl_Release,1647 SysKeyboardAImpl_Release, 1613 1648 IDirectInputDevice2AImpl_GetCapabilities, 1614 1649 IDirectInputDevice2AImpl_EnumObjects,
Note:
See TracChangeset
for help on using the changeset viewer.