rawfox

joyaxis.patch

Oct 24th, 2020 (edited)
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.10 KB | None | 0 0
  1. diff --git a/dlls/joy.cpl/joy.h b/dlls/joy.cpl/joy.h
  2. index ec7af4f787..672e8995e1 100644
  3. --- a/dlls/joy.cpl/joy.h
  4. +++ b/dlls/joy.cpl/joy.h
  5. @@ -47,8 +47,8 @@ struct Joystick {
  6.      struct Effect *effects;
  7.  };
  8.  
  9. -#define TEST_MAX_BUTTONS    32
  10. -#define TEST_MAX_AXES       4
  11. +#define TEST_MAX_BUTTONS    64
  12. +#define TEST_MAX_AXES       8
  13.  
  14.  struct Graphics {
  15.      HWND hwnd;
  16. diff --git a/dlls/joy.cpl/main.c b/dlls/joy.cpl/main.c
  17. index 4ad9cf848c..35dba75978 100644
  18. --- a/dlls/joy.cpl/main.c
  19. +++ b/dlls/joy.cpl/main.c
  20. @@ -414,6 +414,16 @@ static DWORD WINAPI input_thread(void *param)
  21.          axes_pos[1][1] = state.lRy;
  22.          axes_pos[2][0] = state.lZ;
  23.          axes_pos[2][1] = state.lRz;
  24. +   axes_pos[3][0] = 0;
  25. +   axes_pos[3][1] = 0;
  26. +   axes_pos[4][0] = 0;
  27. +   axes_pos[4][1] = 0;
  28. +   axes_pos[5][0] = 0;
  29. +   axes_pos[5][1] = 0;
  30. +   axes_pos[6][0] = 0;
  31. +   axes_pos[6][1] = 0;
  32. +   axes_pos[7][0] = 0;
  33. +   axes_pos[7][1] = 0;
  34.  
  35.          /* Set pov values */
  36.          for (j = 0; j < ARRAY_SIZE(pov_val); j++)
  37. diff --git a/dlls/winebus.sys/bus_sdl.c b/dlls/winebus.sys/bus_sdl.c
  38. index 0560e4bb12..13d3377b03 100644
  39. --- a/dlls/winebus.sys/bus_sdl.c
  40. +++ b/dlls/winebus.sys/bus_sdl.c
  41. @@ -402,10 +402,10 @@ static BOOL build_report_descriptor(struct platform_private *ext)
  42.      report_size = 0;
  43.  
  44.      axis_count = pSDL_JoystickNumAxes(ext->sdl_joystick);
  45. -    if (axis_count > 6)
  46. +    if (axis_count > 16)
  47.      {
  48. -        FIXME("Clamping joystick to 6 axis\n");
  49. -        axis_count = 6;
  50. +        FIXME("Clamping joystick to 16 axis\n");
  51. +        axis_count = 16;
  52.      }
  53.  
  54.      ext->axis_start = report_size;
  55. @@ -421,9 +421,9 @@ static BOOL build_report_descriptor(struct platform_private *ext)
  56.      ext->ball_start = report_size;
  57.      if (ball_count)
  58.      {
  59. -        if ((ball_count*2) + axis_count > 9)
  60. +        if ((ball_count*2) + axis_count > 19)
  61.          {
  62. -            FIXME("Capping ball + axis at 9\n");
  63. +            FIXME("Capping ball + axis at 19\n");
  64.              ball_count = (9-axis_count)/2;
  65.          }
  66.          descript_size += sizeof(REPORT_AXIS_HEADER);
  67. diff --git a/dlls/winejoystick.drv/joystick_linux.c b/dlls/winejoystick.drv/joystick_linux.c
  68. index 8d1a7b1a25..e579d99aa7 100644
  69. --- a/dlls/winejoystick.drv/joystick_linux.c
  70. +++ b/dlls/winejoystick.drv/joystick_linux.c
  71. @@ -260,9 +260,9 @@ LRESULT driver_joyGetDevCaps(DWORD_PTR dwDevID, LPJOYCAPSW lpCaps, DWORD dwSize)
  72.     lpCaps->wUmax = 0xFFFF;
  73.     lpCaps->wVmin = 0;
  74.     lpCaps->wVmax = 0xFFFF;
  75. -   lpCaps->wMaxAxes = 6; /* same as MS Joystick Driver */
  76. +   lpCaps->wMaxAxes = 16; /* same as MS Joystick Driver */
  77.     lpCaps->wNumAxes = 0; /* nr of axes in use */
  78. -   lpCaps->wMaxButtons = 32; /* same as MS Joystick Driver */
  79. +   lpCaps->wMaxButtons = 64; /* same as MS Joystick Driver */
  80.     lpCaps->szRegKey[0] = 0;
  81.     lpCaps->szOEMVxD[0] = 0;
  82.     lpCaps->wCaps = 0;
  83. @@ -326,6 +326,7 @@ LRESULT driver_joyGetPosEx(DWORD_PTR dwDevID, LPJOYINFOEX lpInfo)
  84.         switch (jstck->axesMap[ev.number]) {
  85.         case 0: /* X */
  86.         case 8: /* Wheel */
  87. +            case 40: /* Mouse-like */
  88.         jstck->x = ev.value;
  89.         break;
  90.         case 1: /* Y */
  91.  
Add Comment
Please, Sign In to add comment