diff options
author | jmcneill <jmcneill> | 2015-02-06 01:27:25 +0000 |
---|---|---|
committer | jmcneill <jmcneill> | 2015-02-06 01:27:25 +0000 |
commit | 973e2742546885462b1bf75338c5b750483f207d (patch) | |
tree | e6f6b55bbc7838e2a03aa147b294d8d0bfd2e7d2 /devel | |
parent | e9e7b5d5e98daac5df0c26bc2423bd4ac75629a2 (diff) | |
download | pkgsrc-973e2742546885462b1bf75338c5b750483f207d.tar.gz |
Instead of naming USB joysticks by device name ("/dev/uhid3"), try to give
it a more helpful name ("Logitech Cordless RumblePad 2 @ /dev/uhid3")
Diffstat (limited to 'devel')
-rw-r--r-- | devel/SDL/distinfo | 4 | ||||
-rw-r--r-- | devel/SDL/patches/patch-src_joystick_bsd_SDL__sysjoystick.c | 43 |
2 files changed, 43 insertions, 4 deletions
diff --git a/devel/SDL/distinfo b/devel/SDL/distinfo index 715e1c0226f..95665cf2f7a 100644 --- a/devel/SDL/distinfo +++ b/devel/SDL/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.73 2015/02/05 08:57:53 wiz Exp $ +$NetBSD: distinfo,v 1.74 2015/02/06 01:27:25 jmcneill Exp $ SHA1 (SDL-1.2.15.tar.gz) = 0c5f193ced810b0d7ce3ab06d808cbb5eef03a2c RMD160 (SDL-1.2.15.tar.gz) = d4802a090cb4a24eeb0c8ce5690802f596d394c3 @@ -6,7 +6,7 @@ Size (SDL-1.2.15.tar.gz) = 3920622 bytes SHA1 (patch-aa) = 00fb7a85caf8fc9f08298d0a07a4587757fdffb0 SHA1 (patch-ac) = 8b2dddff9ad449b19b35ef364e2d960e46284563 SHA1 (patch-src_audio_sun_SDL__sunaudio.c) = 4b492b40d39e6444037dfda55766e4a149cc6c30 -SHA1 (patch-src_joystick_bsd_SDL__sysjoystick.c) = 67ce00658aa5cf43d86748955520a16e62afd074 +SHA1 (patch-src_joystick_bsd_SDL__sysjoystick.c) = 62add37324a9c164dbc9281d59089dc445fde3e9 SHA1 (patch-src_video_quartz_SDL__QuartzVideo.h) = 19d952bade06dbd646e94f42139c38436969b1a8 SHA1 (patch-src_video_wscons_SDL__wsconsevents.c) = 1c874c46edb325907eda3bfa7580c788294f6d21 SHA1 (patch-src_video_wscons_SDL__wsconsevents__c.h) = 97206e2aca0b620005217d9d07ad1177516cac92 diff --git a/devel/SDL/patches/patch-src_joystick_bsd_SDL__sysjoystick.c b/devel/SDL/patches/patch-src_joystick_bsd_SDL__sysjoystick.c index 88395d2d674..66539784295 100644 --- a/devel/SDL/patches/patch-src_joystick_bsd_SDL__sysjoystick.c +++ b/devel/SDL/patches/patch-src_joystick_bsd_SDL__sysjoystick.c @@ -1,4 +1,4 @@ -$NetBSD: patch-src_joystick_bsd_SDL__sysjoystick.c,v 1.2 2015/02/04 23:51:26 jmcneill Exp $ +$NetBSD: patch-src_joystick_bsd_SDL__sysjoystick.c,v 1.3 2015/02/06 01:27:25 jmcneill Exp $ --- src/joystick/bsd/SDL_sysjoystick.c.orig 2012-01-19 06:30:06.000000000 +0000 +++ src/joystick/bsd/SDL_sysjoystick.c @@ -25,7 +25,46 @@ $NetBSD: patch-src_joystick_bsd_SDL__sysjoystick.c,v 1.2 2015/02/04 23:51:26 jmc #define REP_BUF_DATA(rep) ((rep)->buf->ugd_data) #else #define REP_BUF_DATA(rep) ((rep)->buf->data) -@@ -386,6 +388,11 @@ SDL_SYS_JoystickOpen(SDL_Joystick *joy) +@@ -314,6 +316,38 @@ SDL_SYS_JoystickOpen(SDL_Joystick *joy) + #endif + rep->rid = -1; /* XXX */ + } ++#if defined(__NetBSD__) ++ usb_device_descriptor_t udd; ++ struct usb_string_desc usd; ++ if (ioctl(fd, USB_GET_DEVICE_DESC, &udd) == -1) ++ goto desc_failed; ++ ++ /* Get default language */ ++ usd.usd_string_index = USB_LANGUAGE_TABLE; ++ usd.usd_language_id = 0; ++ if (ioctl(fd, USB_GET_STRING_DESC, &usd) == -1 || usd.usd_desc.bLength < 4) { ++ usd.usd_language_id = 0; ++ } else { ++ usd.usd_language_id = UGETW(usd.usd_desc.bString[0]); ++ } ++ ++ usd.usd_string_index = udd.iProduct; ++ if (ioctl(fd, USB_GET_STRING_DESC, &usd) == 0) { ++ char str[128]; ++ char *new_name = NULL; ++ int i; ++ for (i = 0; i < (usd.usd_desc.bLength >> 1) - 1 && i < sizeof(str) - 1; i++) { ++ str[i] = UGETW(usd.usd_desc.bString[i]); ++ } ++ str[i] = '\0'; ++ asprintf(&new_name, "%s @ %s", str, path); ++ if (new_name != NULL) { ++ free(joydevnames[joy->index]); ++ joydevnames[joy->index] = new_name; ++ } ++ } ++desc_failed: ++#endif + if (report_alloc(rep, hw->repdesc, REPORT_INPUT) < 0) { + goto usberr; + } +@@ -386,6 +420,11 @@ SDL_SYS_JoystickOpen(SDL_Joystick *joy) if (hw->axis_map[i] > 0) hw->axis_map[i] = joy->naxes++; |