Vitaliy Margolen : dinput: Move key state array into object.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Jun 29 08:14:33 CDT 2007


Module: wine
Branch: master
Commit: b9e8284a7dc2a1ddf0aaae54066e53f0d83ed37f
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b9e8284a7dc2a1ddf0aaae54066e53f0d83ed37f

Author: Vitaliy Margolen <wine-patches at kievinfo.com>
Date:   Thu Jun 28 06:34:04 2007 -0600

dinput: Move key state array into object.

---

 dlls/dinput/keyboard.c |   16 +++++++---------
 1 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/dlls/dinput/keyboard.c b/dlls/dinput/keyboard.c
index c1eb5fb..ad44023 100644
--- a/dlls/dinput/keyboard.c
+++ b/dlls/dinput/keyboard.c
@@ -47,6 +47,7 @@ typedef struct SysKeyboardImpl SysKeyboardImpl;
 struct SysKeyboardImpl
 {
     struct IDirectInputDevice2AImpl base;
+    BYTE DInputKeyState[WINE_DINPUT_KEYBOARD_MAX_KEYS];
 };
 
 static SysKeyboardImpl* current_lock = NULL; 
@@ -57,8 +58,6 @@ static SysKeyboardImpl* current_lock = NULL;
  * but 'DI_LOSTFOCUS' and 'DI_UNACQUIRED' exist for a reason.
 */
 
-static BYTE DInputKeyState[WINE_DINPUT_KEYBOARD_MAX_KEYS]; /* array for 'GetDeviceState' */
-
 static LRESULT CALLBACK KeyboardCallback( int code, WPARAM wparam, LPARAM lparam )
 {
     SysKeyboardImpl *This = (SysKeyboardImpl *)current_lock;
@@ -77,11 +76,11 @@ static LRESULT CALLBACK KeyboardCallback( int code, WPARAM wparam, LPARAM lparam
     new_diks = hook->flags & LLKHF_UP ? 0 : 0x80;
 
     /* returns now if key event already known */
-    if (new_diks == DInputKeyState[dik_code])
+    if (new_diks == This->DInputKeyState[dik_code])
         return CallNextHookEx(0, code, wparam, lparam);
 
-    DInputKeyState[dik_code] = new_diks;
-    TRACE(" setting %02X to %02X\n", dik_code, DInputKeyState[dik_code]);
+    This->DInputKeyState[dik_code] = new_diks;
+    TRACE(" setting %02X to %02X\n", dik_code, This->DInputKeyState[dik_code]);
       
     dik_code = id_to_offset(&This->base.data_format, DIDFT_MAKEINSTANCE(dik_code) | DIDFT_PSHBUTTON);
     EnterCriticalSection(&This->base.crit);
@@ -288,13 +287,12 @@ static HRESULT WINAPI SysKeyboardAImpl_GetDeviceState(
     if (TRACE_ON(dinput)) {
 	int i;
 	for (i = 0; i < WINE_DINPUT_KEYBOARD_MAX_KEYS; i++) {
-	    if (DInputKeyState[i] != 0x00) {
-		TRACE(" - %02X: %02x\n", i, DInputKeyState[i]);
-	    }
+	    if (This->DInputKeyState[i] != 0x00)
+		TRACE(" - %02X: %02x\n", i, This->DInputKeyState[i]);
 	}
     }
     
-    memcpy(ptr, DInputKeyState, WINE_DINPUT_KEYBOARD_MAX_KEYS);
+    memcpy(ptr, This->DInputKeyState, WINE_DINPUT_KEYBOARD_MAX_KEYS);
     LeaveCriticalSection(&This->base.crit);
 
     return DI_OK;




More information about the wine-cvs mailing list