Module: wine Branch: master Commit: b56953f49d11436598fde1d663fd4afcfcc10997 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b56953f49d11436598fde1d663...
Author: Damjan Jovanovic damjan.jov@gmail.com Date: Mon Nov 6 08:28:29 2006 +0200
dinput: Changed select to poll.
---
dlls/dinput/joystick_linux.c | 12 +++++++----- dlls/dinput/joystick_linuxinput.c | 13 +++++++------ 2 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/dlls/dinput/joystick_linux.c b/dlls/dinput/joystick_linux.c index 9ffab1f..c43bfa9 100644 --- a/dlls/dinput/joystick_linux.c +++ b/dlls/dinput/joystick_linux.c @@ -53,6 +53,9 @@ #endif #ifdef HAVE_LINUX_JOYSTICK_H # include <linux/joystick.h> #endif +#ifdef HAVE_SYS_POLL_H +# include <sys/poll.h> +#endif
#include "wine/debug.h" #include "wine/unicode.h" @@ -897,8 +900,7 @@ static LONG calculate_pov(JoystickImpl * }
static void joy_polldev(JoystickImpl *This) { - struct timeval tv; - fd_set readfds; + struct pollfd plfd; struct js_event jse; TRACE("(%p)\n", This);
@@ -907,9 +909,9 @@ static void joy_polldev(JoystickImpl *Th return; } while (1) { - memset(&tv,0,sizeof(tv)); - FD_ZERO(&readfds);FD_SET(This->joyfd,&readfds); - if (1>select(This->joyfd+1,&readfds,NULL,NULL,&tv)) + plfd.fd = This->joyfd; + plfd.events = POLLIN; + if (poll(&plfd,1,0) != 1) return; /* we have one event, so we can read */ if (sizeof(jse)!=read(This->joyfd,&jse,sizeof(jse))) { diff --git a/dlls/dinput/joystick_linuxinput.c b/dlls/dinput/joystick_linuxinput.c index 85d1fdf..d7d4139 100644 --- a/dlls/dinput/joystick_linuxinput.c +++ b/dlls/dinput/joystick_linuxinput.c @@ -48,6 +48,9 @@ # if defined(EVIOCGBIT) && defined(EV_AB # define HAVE_CORRECT_LINUXINPUT_H # endif #endif +#ifdef HAVE_SYS_POLL_H +# include <sys/poll.h> +#endif
#include "wine/debug.h" #include "wine/unicode.h" @@ -860,8 +863,7 @@ static void calculate_ids(LPDIDATAFORMAT }
static void joy_polldev(JoystickImpl *This) { - struct timeval tv; - fd_set readfds; + struct pollfd plfd; struct input_event ie; int btn, offset;
@@ -869,11 +871,10 @@ static void joy_polldev(JoystickImpl *Th return;
while (1) { - memset(&tv,0,sizeof(tv)); - FD_ZERO(&readfds); - FD_SET(This->joyfd,&readfds); + plfd.fd = This->joyfd; + plfd.events = POLLIN;
- if (1>select(This->joyfd+1,&readfds,NULL,NULL,&tv)) + if (poll(&plfd,1,0) != 1) return;
/* we have one event, so we can read */