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.