Prior to this change, the udev rules were fixed to allow read-write
access only to the `plugdev` group. However, while this is the default
group for USB input devices on Debian and its derivatives, this is not
true for some systems such as openSUSE, which use `input` as the group.
This change adds a `--with-input-group` argument to `configure`, which
defaults to `plugdev`. This change also updates the install
documentation to reflect the new options.
The X52 and X52 Pro report the buttons in different orders, e.g., the
mouse primary button is button 30 on X52, but is button 15 on the Pro.
This change ensures that the reported values is consistent between the
different devices.
This workflow runs only if there is a change to the kernel_module path.
Consequently, commits that only impact the kernel_module will be ignored
for the standard userspace driver build.
This commit also updates the CodeQL workflow to only run on a scheduled
basis and on pull requests, but not on every push, since this is a
fairly slow script.
Finally, this commit also removes the obsolete kernel module sources,
since they are no longer maintained, and it also provides a hook for
Github actions to pick up and execute the kernel workflow.
This change replaces the old USB driver with a more modern HID driver.
This uses the HID framework, which means that we don't have to deal with
the USB transport, and only have to parse and report input events.
[skip ci]
This commit adds workflows to handle the continuous integration builds
as well as the CodeQL analysis on each push. This also adds a workflow
to create a release and upload the orig.tar.gz file when pushing a tag.
The `install` command on macOS does not support the `-D` flag. It is not
required anyway, since the directory components are created by the
previous line.
This commit also updates the options to rsync to not copy in 'archive'
mode. Because it is used in `make install`, it is likely to be run as
root, and therefore, the root user should own the files in the
destination directory.
When testing make install in a container, or if being run with fakeroot,
it is possible that the udevadm commands may fail, which will abort the
install. Therefore, allow the udev install hook to always pass.
This change saves the manufacturer, product and serial number strings in
a multibyte format, so that it can be used by the clients of the library
to print details about the connected device. This also ensures that
those multibyte strings are freed when closing the device.
Prior to this change, the report parser treated the mouse stick axes in
the reverse order of the USB HID report descriptor.
This change fixes that issue and also updates the specification
documentation to reflect it correctly.
This reverts commit f963991161.
The updated design uses hidapi to create a separate connection to the
X52 device, and libx52 is limited to only dealing with the vendor
specific commands.
This will support a parser interface which will parse the HID report
from the X52, but given that the device has different PIDs, the parser
will need to behave differently depending on the PID.