Commit Graph

476 Commits

Author SHA1 Message Date
Vitaliy Margolen c6784cdad3 dinput: Count should not be 0-based. 2007-08-27 12:01:43 +02:00
Vitaliy Margolen fc0298429a dinput: Fix compile with old input.h that missing input_absinfo. 2007-08-21 21:39:10 +02:00
Vitaliy Margolen e2e3d19351 dinput: Don't try to create non existing device (/dev/js*). 2007-08-21 12:41:57 +02:00
Vitaliy Margolen 81fc89fa6d dinput: Check acquired flag instead of fd. 2007-08-20 22:32:53 +02:00
Vitaliy Margolen 3cd13628aa dinput: Use correct data structure for EVIOCGABS instead of an array. 2007-08-20 22:32:51 +02:00
Vitaliy Margolen ca8a0a8aaa dinput: Remove redundant declaration. 2007-08-20 22:32:45 +02:00
Vitaliy Margolen f47c63a1f9 dinput: Don't try to create non existing device. 2007-08-20 22:32:40 +02:00
Vitaliy Margolen c78b8a17fd dinput: Properly increment sequence number for X only movement. 2007-08-17 12:01:37 +02:00
Vitaliy Margolen 51fac7f28a dinput: Fix dead zone calculation.
Based on patch by Artur Szymiec.
2007-08-14 20:29:21 +02:00
Peter Dons Tychsen 2cea950e99 dinput: Allow the use of the standard Joystick GUID when calling CreateDevice. 2007-08-08 15:32:04 +02:00
Vitaliy Margolen b06786940c dinput: Reuse common code and definition.
Unify object properties structure and he common axis mapping function
for both joystick drivers.
2007-08-06 14:02:41 +02:00
Vitaliy Margolen 19183e71d4 dinput: Fix POV calculation.
Combine and simplify the POV calculations. Linux provides X,Y for the POV.
While DirectInput returns dial-degrees*1000 (12 o-click is 0 degrees).
2007-08-06 14:02:26 +02:00
Vitaliy Margolen 1fdc0230f0 dinput: Fix handling of dead-zone in evdev joystick.
USB joysticks can and do provide dead-zone area. Use it to initialize
the initial dead-zone.
2007-08-06 14:02:02 +02:00
Vitaliy Margolen 9e36848303 dinput: Fix mapping of axes ids to property ids. 2007-08-06 14:01:54 +02:00
Erik Inge Bolsø 176c567cb3 dinput: Fix joystick axis remapping. 2007-08-02 12:18:41 +02:00
Vitaliy Margolen ed4f1e8ec7 dinput: Fix typo. 2007-07-30 13:00:01 +02:00
Vitaliy Margolen 94e08ec5be dinput: Use more messages as a possible indication of the foreground window changes. 2007-07-23 12:13:26 +02:00
Vitaliy Margolen 41ce4a0158 dinput: Use CALLWINDPROC hook to monitor focus loses away from acquired windows. 2007-07-16 22:59:07 +02:00
Vitaliy Margolen 233cd46a22 dinput: Use PostMessage instead of SendMessage. Remove message window. 2007-07-16 22:59:02 +02:00
Vitaliy Margolen efdee19d90 dinput: Convert IDirectInput into multi-interface object. 2007-07-12 12:59:20 +02:00
Vitaliy Margolen 6d5eee0851 dinput: Clear static variables after releasing hooks. 2007-07-10 13:37:20 +02:00
Vitaliy Margolen 8f28d4369e dinput: Rename set_dinput_hook and call it from the base class.
Since keyboard's acquire and unacquire don't do anything special just call
the base class.
2007-07-09 14:31:38 +02:00
Vitaliy Margolen deb74efc04 dinput: Handle multiple keyboard and mouse devices. 2007-07-09 14:27:25 +02:00
Vitaliy Margolen 6d6e4f4ea2 dinput: Export Mouse and Keyboard GUIDs. 2007-07-09 14:25:47 +02:00
Vitaliy Margolen fe1f1362b8 dinput: Keep a list of all IDirectInput objects and check it instead of refcount to create/destroy hook thread. 2007-07-09 14:25:39 +02:00
Vitaliy Margolen 448dde9be8 dinput: Keep the list of all the dinput devices created for each IDIrectInput object. 2007-07-09 14:25:33 +02:00
Vitaliy Margolen 1f72c13a5a dinput: Correct test - use appropriate mouse state structure. 2007-07-06 18:15:19 +02:00
Vitaliy Margolen b9e8284a7d dinput: Move key state array into object. 2007-06-29 12:31:45 +02:00
Vitaliy Margolen fb1082ae73 dinput: Combine all Release functionality into base class. 2007-06-28 12:16:11 +02:00
Vitaliy Margolen d2966c2dfb dinput: Move parent dinput reference into base class. 2007-06-28 12:16:11 +02:00
Vitaliy Margolen 75a17709ea dinput: Remove duplicate code. 2007-06-28 12:16:11 +02:00
Vitaliy Margolen f83b53c160 dinput: Acquire device only if specified window has focus in foreground coop level. 2007-06-04 13:10:10 +02:00
Vitaliy Margolen 6a8bf96d73 dinput: Make sure to unacquire device before freeing it. 2007-06-04 13:10:04 +02:00
Dmitry Timoshkov 3c9e7a7f33 wine: Switch to using 'long' for INT_PTR type for 64-bit compatibility. 2007-05-25 20:37:56 +02:00
Vitaliy Margolen 4659f98314 dinput: Prevent race between destroying the hook window and unloading the dll. 2007-05-15 15:53:44 +02:00
Andrew Talbot 5e1ca16052 dinput: Constify some variables. 2007-04-24 11:53:46 +02:00
Vitaliy Margolen cb0e61c356 dinput: Set the event regardless of the queue state. 2007-04-09 12:19:01 +02:00
Andrew Talbot 08e1481d8e dinput: Replace inline static with static inline. 2007-03-21 11:55:33 +01:00
Jan Zerebecki 52a630a3a8 dinput: Add DebugInfo to critical sections. 2007-03-08 22:21:43 +01:00
Andrew Talbot e744c3a5b1 dinput: Constify some variables. 2007-02-13 12:08:26 +01:00
Vitaliy Margolen a06821765a dinput: Don't reset dead zone and saturation when setting data format.
Additional tests indicate that native doesn't touch previously set
properties.
2007-02-06 20:23:28 +01:00
Vitaliy Margolen 17839bab6c dinput: Use correct flag for object instance.
DIDFT_AXIS is a generic mask for absolute and relative axes.
2007-02-06 12:30:39 +01:00
Vitaliy Margolen 10fca47ba4 dinput: Look for all available js* joystick devices. 2007-02-06 12:30:34 +01:00
Vitaliy Margolen 45b8d865b4 dinput: Don't reset user specified range in SetDataFormat. With tests. 2007-02-05 14:03:28 +01:00
Vitaliy Margolen b8b03b54b7 dinput: Initialize user limits with the default 0..65535 range. Add tests. 2007-02-05 14:03:20 +01:00
Vitaliy Margolen 575ede974d dinput: Return user set limits not the device limits. 2007-02-05 14:03:07 +01:00
Vitaliy Margolen 15e0ccab9b dinput: Don't close fd before we done with it. 2007-02-05 14:02:46 +01:00
Marcus Meissner 1fc5160ce8 dinput: Fix dereference pointer after NULL check (Coverity). 2007-02-05 14:02:23 +01:00
Alexandre Julliard 4ae5b9fd33 dinput: Undefine SW_MAX to avoid possible conflicts with winuser.h. 2007-01-22 12:11:04 +01:00
Christoph Frick a6947bde23 dinput: Calc more caps infos ahead and store it in JoystickImpl. 2007-01-18 12:09:32 +01:00
Christoph Frick ffdea40f2c dinput: No longer check for value exceeding have(min|max) in map_axis. 2007-01-17 11:41:52 +01:00
Christoph Frick f0b45141c2 dinput: Add a config for the axes. 2007-01-17 11:41:07 +01:00
Christoph Frick 0855a6be4c dinput: Move the config for the buttons from the JoyDev into the JoystickImpl. 2007-01-17 11:40:52 +01:00
Christoph Frick 424d302115 dinput: Use a struct ObjProps for the config of the device. 2007-01-17 11:40:42 +01:00
Christoph Frick 22a6983a96 dinput: Rename 'axe' to 'axis'. 2007-01-17 11:40:29 +01:00
Vitaliy Margolen dbd2112eee dinput: Internal data format is not const anymore. 2007-01-11 11:49:12 +01:00
Vitaliy Margolen a1dd4cb76a dinput: Don't copy no longer used user data format object array. 2007-01-11 11:49:01 +01:00
Vitaliy Margolen da78a7af5e dinput: Use internal data format for object lookups. 2007-01-11 11:48:55 +01:00
Vitaliy Margolen 3d093256ca dinput: [joystick_linuxinput] Use correct offset to queue events. 2007-01-11 11:48:49 +01:00
Vitaliy Margolen d81e17d5c0 dinput: [joystick_linuxinput] Rewrite GetObjectInfo and EnumObjects on top of base class. 2007-01-11 11:48:40 +01:00
Vitaliy Margolen bfa64b98ed dinput: [joystick_linuxinput] Copy and modify default data format. 2007-01-11 11:48:22 +01:00
Vitaliy Margolen 1bc557eea0 dinput: [joystick_linux] Use correct offset to queue events. 2007-01-11 11:45:55 +01:00
Vitaliy Margolen 60948ab1f0 dinput: [joystick_linux] Reuse the same properties array. 2007-01-11 11:45:46 +01:00
Vitaliy Margolen 3989e0feb8 dinput: [joystick_linux] Copy and modify default data format.
Copy only what we have.
2007-01-11 11:45:36 +01:00
Vitaliy Margolen cd306046bb dinput: Pass complete DataFormat structure to find_property. 2007-01-10 12:23:28 +01:00
Vitaliy Margolen af71538d33 dinput: Remove duplicate Keyboard->Poll it is the same as base class. 2007-01-10 12:23:18 +01:00
Vitaliy Margolen adddc56699 dinput: Fix trace formatting. 2007-01-10 12:23:16 +01:00
Vitaliy Margolen 4b33fd691a dinput: Set event from queue_event, simplifying code a bit. 2007-01-08 21:13:40 +01:00
Vitaliy Margolen 8e8b4f03b0 dinput: Use proper offset when queuing keyboard events. 2007-01-08 21:13:35 +01:00
Vitaliy Margolen 005bb87342 dinput: Fix possible NULL deference. 2007-01-06 11:40:46 +01:00
Vitaliy Margolen b223b021a5 dinput: Fix memory leak. 2007-01-06 11:40:46 +01:00
Vitaliy Margolen 30e2fbcb6e dinput: Fix mouse to use proper offset when queuing new events. Add handling of X-buttons.
We should use instance IDs instead of sequential numbers to get correct offset.
2007-01-06 11:40:46 +01:00
Vitaliy Margolen 504798ce9f dinput: Change EnumObjects to use GetObjectInfo.
Also small debug trace correction to make it more readable.
2007-01-05 18:23:46 +01:00
Vitaliy Margolen 4c1e52e123 dinput: Fix cut and paste error. 2007-01-04 21:14:19 +01:00
Francois Gouget bbb2b7fd98 Assorted spelling fixes. 2007-01-04 11:27:31 +01:00
Vitaliy Margolen f2a3ad2481 dinput: Implement mouse GetObjectInfo on top of base class. 2007-01-04 09:57:35 +01:00
Vitaliy Margolen 20ba784aac dinput: Move keyboard to using new GetObjectInfo. 2007-01-04 09:57:11 +01:00
Vitaliy Margolen 0edc6e26a7 dinput: Implement GetObjectInfo[A|W] in base device class. 2007-01-04 09:57:05 +01:00
Andrew Talbot e946ce6b38 dinput: Declare some functions static. 2007-01-04 09:53:58 +01:00
Vitaliy Margolen 263d5ce171 dinput: Move keyboard to using new EnumObjects from base class. 2006-12-29 20:54:38 +01:00
Vitaliy Margolen 685a3e6a6e dinput: Release critical section before warping mouse. 2006-12-29 12:49:41 +01:00
Vitaliy Margolen 0eb110f3ca dinput: Move mouse to using new EnumObjects from base class. 2006-12-28 12:23:07 +01:00
Vitaliy Margolen 42feef0c7b dinput: Implement EnumOjects[A|W] in the base device class. 2006-12-28 12:23:02 +01:00
Vitaliy Margolen 18ee811e4c dinput: mouse: Copy and modify default data format. 2006-12-28 12:22:49 +01:00
Vitaliy Margolen b22ff8018a dinput: Remove MsgWaitForMultipleObjects calls. 2006-12-28 12:22:29 +01:00
Vitaliy Margolen ce5fb9bb29 dinput: AddRef and Release parent DirectInput class. 2006-12-24 13:07:15 +01:00
Christoph Frick e4a6562937 dinput: Drop magic int. 2006-12-20 17:41:09 +01:00
Christoph Frick b0eb9d0b89 dinput: Set the correct size for the old dinput joystick.
This also reverts my previous patch as this is the real cause for the
problems with Grand Prix Legends.
2006-12-20 17:40:17 +01:00
Vitaliy Margolen 938657b1c1 dinput: Warp mouse in exclusive cooperation mode only. 2006-12-20 14:12:49 +01:00
Vitaliy Margolen 546c7a502d dinput: Use GetCursorPos() to calculate relative mouse movements. 2006-12-20 14:12:42 +01:00
Vitaliy Margolen 975d7ff292 dinput: Make mouse use axis mode flag set in base class. Add tests. 2006-12-18 12:01:05 +01:00
Vitaliy Margolen 7b07e4b563 dinput: Add handling of AXISMODE property to base device object. 2006-12-18 12:00:50 +01:00
Vitaliy Margolen 350c66fec2 dinput: Zero out returned information struct. 2006-12-18 12:00:43 +01:00
Vitaliy Margolen 1db55d2511 dinput: Don't return non existent keys. 2006-12-18 12:00:41 +01:00
Vitaliy Margolen aa8392c9e7 dinput: Use standard mouse data format instead of custom one. 2006-12-12 20:24:20 +01:00
Vitaliy Margolen 6246fa62f9 dinput: Remove redundant parameter. 2006-12-12 20:24:10 +01:00
Vitaliy Margolen d5b57f3904 dinput: Move mouse & keyboard user data format to base class. 2006-12-12 20:23:57 +01:00
Vitaliy Margolen 1d314d54ba dinput: Move joystick user data format into base class. 2006-12-12 20:23:37 +01:00
Vitaliy Margolen 3446caab56 dinput: Add user data format into base class. Implement SetDataFormat. 2006-12-12 20:22:53 +01:00
Vitaliy Margolen cd050bf25c dinput: Move transform and offsets structures into base device class. 2006-12-12 20:22:44 +01:00
Vitaliy Margolen 68176eeda1 dinput: Move few helper functions and standardize them. 2006-12-11 16:17:46 +01:00
Vitaliy Margolen 267cbf8289 dinput: Move internal function calculate_ids to where it's really used. 2006-12-11 16:17:40 +01:00
Vitaliy Margolen c17e06d5c0 dinput: No need to copy default constant format. Use already defined static instead. 2006-12-11 16:17:13 +01:00
Christoph Frick 71f41e5d02 dinput: Utilize IDirectInputDevice2AImpl_Acquire/Unacquire. 2006-12-11 13:51:13 +01:00
Christoph Frick f37f598daf dinput: Ensure that the size of the dev caps pointer is large enough - no exact. 2006-12-11 13:51:00 +01:00
Christoph Frick ba1ef69a41 dinput: Silently ignore DIPROP_CALIBRATIONMODE. 2006-12-11 13:50:37 +01:00
Vitaliy Margolen 5b520ff6df dinput: Remove incorrect assumption about format. 2006-12-11 13:50:32 +01:00
Marcus Meissner f0280cbd1e made functions and variables static in some testcases. 2006-12-11 12:18:29 +01:00
Vitaliy Margolen 1056c881e1 dinput: Fix processing of custom format. 2006-12-11 12:17:26 +01:00
Vitaliy Margolen 03fa9106cf dinput: Remove no longer used GEN_EVENT. 2006-12-05 11:33:03 +01:00
Vitaliy Margolen aa7eed9394 dinput: Move joystick event queue into base device class. 2006-12-05 11:32:55 +01:00
Vitaliy Margolen fb5884203b dinput: Move mouse event queue into base device class. 2006-12-05 11:32:46 +01:00
Vitaliy Margolen 564ad7da8c dinput: Move keyboard event queue into base device class.
This removes [Get|Set]Property and GetDeviceData.
2006-12-05 11:32:38 +01:00
Vitaliy Margolen ce0c3cdae7 dinput: Implement [Get|Set]Property and GetDeviceData in base Device object.
Also add queue_event to replace big macro GEN_EVENT.
2006-12-05 11:32:34 +01:00
Vitaliy Margolen 429c8ac948 dinput: Implement Poll for keyboard. 2006-12-04 12:34:08 +01:00
Vitaliy Margolen 0da0486cc3 dinput: Move critical section to the base device class. 2006-12-04 12:33:47 +01:00
Vitaliy Margolen f7eacd64d1 dinput: Move acquired flag to the base device class. Add tests. 2006-12-04 12:33:35 +01:00
Christoph Frick 53620bc77b dinput: Simplify the code that finds the offset of the given linux event. 2006-11-24 12:56:50 +01:00
Francois Gouget dc44dbfa41 dinput/tests: Remove unneeded NONAMELESS* macros. 2006-11-24 11:48:47 +01:00
Mike McCormack 53baea13a5 dinput: Use HeapAlloc/Free instead of alloc/free. 2006-11-10 11:35:23 +01:00
Francois Gouget 30e44c85c8 Assorted spelling fixes. 2006-11-07 15:25:24 +01:00
Damjan Jovanovic b56953f49d dinput: Changed select to poll. 2006-11-06 12:29:12 +01:00
Francois Gouget 1f67fa0acf Add '\n's to Wine traces. 2006-10-20 14:10:34 +02:00
Vitaliy Margolen 35ee9b05d9 dinput: Add SetCooperativeLevel test for joystick. 2006-10-17 12:36:28 +02:00
Vitaliy Margolen d35e4cd83c dinput: Add SetCooperativeLevel tests to keyboard. 2006-10-17 12:36:24 +02:00
Vitaliy Margolen 1dae4c6832 dinput: Move SetCooperativeLevel into base class. 2006-10-17 12:36:13 +02:00
Vitaliy Margolen af34ef12ba dinput: Move SetEventNotification and associated event into base class. 2006-10-17 12:36:00 +02:00
Vitaliy Margolen 7d838d9e6f dinput: Use dinput device as a base class for keyboard, mouse and joystick. 2006-10-17 12:35:39 +02:00
Michael Ploujnikov 3438512f53 dinput/tests: Win64 printf format warning fixes. 2006-10-12 11:37:15 +02:00
Vitaliy Margolen 7123f3e80e dinput: Win64 printf format warning fixes. 2006-10-09 12:53:41 +02:00
James Hawkins 553bafd535 dinput: Call missing LeaveCriticalSection in the error case (found by Smatch). 2006-10-06 15:20:41 +02:00
Alexandre Julliard 09371c75d5 dinput: Only register the window class once to avoid race conditions. 2006-10-05 17:45:45 +02:00
Michael Stefaniuc 85ce5117c5 Add a WINE_NO_LONG_INT define to many makefiles to ease the transition of DWORD/LONG/ULONG from long to int. 2006-09-29 16:08:30 +02:00
Ivan Leo db782fe04a dinput: Add some error checks to mouse.c. 2006-09-26 11:39:02 +02:00
Vitaliy Margolen 84b2d73d38 dinput: Initialize default coop level. Invert logic in hook handler. 2006-09-20 20:03:07 +02:00
Vitaliy Margolen adadb5be78 dinput: Return proper errors in SetCooperativeLevel. 2006-09-20 12:24:14 +02:00
Alexandre Julliard 32ab895e46 makefiles: Generate the dependencies line to avoid some code duplication. 2006-09-14 09:38:16 +02:00
Vitaliy Margolen ad045d6e81 dinput: Create/destroy hook thread from DirectInput. 2006-09-13 11:46:25 +02:00
Vitaliy Margolen 722a686d66 dinput: Move hook_thread from device to DirectInput. 2006-09-11 17:45:42 +02:00
Andrew Talbot 78cdd5460c dinput: Cast-qual warnings fix. 2006-09-10 10:16:47 +02:00
Alexandre Julliard 5cf75e615a makefiles: Only run test and documentation targets in directories that need them. 2006-08-28 13:37:44 +02:00
Vitaliy Margolen fd6e974d92 dinput: Signal event after we queued an event. Not before. 2006-08-07 15:35:19 +02:00
Andrew Talbot 70cfb05fc4 dinput/tests: Write-strings warning fix. 2006-07-31 21:57:59 +02:00
Vitaliy Margolen 7f838ca661 dinput: Initialize event sequence counter. And simplify code. 2006-07-31 11:15:21 +02:00
Vitaliy Margolen eb3028acc0 dinput: Add DISCL_NOWINKEY define. 2006-07-29 11:50:19 +02:00
Vitaliy Margolen 6bd7451ece dinput: Keyboard: Use the same event queue mechanism as mouse. 2006-07-28 12:32:08 +02:00
Vitaliy Margolen 3241974ebd dinput: Simplify code a bit. 2006-07-24 12:57:34 +02:00
Vitaliy Margolen b88c1677d1 dinput: Fix small typo. 2006-07-24 12:57:34 +02:00
Kovács András 71924d7da6 dinput: joydev_enum_deviceA now returns the correct value. 2006-07-20 12:10:55 +02:00
Vitaliy Margolen 83bda8e6d4 dinput: Unacquire correct device. 2006-07-17 13:51:31 +02:00