Lines 69-75
WINE_DEFAULT_DEBUG_CHANNEL(dinput);
Link Here
|
69 |
|
69 |
|
70 |
#ifdef HAVE_LINUX_22_JOYSTICK_API |
70 |
#ifdef HAVE_LINUX_22_JOYSTICK_API |
71 |
|
71 |
|
72 |
#define JOYDEV "/dev/js" |
72 |
#define JOYDEV_NEW "/dev/input/js" |
|
|
73 |
#define JOYDEV_OLD "/dev/js" |
73 |
|
74 |
|
74 |
typedef struct { |
75 |
typedef struct { |
75 |
LONG lMin; |
76 |
LONG lMin; |
Lines 148-153
static void _dump_DIDEVCAPS(LPDIDEVCAPS
Link Here
|
148 |
} |
149 |
} |
149 |
} |
150 |
} |
150 |
|
151 |
|
|
|
152 |
static int joydev_get_device(char *dev, int id) |
153 |
{ |
154 |
int ret; |
155 |
sprintf(dev, "%s%d", JOYDEV_NEW, id); |
156 |
if ((ret = open(dev, O_RDONLY)) < 0) { |
157 |
sprintf(dev, "%s%d", JOYDEV_OLD, id); |
158 |
if ((ret = open(dev, O_RDONLY)) < 0) { |
159 |
return -1; |
160 |
} |
161 |
} |
162 |
return ret; |
163 |
} |
164 |
|
151 |
static BOOL joydev_enum_deviceA(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEA lpddi, DWORD version, int id) |
165 |
static BOOL joydev_enum_deviceA(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEA lpddi, DWORD version, int id) |
152 |
{ |
166 |
{ |
153 |
int fd = -1; |
167 |
int fd = -1; |
Lines 162-169
static BOOL joydev_enum_deviceA(DWORD dw
Link Here
|
162 |
((dwDevType == DIDEVTYPE_JOYSTICK) && (version > 0x0300 && version < 0x0800)) || |
176 |
((dwDevType == DIDEVTYPE_JOYSTICK) && (version > 0x0300 && version < 0x0800)) || |
163 |
(((dwDevType == DI8DEVCLASS_GAMECTRL) || (dwDevType == DI8DEVTYPE_JOYSTICK)) && (version >= 0x0800))) { |
177 |
(((dwDevType == DI8DEVCLASS_GAMECTRL) || (dwDevType == DI8DEVTYPE_JOYSTICK)) && (version >= 0x0800))) { |
164 |
/* check whether we have a joystick */ |
178 |
/* check whether we have a joystick */ |
165 |
sprintf(dev, "%s%d", JOYDEV, id); |
179 |
if ((fd = joydev_get_device(dev, id)) < 0) { |
166 |
if ((fd = open(dev,O_RDONLY)) < 0) { |
|
|
167 |
WARN("open(%s,O_RDONLY) failed: %s\n", dev, strerror(errno)); |
180 |
WARN("open(%s,O_RDONLY) failed: %s\n", dev, strerror(errno)); |
168 |
return FALSE; |
181 |
return FALSE; |
169 |
} |
182 |
} |
Lines 212-219
static BOOL joydev_enum_deviceW(DWORD dw
Link Here
|
212 |
((dwDevType == DIDEVTYPE_JOYSTICK) && (version > 0x0300 && version < 0x0800)) || |
225 |
((dwDevType == DIDEVTYPE_JOYSTICK) && (version > 0x0300 && version < 0x0800)) || |
213 |
(((dwDevType == DI8DEVCLASS_GAMECTRL) || (dwDevType == DI8DEVTYPE_JOYSTICK)) && (version >= 0x0800))) { |
226 |
(((dwDevType == DI8DEVCLASS_GAMECTRL) || (dwDevType == DI8DEVTYPE_JOYSTICK)) && (version >= 0x0800))) { |
214 |
/* check whether we have a joystick */ |
227 |
/* check whether we have a joystick */ |
215 |
sprintf(dev, "%s%d", JOYDEV, id); |
228 |
if ((fd = joydev_get_device(dev, id)) < 0) { |
216 |
if ((fd = open(dev,O_RDONLY)) < 0) { |
|
|
217 |
WARN("open(%s,O_RDONLY) failed: %s\n", dev, strerror(errno)); |
229 |
WARN("open(%s,O_RDONLY) failed: %s\n", dev, strerror(errno)); |
218 |
return FALSE; |
230 |
return FALSE; |
219 |
} |
231 |
} |
Lines 450-458
static HRESULT alloc_device(REFGUID rgui
Link Here
|
450 |
return DIERR_OUTOFMEMORY; |
462 |
return DIERR_OUTOFMEMORY; |
451 |
} |
463 |
} |
452 |
|
464 |
|
453 |
sprintf(newDevice->dev, "%s%d", JOYDEV, rguid->Data3); |
465 |
if ((newDevice->joyfd = joydev_get_device(newDevice->dev, rguid->Data3)) < 0) { |
454 |
|
|
|
455 |
if ((newDevice->joyfd = open(newDevice->dev,O_RDONLY)) < 0) { |
456 |
WARN("open(%s,O_RDONLY) failed: %s\n", newDevice->dev, strerror(errno)); |
466 |
WARN("open(%s,O_RDONLY) failed: %s\n", newDevice->dev, strerror(errno)); |
457 |
HeapFree(GetProcessHeap(), 0, newDevice); |
467 |
HeapFree(GetProcessHeap(), 0, newDevice); |
458 |
return DIERR_DEVICENOTREG; |
468 |
return DIERR_DEVICENOTREG; |