[haiku-development] Re: Joysticks in Haiku

  • From: "Carwyn" <cdj1000@xxxxxxx>
  • To: <haiku-development@xxxxxxxxxxxxx>
  • Date: Tue, 8 Mar 2011 12:38:59 -0000

At the moment when an a Gravis Gamepad Pro USB is inserted in Haiku,  it is 
identified as a mouse in usb_hid.  The fButtons,  fXAxis and fYAxis already 
have the correct information to use as basic joystick information for a 
BJoystick,  i have created a basic GamepadDevice and modified Joystick cpp and 
have a Joystick working in Haiku.  My question is,  is it possible to modify 
MouseDevice.cpp to not identify Joysticks as Mice,  also how can I identify a 
Gamepad using HIDReportItem,  e.g it’s USAGE_PAGE is 
B_HID_USAGE_PAGE_GENERIC_DESKTOP,  but it’s USAGE is of type GAMEPAD .  You are 
right Enrique the usb hid in Haiku seems easy to use.

Carwyn

From: Enrique Medina Gremaldos 
Sent: Tuesday, March 08, 2011 9:11 AM
To: haiku-development@xxxxxxxxxxxxx 
Subject: [haiku-development] Re: Joysticks in Haiku

With current usb hid infrastructure should be an easy task. I've added support 
for tablet devices, have to polish code a bit before upload the patch.


2011/3/8 Stephan Aßmus <superstippi@xxxxxx>

  Am 08.03.2011 02:51, schrieb Carwyn: 


    Here is some code that works on the original BeOS,  the testjoy app
    from usb_0.50 joystick driver works with this code, when this code is
    compiled with the testjoy.cpp.  Ignore the hack nature of the code as
    it's been created by using the debugger and seeing how the original
    BJoystick worked.



  Both of your mails don't seem to contain a question, but I assume the problem 
is that the Haiku BJoystick implementation and/or backend don't behave like in 
BeOS R5, or aren't compatible with existing applications? I don't really have 
an oppinion about whether it is worth to be behavior compatible, but the 
BJoystick backend should definitely use the existing USB HID driver 
infrastructure nowadays. IIRC, there was some discussion about how to achieve 
this a while back, either in this list (search the archives), or within a Trac 
ticket.

  Best regards,
  -Stephan


Other related posts: