Commit Graph

593 Commits (ebca9566d7fa42ee06e7eed44c70edd5310ee3fa)

Author SHA1 Message Date
nirenjan e3758a2f29
Remove udev rules from default configure command.
The configuration options describes the method to override the udev rules directory.
It is not necessary to add it as the default in the build/install instructions.
2021-01-26 22:14:05 -08:00
nirenjan b9ef8a82d6 Update Changelog.md to list LKM and udev changes
[skip ci]
2020-12-26 15:02:25 -08:00
nirenjan abb366d89c Allow udev rules to be configured at build time [#25]
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.
2020-12-25 15:17:52 -08:00
nirenjan 59c4643474
Update install instructions in INSTALL.md
Fixes #24
2020-12-25 13:53:37 -08:00
nirenjan 1df4f29d4e
Add kernel versions that have the quirks fix 2020-09-17 17:06:39 -07:00
nirenjan 7f554d7ac6 Make button reports consistent between devices
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.
2020-08-16 01:59:27 -07:00
nirenjan 482c5980ab Fix axis report to correctly report slider and rotaries 2020-08-13 15:18:44 -07:00
nirenjan b0150c46b8 Remove unnecessary probe and remove functions
There's no need to create custom probe and remove functions - the
default behavior is sufficient.
2020-08-13 15:17:14 -07:00
nirenjan 4388eceec0 Create workflow to build kernel module
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.
2020-08-13 03:17:35 -07:00
nirenjan d3c55da89d Create HID driver for Saitek X52 and X52 Pro
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]
2020-08-12 01:11:15 -07:00
nirenjan 3409a7bad6 Remove Travis CI badge
[skip ci]
2020-08-07 23:25:34 -07:00
nirenjan 1fa4cb4eb4 Remove integration with Travis CI
[skip ci]
2020-08-07 23:22:41 -07:00
nirenjan dcb5b60cdf Add actions badge to README
[skip ci]
2020-08-07 23:16:51 -07:00
nirenjan d77342ced9 Skip CI jobs if corresponding tag is in HEAD commit 2020-08-07 23:16:23 -07:00
nirenjan 1119fe3373 Add CI using Github Actions
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.
2020-08-07 23:01:24 -07:00
nirenjan 4f39078998 Fix install error on macOS when doxygen is found
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.
2020-08-07 23:00:50 -07:00
nirenjan 53f9c33ffa Allow failure when installing udev rules
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.
2020-07-19 22:19:25 -07:00
nirenjan 55c1fadba6 Update package list for Arch Linux
[skip ci]
2020-07-19 15:17:17 -07:00
nirenjan 9fb2d246c6 Move headers to $(includedir)/libx52 2020-07-17 15:27:42 -07:00
nirenjan 9486d1dbe4 Merge branch 'interface-io' 2020-07-16 16:19:27 -07:00
nirenjan ed654f501a Update changelog
[skip ci]
2020-07-16 04:32:40 -07:00
nirenjan 104fcb46f9 Add denoising to x52evtest 2020-07-16 04:25:48 -07:00
nirenjan 798714dd1c Add thumbstick test cases 2020-07-16 03:53:25 -07:00
nirenjan 453f9517d9 Add button and hat test cases 2020-07-16 03:41:32 -07:00
nirenjan 869d564aa3 Add more parser test cases 2020-07-14 00:47:13 -07:00
nirenjan 1d5e1073ce Update translation templates 2020-07-13 18:05:22 -07:00
nirenjan 22d4218189
Merge pull request #22 from gitter-badger/gitter-badge
Add a Gitter chat badge to README.md
2020-07-13 14:19:50 -07:00
The Gitter Badger 5108e34ce8 Add Gitter badge 2020-07-13 21:16:53 +00:00
nirenjan afb442d9c4 Add device info to x52evtest output 2020-07-12 02:13:03 -07:00
nirenjan f6136fcef0 Add device info API 2020-07-12 00:08:33 -07:00
nirenjan c8ad37b3f7 Save USB device strings when opening HID device
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.
2020-07-11 17:13:27 -07:00
nirenjan 81cb7367f8 Fix test builds on OSX 2020-07-11 11:31:09 -07:00
nirenjan b766fb75fa Make timeval printing portable 2020-07-11 10:46:04 -07:00
nirenjan 597c73ab35 Enable i18n for x52evtest 2020-07-11 00:21:28 -07:00
nirenjan 46bd78bdd9 Add event test utility
This change is a wrapper around libx52io to print the raw events coming
from the X52 device.
2020-07-11 00:15:14 -07:00
nirenjan 4982071764 Map hat to axis 2020-07-11 00:09:39 -07:00
nirenjan 62894dea43 Add string representations and associated i18n 2020-07-10 18:01:53 -07:00
nirenjan a0b7769dab Add HATX and HATY axis values 2020-07-10 17:26:23 -07:00
nirenjan 2c40785c2b Add test suite for parser - WIP 2020-07-10 02:35:53 -07:00
nirenjan 4bd3ae69fe Fix builds on OSX 2020-07-09 16:21:40 -07:00
nirenjan 16cb1e4698 Implement libx52io read APIs 2020-07-09 15:12:55 -07:00
nirenjan 9ab3cce73e Fix report format to correctly handle mouse stick
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.
2020-07-09 02:44:31 -07:00
nirenjan 4f18aa3dc8 Add tests for axis API 2020-07-09 01:53:54 -07:00
nirenjan cf6c458fae Update dependencies in INSTALL.md
[skip ci]
2020-07-08 17:39:29 -07:00
nirenjan 63a2f465d2 Replace hard-coded values with #define's 2020-07-08 17:35:17 -07:00
nirenjan 9d3acfd35a Add report parser implementation 2020-07-08 17:28:06 -07:00
nirenjan aebd5e14f9 Add axis API implementation 2020-07-08 16:43:20 -07:00
nirenjan 329274e6c9 Add initial version of libx52io 2020-07-08 00:33:03 -07:00
nirenjan bcc90ac24e Add HIDAPI to build dependencies 2020-07-05 16:19:04 -07:00
nirenjan 1cbad472df Revert "Save PID in libx52_device structure"
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.
2020-07-05 16:10:23 -07:00