[dinput] move the common joystick_map_.* methods from joystick_linuxinput.c into device.c
Christoph Frick
frick at sc-networks.de
Fri Apr 25 19:10:44 CDT 2008
diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c
index 5f927d0..baca0b3 100644
--- a/dlls/dinput/device.c
+++ b/dlls/dinput/device.c
@@ -1400,3 +1400,54 @@ HRESULT WINAPI IDirectInputDevice8WImpl_GetImageInfo(LPDIRECTINPUTDEVICE8W iface
return DI_OK;
}
+
+/*
+ * Maps POV x & y event values to a DX "clock" position:
+ * 0
+ * 31500 4500
+ * 27000 -1 9000
+ * 22500 13500
+ * 18000
+ */
+DWORD joystick_map_pov(POINTL *p)
+{
+ if (p->x > 0)
+ return p->y < 0 ? 4500 : !p->y ? 9000 : 13500;
+ else if (p->x < 0)
+ return p->y < 0 ? 31500 : !p->y ? 27000 : 22500;
+ else
+ return p->y < 0 ? 0 : !p->y ? -1 : 18000;
+}
+
+/*
+ * This maps the read value (from the input event) to a value in the
+ * 'wanted' range.
+ * Notes:
+ * Dead zone is in % multiplied by a 100 (range 0..10000)
+ */
+LONG joystick_map_axis(ObjProps *props, int val)
+{
+ LONG ret;
+ LONG dead_zone = MulDiv( props->lDeadZone, props->lDevMax - props->lDevMin, 10000 );
+ LONG dev_range = props->lDevMax - props->lDevMin - dead_zone;
+
+ /* Center input */
+ val -= (props->lDevMin + props->lDevMax) / 2;
+
+ /* Remove dead zone */
+ if (abs( val ) <= dead_zone / 2)
+ val = 0;
+ else
+ val = val < 0 ? val + dead_zone / 2 : val - dead_zone / 2;
+
+ /* Scale and map the value from the device range into the required range */
+ ret = MulDiv( val, props->lMax - props->lMin, dev_range ) +
+ (props->lMin + props->lMax) / 2;
+
+ TRACE( "(%d <%d> %d) -> (%d <%d> %d): val=%d ret=%d\n",
+ props->lDevMin, dead_zone, props->lDevMax,
+ props->lMin, props->lDeadZone, props->lMax,
+ val, ret );
+
+ return ret;
+}
diff --git a/dlls/dinput/joystick_linuxinput.c b/dlls/dinput/joystick_linuxinput.c
index 50befd9..44076dc 100644
--- a/dlls/dinput/joystick_linuxinput.c
+++ b/dlls/dinput/joystick_linuxinput.c
@@ -66,58 +66,6 @@
WINE_DEFAULT_DEBUG_CHANNEL(dinput);
-
-/*
- * Maps POV x & y event values to a DX "clock" position:
- * 0
- * 31500 4500
- * 27000 -1 9000
- * 22500 13500
- * 18000
- */
-DWORD joystick_map_pov(POINTL *p)
-{
- if (p->x > 0)
- return p->y < 0 ? 4500 : !p->y ? 9000 : 13500;
- else if (p->x < 0)
- return p->y < 0 ? 31500 : !p->y ? 27000 : 22500;
- else
- return p->y < 0 ? 0 : !p->y ? -1 : 18000;
-}
-
-/*
- * This maps the read value (from the input event) to a value in the
- * 'wanted' range.
- * Notes:
- * Dead zone is in % multiplied by a 100 (range 0..10000)
- */
-LONG joystick_map_axis(ObjProps *props, int val)
-{
- LONG ret;
- LONG dead_zone = MulDiv( props->lDeadZone, props->lDevMax - props->lDevMin, 10000 );
- LONG dev_range = props->lDevMax - props->lDevMin - dead_zone;
-
- /* Center input */
- val -= (props->lDevMin + props->lDevMax) / 2;
-
- /* Remove dead zone */
- if (abs( val ) <= dead_zone / 2)
- val = 0;
- else
- val = val < 0 ? val + dead_zone / 2 : val - dead_zone / 2;
-
- /* Scale and map the value from the device range into the required range */
- ret = MulDiv( val, props->lMax - props->lMin, dev_range ) +
- (props->lMin + props->lMax) / 2;
-
- TRACE( "(%d <%d> %d) -> (%d <%d> %d): val=%d ret=%d\n",
- props->lDevMin, dead_zone, props->lDevMax,
- props->lMin, props->lDeadZone, props->lMax,
- val, ret );
-
- return ret;
-}
-
#ifdef HAVE_CORRECT_LINUXINPUT_H
#define EVDEVPREFIX "/dev/input/event"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 163 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20080426/175afbcb/attachment.pgp
More information about the wine-patches
mailing list