Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fixed bug 2069 - Device addition/removal queries all USB devices rath…
…er than only HID devices.

Andreas Ertelt
SDL_dxjoystick.c is setting the classguid for device (dis)connect events to USB Devices in general:
    dbh.dbcc_classguid = GUID_DEVINTERFACE_USB_DEVICE;

Wouldn't it make more sense to have it just subscribe to Hid device events? This would mean less meaningless events reaching the application.
  • Loading branch information
slouken committed Oct 18, 2013
1 parent 3f8df10 commit 7ad441a
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
5 changes: 3 additions & 2 deletions src/joystick/windows/SDL_dxjoystick.c
Expand Up @@ -53,6 +53,8 @@
#define DIDFT_OPTIONAL 0x80000000
#endif

DEFINE_GUID(GUID_DEVINTERFACE_HID, 0x4D1E55B2L, 0xF16F, 0x11CF, 0x88, 0xCB, 0x00, 0x11, 0x11, 0x00, 0x00, 0x30);


#define INPUT_QSIZE 32 /* Buffer up to 32 input messages */
#define AXIS_MIN -32768 /* minimum value for axis coordinate */
Expand Down Expand Up @@ -387,7 +389,6 @@ SDL_IsXInputDevice( const GUID* pGuidProductFromDirectInput )
};

size_t iDevice;
SDL_bool retval = SDL_FALSE;
UINT i;

if (!s_bXInputEnabled) {
Expand Down Expand Up @@ -507,7 +508,7 @@ SDL_JoystickThread(void *_data)

dbh.dbcc_size = sizeof(dbh);
dbh.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
dbh.dbcc_classguid = GUID_DEVINTERFACE_USB_DEVICE;
dbh.dbcc_classguid = GUID_DEVINTERFACE_HID;

hNotify = RegisterDeviceNotification( messageWindow, &dbh, DEVICE_NOTIFY_WINDOW_HANDLE );
if ( !hNotify )
Expand Down
2 changes: 1 addition & 1 deletion src/joystick/windows/SDL_dxjoystick_c.h
Expand Up @@ -42,7 +42,7 @@
#include <xinput.h>
#include <devguid.h>
#include <dbt.h>
#include <xinput.h>


#ifndef XUSER_MAX_COUNT
#define XUSER_MAX_COUNT 4
Expand Down

0 comments on commit 7ad441a

Please sign in to comment.