From 19d466a72993bbb6580900ce335976f42961e129 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Fri, 13 Nov 2015 21:14:30 +0100 Subject: [PATCH] Added patch for stub of hid.HidP_TranslateUsagesToI8042ScanCodes. --- README.md | 3 +- debian/changelog | 1 + ...HidP_TranslateUsagesToI8042ScanCodes.patch | 88 +++++++++++++++++++ .../definition | 1 + patches/patchinstall.sh | 19 ++++ 5 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 patches/hid-HidP_TranslateUsagesToI8042ScanCodes/0001-hid-Stub-HidP_TranslateUsagesToI8042ScanCodes.patch create mode 100644 patches/hid-HidP_TranslateUsagesToI8042ScanCodes/definition diff --git a/README.md b/README.md index a3e46ba0..0dc4619d 100644 --- a/README.md +++ b/README.md @@ -34,9 +34,10 @@ Wine. All those differences are also documented on the Included bug fixes and improvements ----------------------------------- -**Bug fixes and features included in the next upcoming release [3]:** +**Bug fixes and features included in the next upcoming release [4]:** * Add partial implementation of ITfThreadMgrEx_ActivateEx ([Wine Bug #39564](https://bugs.winehq.org/show_bug.cgi?id=39564)) +* Implement stub for hid.HidP_TranslateUsagesToI8042ScanCodes ([Wine Bug #39447](https://bugs.winehq.org/show_bug.cgi?id=39447)) * Implement support for "Purist Mode" (override for all dlls) * Revert patch to prepare GL resources before calling context_apply_fbo_state ([Wine Bug #39536](https://bugs.winehq.org/show_bug.cgi?id=39536)) diff --git a/debian/changelog b/debian/changelog index eb2f5b2d..d6ab482b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,7 @@ wine-staging (1.7.55) UNRELEASED; urgency=low context_apply_fbo_state". * Added patch to implement support for "Purist Mode" (override for all dlls). * Added patch for partial implementation of ITfThreadMgrEx_ActivateEx. + * Added patch for stub of hid.HidP_TranslateUsagesToI8042ScanCodes. * Remove disabled shell32-Quoted_ShellExecute patchset (bug already fixed and all tests pass). * Remove disabled reg-Cleanup patchset (only cleanup and not actively diff --git a/patches/hid-HidP_TranslateUsagesToI8042ScanCodes/0001-hid-Stub-HidP_TranslateUsagesToI8042ScanCodes.patch b/patches/hid-HidP_TranslateUsagesToI8042ScanCodes/0001-hid-Stub-HidP_TranslateUsagesToI8042ScanCodes.patch new file mode 100644 index 00000000..27ebec4d --- /dev/null +++ b/patches/hid-HidP_TranslateUsagesToI8042ScanCodes/0001-hid-Stub-HidP_TranslateUsagesToI8042ScanCodes.patch @@ -0,0 +1,88 @@ +From 830e882a471628e15ac3e6d14ffc864e2d448153 Mon Sep 17 00:00:00 2001 +From: Aric Stewart +Date: Wed, 14 Oct 2015 10:53:42 -0500 +Subject: hid: Stub HidP_TranslateUsagesToI8042ScanCodes + +My whole patch did not send last time for some reason. Here is the whole patch. + +For Bug 39447 + +Signed-off-by: Aric Stewart +--- + dlls/hid/hid.spec | 2 +- + dlls/hid/hidp.c | 13 +++++++++++++ + include/ddk/hidpi.h | 11 +++++++++++ + 3 files changed, 25 insertions(+), 1 deletion(-) + +diff --git a/dlls/hid/hid.spec b/dlls/hid/hid.spec +index e416762..76df40d 100644 +--- a/dlls/hid/hid.spec ++++ b/dlls/hid/hid.spec +@@ -39,6 +39,6 @@ + @ stub HidP_SetUsageValue + @ stub HidP_SetUsageValueArray + @ stub HidP_SetUsages +-@ stub HidP_TranslateUsagesToI8042ScanCodes ++@ stdcall HidP_TranslateUsagesToI8042ScanCodes(ptr long long ptr ptr ptr) + @ stub HidP_UnsetUsages + @ stub HidP_UsageListDifference +diff --git a/dlls/hid/hidp.c b/dlls/hid/hidp.c +index 3d7a12e..91d4fbe 100644 +--- a/dlls/hid/hidp.c ++++ b/dlls/hid/hidp.c +@@ -23,6 +23,7 @@ + #include + + #define NONAMELESSUNION ++#include "ntstatus.h" + #define WIN32_NO_STATUS + #include "windef.h" + #include "winbase.h" +@@ -519,3 +520,15 @@ ULONG WINAPI HidP_MaxUsageListLength(HIDP_REPORT_TYPE ReportType, USAGE UsagePag + } + return count; + } ++ ++NTSTATUS WINAPI HidP_TranslateUsagesToI8042ScanCodes(PUSAGE ChangedUsageList, ULONG UsageListLength, ++ HIDP_KEYBOARD_DIRECTION KeyAction, ++ PHIDP_KEYBOARD_MODIFIER_STATE ModifierState, ++ PHIDP_INSERT_SCANCODES InsertCodesProcedure, ++ PVOID InsertCodesContext) ++{ ++ ERR("(%p, %i, %i, %p, %p, %p): stub\n", ChangedUsageList, UsageListLength, ++ KeyAction, ModifierState, InsertCodesProcedure, InsertCodesContext); ++ ++ return STATUS_NOT_IMPLEMENTED; ++} +diff --git a/include/ddk/hidpi.h b/include/ddk/hidpi.h +index 4cfac61..a14ff80 100644 +--- a/include/ddk/hidpi.h ++++ b/include/ddk/hidpi.h +@@ -136,6 +136,16 @@ typedef struct _HIDP_CAPS + USHORT NumberFeatureDataIndices; + } HIDP_CAPS, *PHIDP_CAPS; + ++typedef enum _HIDP_KEYBOARD_DIRECTION ++{ ++ HidP_Keyboard_Break, ++ HidP_Keyboard_Make ++} HIDP_KEYBOARD_DIRECTION; ++ ++typedef struct _HIDP_KEYBOARD_MODIFIER_STATE HIDP_KEYBOARD_MODIFIER_STATE, *PHIDP_KEYBOARD_MODIFIER_STATE; ++ ++typedef BOOLEAN (WINAPI *PHIDP_INSERT_SCANCODES)(PVOID Context, PCHAR NewScanCodes, ULONG Length); ++ + NTSTATUS WINAPI HidP_GetButtonCaps(HIDP_REPORT_TYPE ReportType, PHIDP_BUTTON_CAPS ButtonCaps, PUSHORT ButtonCapsLength, PHIDP_PREPARSED_DATA PreparsedData); + NTSTATUS WINAPI HidP_GetCaps(PHIDP_PREPARSED_DATA PreparsedData, PHIDP_CAPS Capabilities); + NTSTATUS WINAPI HidP_GetUsages(HIDP_REPORT_TYPE ReportType, USAGE UsagePage, USHORT LinkCollection, PUSAGE UsageList, PULONG UsageLength, PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG ReportLength); +@@ -144,6 +154,7 @@ NTSTATUS WINAPI HidP_GetValueCaps(HIDP_REPORT_TYPE ReportType, PHIDP_VALUE_CAPS + NTSTATUS WINAPI HidP_InitializeReportForID(HIDP_REPORT_TYPE ReportType, UCHAR ReportID, PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG ReportLength); + ULONG WINAPI HidP_MaxUsageListLength(HIDP_REPORT_TYPE ReportType, USAGE UsagePage, PHIDP_PREPARSED_DATA PreparsedData); + NTSTATUS WINAPI HidP_GetScaledUsageValue(HIDP_REPORT_TYPE ReportType, USAGE UsagePage, USHORT LinkCollection, USAGE Usage, PLONG UsageValue, PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG ReportLength); ++NTSTATUS WINAPI HidP_TranslateUsagesToI8042ScanCodes(PUSAGE ChangedUsageList, ULONG UsageListLength, HIDP_KEYBOARD_DIRECTION KeyAction, PHIDP_KEYBOARD_MODIFIER_STATE ModifierState, PHIDP_INSERT_SCANCODES InsertCodesProcedure, PVOID InsertCodesContext); + + #ifndef FACILITY_HID_ERROR_CODE + #define FACILITY_HID_ERROR_CODE 0x11 +-- +2.6.2 + diff --git a/patches/hid-HidP_TranslateUsagesToI8042ScanCodes/definition b/patches/hid-HidP_TranslateUsagesToI8042ScanCodes/definition new file mode 100644 index 00000000..524b8069 --- /dev/null +++ b/patches/hid-HidP_TranslateUsagesToI8042ScanCodes/definition @@ -0,0 +1 @@ +Fixes: [39447] Implement stub for hid.HidP_TranslateUsagesToI8042ScanCodes diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 61805423..a53eb5a1 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -138,6 +138,7 @@ patch_enable_all () enable_gdi32_MaxPixelFormats="$1" enable_gdi32_MultiMonitor="$1" enable_hal_KeQueryPerformanceCounter="$1" + enable_hid_HidP_TranslateUsagesToI8042ScanCodes="$1" enable_hnetcfg_INetFwAuthorizedApplication="$1" enable_ieframe_IViewObject_Draw="$1" enable_imagehlp_BindImageEx="$1" @@ -513,6 +514,9 @@ patch_enable () hal-KeQueryPerformanceCounter) enable_hal_KeQueryPerformanceCounter="$2" ;; + hid-HidP_TranslateUsagesToI8042ScanCodes) + enable_hid_HidP_TranslateUsagesToI8042ScanCodes="$2" + ;; hnetcfg-INetFwAuthorizedApplication) enable_hnetcfg_INetFwAuthorizedApplication="$2" ;; @@ -3125,6 +3129,21 @@ if test "$enable_hal_KeQueryPerformanceCounter" -eq 1; then ) >> "$patchlist" fi +# Patchset hid-HidP_TranslateUsagesToI8042ScanCodes +# | +# | This patchset fixes the following Wine bugs: +# | * [#39447] Implement stub for hid.HidP_TranslateUsagesToI8042ScanCodes +# | +# | Modified files: +# | * dlls/hid/hid.spec, dlls/hid/hidp.c, include/ddk/hidpi.h +# | +if test "$enable_hid_HidP_TranslateUsagesToI8042ScanCodes" -eq 1; then + patch_apply hid-HidP_TranslateUsagesToI8042ScanCodes/0001-hid-Stub-HidP_TranslateUsagesToI8042ScanCodes.patch + ( + echo '+ { "Aric Stewart", "hid: Stub HidP_TranslateUsagesToI8042ScanCodes.", 1 },'; + ) >> "$patchlist" +fi + # Patchset hnetcfg-INetFwAuthorizedApplication # | # | Modified files: