dinput - Allow the use of the standard Joystick GUID when calling CreateDevice

Peter Dons Tychsen donpedro at tdcadsl.dk
Thu Aug 2 18:04:01 CDT 2007


On Fri, 2007-08-03 at 01:02 +0200, Peter Dons Tychsen wrote:
> On Thu, 2007-08-02 at 06:54 -0600, Vitaliy Margolen wrote:
> > Peter Dons Tychsen wrote:
> > > On Tue, 2007-07-31 at 20:05 -0600, Vitaliy Margolen wrote:
> > >> Peter Dons Tychsen wrote:
> > >>> On Tue, 2007-07-31 at 06:34 -0600, Vitaliy Margolen wrote:
> > >>>> Peter Dons Tychsen wrote:
> > >>>>> On Mon, 2007-07-30 at 21:20 +0200, Peter Dons Tychsen wrote:
> > >>>>>> On Sun, 2007-07-29 at 17:43 -0600, Vitaliy Margolen wrote:
> > >>>>>>> Peter Dons Tychsen wrote:
> > >>>>>>>> OK. Please review this diff:
> > >>>>>>>>
> > >>>>>>>> I will re-submit it if you like it.
> > >>>>>>>>
> > >>>>>>>> /Pedro
> > >>>>>>> Alright looks good now (you might want to remove the extra white space your 
> > >>>>>>> patch adds - git complains about those). Just left to make the same change 
> > >>>>>>> to the other joystick interface :)
> > >>>>>>>
> > >>>>>>> BTW don't forget to cc: the wine-devel list when you replying.
> > >>>>>>>
> > >>>>>>> Vitaliy.
> > >>>>>> OK. I still feel that trying to sync joystick_linuxinput.c and
> > >>>>>> joystick_linux.c is out of scope for this patch. But as my steadiness
> > >>>>>> has limits i have done some of it anyway... :). I have kept the changes
> > >>>>>> modest.
> > >>>>>>
> > >>>>>> Please take a look at the new patch.
> > >>>>>>
> > >>>>>> On another note i will agree with you that it would be practical if the
> > >>>>>> two files had similar (or maybe even shared) code. Redundant code is
> > >>>>>> never very practical as it always ends up as this very example. The two
> > >>>>>> implementations which were supposed to identical always drift apart. If
> > >>>>>> things are supposed to do the same, keep them together to begin with.
> > >>>>>>
> > >>>>>> Thanks,
> > >>>>>>
> > >>>>> Maybe i would be more successful if i actually attached the
> > >>>>> patch.... :-)
> > >>>>>
> > >>>>> Here it is....
> > >>>> Just few small things left:
> > >>>>
> > >>>>> -#undef MAX_JOYSTICKS
> > >>>> As I mentioned earlier you should move this instead of removing it completely.
> > >>>>
> > >>>>
> > >>>>>  static HRESULT joydev_create_deviceW(IDirectInputImpl *dinput, REFGUID rguid, REFIID riid, LPDIRECTINPUTDEVICEW* pdev)
> > >>>>>  {
> > >>>>> -  int i;
> > >>>>> -
> > >>>>> -  find_joydevs();
> > >>>> You removed a really important function call here.
> > >>>>
> > >>>>
> > >>>>> +static HRESULT joydev_create_deviceA(IDirectInputImpl *dinput, REFGUID rguid, REFIID riid, LPDIRECTINPUTDEVICEA* pdev)
> > >>>>> +{
> > >>>>> +  unsigned short index;
> > >>>>> +
> > >>>>> +  if ((index = get_joystick_index(rguid)) < MAX_JOYDEV) {
> > >>>>> +    if ((riid == NULL) ||
> > >>>> If you reformat the whole function, please make it 4-space indented.
> > >>>>
> > >>> OK. Here is the new patch:
> > >>>
> > >> Looks good to me. The problem is, it doesn't work for me (USB joystick). I 
> > >> think you forgot to look at how joystick_linuxinput.c handles that data3 
> > >> field. It's not just 0 based index...
> > >>
> > > I told you i should bot have merged the changes over to
> > > joystick_linuxinput as they were too different... :-)
> > > 
> > > OK, so how do i force my system to use the other implementation (so i
> > > can test it) ?
> > > 
> > > I have a Logitech WingMan Extreme (old version).
> > > 
> > Just (re)move /dev/input/js*. Or in dinput change device name to point to 
> > non-existent directory/device (in joystick_linux.c).
> > 
> > Vitaliy.
> 
> OK, fair enough. Even though i did'nt like messing around with
> joystick_linuxinput.c i should have been smarter than trying to submit
> something i could not test... :-(
> 
> But... tada!... now i have re-fixed it and re-tested both
> implementations. Its seems stable now. :-)
> 
> Please give it another go on your machine Vitaliy.
> 
> Cheers,
> 
> /Pedro

As usual, i forgot the patch.... getting late inside my head :-)

Here it is...

/p
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Allow-the-use-of-the-standard-Joystick-GUID-when-cal.patch
Type: application/mbox
Size: 9382 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20070803/ac82debf/0001-Allow-the-use-of-the-standard-Joystick-GUID-when-cal-0001.bin


More information about the wine-devel mailing list