Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 130261
Collapse All | Expand All

(-)dlls/dinput/joystick_linux.c (-8 / +18 lines)
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;
(-)dlls/winmm/joystick/joystick.c (-2 / +6 lines)
Lines 54-60 Link Here
54
#endif
54
#endif
55
#ifdef HAVE_LINUX_JOYSTICK_H
55
#ifdef HAVE_LINUX_JOYSTICK_H
56
#include <linux/joystick.h>
56
#include <linux/joystick.h>
57
#define JOYDEV "/dev/js%d"
57
#define JOYDEV_NEW "/dev/input/js%d"
58
#define JOYDEV_OLD "/dev/js%d"
58
#endif
59
#endif
59
#ifdef HAVE_SYS_ERRNO_H
60
#ifdef HAVE_SYS_ERRNO_H
60
#include <sys/errno.h>
61
#include <sys/errno.h>
Lines 166-177 static int JSTCK_OpenDevice(WINE_JSTCK* Link Here
166
    if (jstick->dev > 0)
167
    if (jstick->dev > 0)
167
      return jstick->dev;
168
      return jstick->dev;
168
169
169
    sprintf(buf, JOYDEV, jstick->joyIntf);
170
    sprintf(buf, JOYDEV_NEW, jstick->joyIntf);
170
#ifdef HAVE_LINUX_22_JOYSTICK_API
171
#ifdef HAVE_LINUX_22_JOYSTICK_API
171
    flags = O_RDONLY | O_NONBLOCK;
172
    flags = O_RDONLY | O_NONBLOCK;
172
#else
173
#else
173
    flags = O_RDONLY;
174
    flags = O_RDONLY;
174
#endif
175
#endif
176
    if ((jstick->dev = open(buf, flags)) < 0) {
177
        sprintf(buf, JOYDEV_OLD, jstick->joyIntf);
178
    }
175
    return (jstick->dev = open(buf, flags));
179
    return (jstick->dev = open(buf, flags));
176
}
180
}
177
181

Return to bug 130261