2 changed files with 81 additions and 2 deletions
@ -0,0 +1,77 @@ |
|||||||
|
|
||||||
|
$FreeBSD: ports/devel/sdl12/files/patch-src::joystick::bsd::SDL_sysjoystick.c,v 1.2 2002/04/18 08:10:01 sobomax Exp $
|
||||||
|
|
||||||
|
--- src/joystick/bsd/SDL_sysjoystick.c.orig Sun Mar 10 05:49:25 2002
|
||||||
|
+++ src/joystick/bsd/SDL_sysjoystick.c Thu Apr 18 10:48:00 2002
|
||||||
|
@@ -41,7 +41,11 @@
|
||||||
|
|
||||||
|
#include <dev/usb/usb.h>
|
||||||
|
#include <dev/usb/usbhid.h>
|
||||||
|
-#include <usbhid.h>
|
||||||
|
+#if !defined(HAVE_LIBUSBHID_H)
|
||||||
|
+#include <libusb.h>
|
||||||
|
+#else
|
||||||
|
+#include <libusbhid.h>
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#include "SDL_error.h"
|
||||||
|
#include "SDL_joystick.h"
|
||||||
|
@@ -205,7 +209,8 @@
|
||||||
|
joy->nballs = 0;
|
||||||
|
|
||||||
|
while (hid_get_item(hdata, &hitem) > 0) {
|
||||||
|
- char *s, *sp;
|
||||||
|
+ const char *s;
|
||||||
|
+ char *sp;
|
||||||
|
|
||||||
|
switch (hitem.kind) {
|
||||||
|
case hid_collection:
|
||||||
|
@@ -275,7 +280,7 @@
|
||||||
|
Sint32 v;
|
||||||
|
|
||||||
|
rep = &joy->hwdata->inreport;
|
||||||
|
- if (read(joy->hwdata->fd, rep->buf->data, rep->size) != rep->size) {
|
||||||
|
+ if (read(joy->hwdata->fd, rep->buf->ucr_data, rep->size) != rep->size) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
hdata = hid_start_parse(joy->hwdata->repdesc, 1 << hid_input);
|
||||||
|
@@ -310,7 +315,7 @@
|
||||||
|
goto scaleaxe;
|
||||||
|
}
|
||||||
|
scaleaxe:
|
||||||
|
- v = (Sint32)hid_get_data(rep->buf->data, &hitem);
|
||||||
|
+ v = (Sint32)hid_get_data(rep->buf->ucr_data, &hitem);
|
||||||
|
if (v != 127) {
|
||||||
|
if (v < 127) {
|
||||||
|
v = -(256 - v);
|
||||||
|
@@ -329,7 +334,7 @@
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case HUP_BUTTON:
|
||||||
|
- v = (Sint32)hid_get_data(rep->buf->data,
|
||||||
|
+ v = (Sint32)hid_get_data(rep->buf->ucr_data,
|
||||||
|
&hitem);
|
||||||
|
if (joy->buttons[nbutton] != v) {
|
||||||
|
SDL_PrivateJoystickButton(joy,
|
||||||
|
@@ -381,7 +386,12 @@
|
||||||
|
{
|
||||||
|
int len;
|
||||||
|
|
||||||
|
+#if !defined(HAVE_LIBUSBHID_H)
|
||||||
|
len = hid_report_size(rd, repinfo[repind].kind, &r->rid);
|
||||||
|
+#else
|
||||||
|
+ len = hid_report_size(rd, r->rid, repinfo[repind].kind);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
if (len < 0) {
|
||||||
|
SDL_SetError("Negative HID report size");
|
||||||
|
return (-1);
|
||||||
|
@@ -389,7 +399,7 @@
|
||||||
|
r->size = len;
|
||||||
|
|
||||||
|
if (r->size > 0) {
|
||||||
|
- r->buf = malloc(sizeof(*r->buf) - sizeof(r->buf->data) +
|
||||||
|
+ r->buf = malloc(sizeof(*r->buf) - sizeof(r->buf->ucr_data) +
|
||||||
|
r->size);
|
||||||
|
if (r->buf == NULL) {
|
||||||
|
SDL_OutOfMemory();
|
||||||
Loading…
Reference in new issue