This pipeline builds the driver against the latest Xserver stable
release as well as current master.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Add the following forms for issue creation:
* Bug report
* Feature request
* Code change
* Documentation update
* Organizational task
* add issue type selection page on "New Issue" call
* mention Github Discussions and the mailing list where appropriate
Part-of: X11Libre/misc#156
Signed-off-by: callmetango <callmetango@users.noreply.github.com>
These functions have been replaced by input_lock() and input_unlock()
about a decade ago and only exisiting as inlined wrappers.
v2: increase required server version to 1.18.99.2
No need to support almost 1.5 decades old and unmaintained Xserver version,
almost one decade is more than enough ;-)
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Keep things simple by handling server managed fds in the common parts
of the open and close paths.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This is a preparation patch for adding support for server managed fds.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This is a preparation patch for adding support for server managed fds, this
also fixes a missing free() in an error handling path in the evdev back-end.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
see discussion: https://bugs.gentoo.org/show_bug.cgi?id=403003
distributions should not ship the module enabled by default, because a lot
of users have the joystick module installed without knowing, resulting in
confusion and bad user experience when trying to play games, the more
likely usecase when plugging in a joystick.
the default configuration only fits for a limited number of users.
it does not make much sense to automatically enable hotplugging of the
module without explicit user consent and reviewing of the configuration.
Signed-off-by: Sascha Hlusiak <saschahlusiak@arcor.de>
reference: https://bugs.freedesktop.org/show_bug.cgi?id=42399
joysticks with a rectangular field have a
corner position of (32768,32768), joysticks with a
circular field have (23170,23170).
make sure that diagonal movement feels fast. either:
1) linear
f(32768) ~= f(23170) + f(23170)
f(32768) ~= a * f(23170)
a = 2.0
on circular joysticks, the time needed for xy movement is
exactly the time needed for x + the time for y separately.
absolute diagonal travel speed (in cm/s) is 0.707 times as fast,
which feels pretty slow.
on square joysticks, diagonal travel speed is always 1.41 times
faster than orthogonal travel speed. time needed for diagonal
movement is always 0.5 times as long as for orthogonal movement.
the value of a = 2.0 results in a nice, non-linear acceleration.
or
2) trigonometric
f(32768) ~= sqrt(f(23170)^2 + f(23170)^2))
f(32768) ~= a * f(23170)
a = 1.414
on circular joysticks, the absolute pointer travel speed
(in cm/s) is now the same for both linear and diagonal movement,
which feels natural. moving diagonally takes 0.707 times the time
of moving orthogonally.
on square joysticks, values are as in 1)
the value of a = 1.414 results in linear acceleration, which feels
too slow.
to maintain non-linear acceleration, make sure that:
a >>= 1.414
the following formula achieves results inbetween,
so it should feel natural on both devices while maintaining a
nice acceleration:
f(32768) ~= 1.620 * f(23170)
The module scales all axis values from the kernel to the range of
-32768 .. 32768, for compatibility with the old joystick kernel module.
The current implementation had an integer overflow, if the axis had a high
resolution of > 16384, like the popular XBox 360 controller.
This commitmakes the scaling use float instead to fix erratic behaviour
on high resolution joysticks. The joystick backend was not affected.
Fixes bug: https://bugs.freedesktop.org/show_bug.cgi?id=42399
Excerpt https://lists.gnu.org/archive/html/automake/2012-12/msg00038.html
- Support for the long-deprecated INCLUDES variable will be removed
altogether in Automake 1.14. The AM_CPPFLAGS variable should be
used instead.
This variable was deprecated in Automake releases prior to 1.10, which is the
current minimum level required to build X.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
there are rare cases when disabling debug code gives any benefit but the lack of debugging output,
which needs to be enabled anyway with the DebugLevel option
udev does copy the Driver line to the list of options, but when manually
specifying the driver in xorg.conf, the option "Driver" is unset. Because we
do hotplug a sub-device from within the core device, we need the "Driver"
option to be present in the list.
This should fix archlinux bug #23577:
https://bugs.archlinux.org/task/23577
Thanks to Malek for coming up with a fix.
Signed-off-by: Sascha Hlusiak <contact@saschahlusiak.de>
ABI 14 made the InputOption type opaque, move the existing code to ifdefs
and use the new function calls otherwise.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
xf86OptionListDuplicate() duplicates an XF86Option list, not an InputOption
list.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Buttons are labeled "Button %d", starting with 0 and representing the button in X _after_ mapping.
Mapping can be changed while running so the labels will be constant.
Axes are labeled "Axis %d", starting with 1, representing the _physical_ axis that reports the valuator
data. The raw valuators can't be dynamically mapped, the first two valuators always are labeled "Rel X"
and "Rel Y", representing the aggregated post-calculation data from all axes.
Signed-off-by: Sascha Hlusiak <saschahlusiak@arcor.de>
the axis keys high/low properties were inconsistently capitalized,
leading to potential confusion as to why one works but not the other.
Signed-off-by: Devin J. Pohly <djpohly+xorg@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>