Vitaliy Margolen : dinput: Explicitly define ASCII and Unicode methods in joydev joystick.
Alexandre Julliard
julliard at winehq.org
Mon Jan 10 10:55:21 CST 2011
Module: wine
Branch: master
Commit: e6a8aa67d0481693a8c69d02e9f8d76862a778ff
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e6a8aa67d0481693a8c69d02e9f8d76862a778ff
Author: Vitaliy Margolen <wine-patches at kievinfo.com>
Date: Sun Jan 9 15:44:11 2011 -0700
dinput: Explicitly define ASCII and Unicode methods in joydev joystick.
---
dlls/dinput/joystick_linux.c | 45 +++++++++++++++++++++++++++--------------
1 files changed, 29 insertions(+), 16 deletions(-)
diff --git a/dlls/dinput/joystick_linux.c b/dlls/dinput/joystick_linux.c
index c7958ae..a858ecd 100644
--- a/dlls/dinput/joystick_linux.c
+++ b/dlls/dinput/joystick_linux.c
@@ -107,6 +107,14 @@ static inline JoystickImpl *impl_from_IDirectInputDevice8W(IDirectInputDevice8W
{
return (JoystickImpl *) iface;
}
+static inline IDirectInputDevice8A *IDirectInputDevice8A_from_impl(JoystickImpl *This)
+{
+ return (IDirectInputDevice8A *)This;
+}
+static inline IDirectInputDevice8W *IDirectInputDevice8W_from_impl(JoystickImpl *This)
+{
+ return (IDirectInputDevice8W *)This;
+}
static const GUID DInput_Wine_Joystick_GUID = { /* 9e573ed9-7734-11d2-8d4a-23903fb6bdf7 */
0x9e573ed9,
@@ -502,14 +510,14 @@ const struct dinput_device joystick_linux_device = {
/******************************************************************************
* Acquire : gets exclusive control of the joystick
*/
-static HRESULT WINAPI JoystickLinuxAImpl_Acquire(LPDIRECTINPUTDEVICE8A iface)
+static HRESULT WINAPI JoystickLinuxWImpl_Acquire(LPDIRECTINPUTDEVICE8W iface)
{
- JoystickImpl *This = impl_from_IDirectInputDevice8A(iface);
+ JoystickImpl *This = impl_from_IDirectInputDevice8W(iface);
HRESULT res;
TRACE("(%p)\n",This);
- res = IDirectInputDevice2AImpl_Acquire(iface);
+ res = IDirectInputDevice2WImpl_Acquire(iface);
if (res != DI_OK)
return res;
@@ -520,7 +528,7 @@ static HRESULT WINAPI JoystickLinuxAImpl_Acquire(LPDIRECTINPUTDEVICE8A iface)
This->joyfd = open(This->joydev->device, O_RDONLY);
if (This->joyfd==-1) {
ERR("open(%s) failed: %s\n", This->joydev->device, strerror(errno));
- IDirectInputDevice2AImpl_Unacquire(iface);
+ IDirectInputDevice2WImpl_Unacquire(iface);
return DIERR_NOTFOUND;
}
}
@@ -528,17 +536,23 @@ static HRESULT WINAPI JoystickLinuxAImpl_Acquire(LPDIRECTINPUTDEVICE8A iface)
return DI_OK;
}
+static HRESULT WINAPI JoystickLinuxAImpl_Acquire(LPDIRECTINPUTDEVICE8A iface)
+{
+ JoystickImpl *This = impl_from_IDirectInputDevice8A(iface);
+ return JoystickLinuxWImpl_Acquire(IDirectInputDevice8W_from_impl(This));
+}
+
/******************************************************************************
* Unacquire : frees the joystick
*/
-static HRESULT WINAPI JoystickLinuxAImpl_Unacquire(LPDIRECTINPUTDEVICE8A iface)
+static HRESULT WINAPI JoystickLinuxWImpl_Unacquire(LPDIRECTINPUTDEVICE8W iface)
{
- JoystickImpl *This = impl_from_IDirectInputDevice8A(iface);
+ JoystickImpl *This = impl_from_IDirectInputDevice8W(iface);
HRESULT res;
TRACE("(%p)\n",This);
- res = IDirectInputDevice2AImpl_Unacquire(iface);
+ res = IDirectInputDevice2WImpl_Unacquire(iface);
if (res != DI_OK)
return res;
@@ -553,6 +567,12 @@ static HRESULT WINAPI JoystickLinuxAImpl_Unacquire(LPDIRECTINPUTDEVICE8A iface)
return DI_NOEFFECT;
}
+static HRESULT WINAPI JoystickLinuxAImpl_Unacquire(LPDIRECTINPUTDEVICE8A iface)
+{
+ JoystickImpl *This = impl_from_IDirectInputDevice8A(iface);
+ return JoystickLinuxWImpl_Unacquire(IDirectInputDevice8W_from_impl(This));
+}
+
static void joy_polldev(LPDIRECTINPUTDEVICE8A iface)
{
struct pollfd plfd;
@@ -665,12 +685,6 @@ static const IDirectInputDevice8AVtbl JoystickAvt =
IDirectInputDevice8AImpl_GetImageInfo
};
-#if !defined(__STRICT_ANSI__) && defined(__GNUC__)
-# define XCAST(fun) (typeof(JoystickWvt.fun))
-#else
-# define XCAST(fun) (void*)
-#endif
-
static const IDirectInputDevice8WVtbl JoystickWvt =
{
IDirectInputDevice2WImpl_QueryInterface,
@@ -680,8 +694,8 @@ static const IDirectInputDevice8WVtbl JoystickWvt =
IDirectInputDevice2WImpl_EnumObjects,
JoystickWGenericImpl_GetProperty,
JoystickWGenericImpl_SetProperty,
- XCAST(Acquire)JoystickLinuxAImpl_Acquire,
- XCAST(Unacquire)JoystickLinuxAImpl_Unacquire,
+ JoystickLinuxWImpl_Acquire,
+ JoystickLinuxWImpl_Unacquire,
JoystickWGenericImpl_GetDeviceState,
IDirectInputDevice2WImpl_GetDeviceData,
IDirectInputDevice2WImpl_SetDataFormat,
@@ -706,7 +720,6 @@ static const IDirectInputDevice8WVtbl JoystickWvt =
IDirectInputDevice8WImpl_SetActionMap,
IDirectInputDevice8WImpl_GetImageInfo
};
-#undef XCAST
#else /* HAVE_LINUX_22_JOYSTICK_API */
More information about the wine-cvs
mailing list