Commit Graph

125 Commits (2cc3cc5bfe418388efc72d44039002b9c9ad2ff7)

Author SHA1 Message Date
nirenjan a39945f461 Import inih library into source tree
Prior to this change, the user needed to install inih as a dependency,
either from the distribution repositories, or from source. On some
platforms (notably macOS), inih is not available prepackaged, and must
be installed by the user. This tends to cause needless friction.

This change imports the ini.c and ini.h files from the upstream inih
repository into the X52 source tree. This will allow us to build the
repository on any system with the original set of dependencies, and not
have to force the user to install packages themselves.
2021-08-26 22:16:38 -07:00
nirenjan 52d6920352 Merge commit '4c9ef85223ec6e638976eb279b82b9e9ea676b35' 2021-08-25 14:22:04 -07:00
nirenjan d9c1c80163 Merge commit 'dc72e43f1e43a0149c48a684d3b5fd40441ef83c' 2021-08-03 11:26:06 -07:00
nirenjan 3b2378a54b Move libusbx52 to top level 2021-07-29 21:57:19 -07:00
nirenjan 7f30863e5d Move libx52io to top level 2021-07-29 21:51:11 -07:00
nirenjan 34adeaec45 Move libx52util to top level 2021-07-29 21:47:07 -07:00
nirenjan e3bccd3ac3 Move libx52 to top level 2021-07-29 21:41:07 -07:00
nirenjan 0eeab91a8d Remove libx52 as a dependency of libx52util 2021-07-29 21:23:00 -07:00
nirenjan 7a4d63adc1 Merge commit '8db1be2ba8dc66d3abf69a8360990c659bf28f16' into daemon 2021-07-27 17:02:49 -07:00
nirenjan 06b8d15dda Make stringification function names similar to libx52io 2021-07-27 09:34:57 -07:00
nirenjan 018852a012 Add stringification functions to libx52 2021-07-27 02:00:39 -07:00
nirenjan 77606ae906 Use lookup table to implement *_strerror 2021-07-27 01:35:31 -07:00
nirenjan e54f6037d4 Fix pinelog builds on MacOS 2021-07-19 11:15:42 -07:00
nirenjan 3a68148472 Merge commit '9fa1a428a45eabff0122e199a687068f0e6280dd' into daemon 2021-07-19 09:50:42 -07:00
nirenjan 27eb123062 Update README to include destructor attribute 2021-07-16 08:33:22 -07:00
nirenjan 0d407d77fe Add method to close output stream and reset to default 2021-07-16 08:29:11 -07:00
nirenjan e32f836485 Fix format-literal error in clang 2021-07-15 18:31:01 -07:00
nirenjan 4b1d524d39 Integrate pinelog into autotools build framework 2021-07-15 10:33:52 -07:00
nirenjan fd79166a89 Merge commit '50dc946c3177f5006e4bd63eef4bf67331f59dea' as 'lib/pinelog' 2021-07-14 15:54:58 -07:00
nirenjan 2c522b9a66 Add reference to libx52_connect in integration documentation 2021-02-09 00:09:48 -08:00
nirenjan 7116af8f66 Remove hotplugging section from caveats list 2021-02-09 00:06:40 -08:00
nirenjan 9fb2d246c6 Move headers to $(includedir)/libx52 2020-07-17 15:27:42 -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 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 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 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 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
nirenjan f963991161 Save PID in libx52_device structure
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.
2020-07-04 23:29:25 -07:00
nirenjan 945ddc63a3 Update for release 0.2.1 2020-06-28 13:31:25 -07:00
nirenjan c40847b833 Add clock tests to verify PDT/PST/UTC 2020-06-28 11:32:19 -07:00
nirenjan 3981b873e0 Add date format tests 2020-06-28 08:57:23 -07:00
nirenjan 87ad48a37f Cleanup generated test formatting 2020-06-28 08:57:01 -07:00
nirenjan 7b423f4ea0 Update libx52_set_led_state to use check_feature 2020-06-28 08:35:14 -07:00
nirenjan efd984ef63 Parse and add setup_hook and fields
This change allows updates to the dev structure for individual test
cases. This defines the "setup_hook" array, and "fields" map, at both
the test group level and at the individual test case level, with the
ones at the test case level overriding any parent level fields and/or
hooks.

The primary use case for this is to add new test definitions that would
not be setup correctly by the default infrastructure, such as testing
the LED function for the non-Pro X52, or setting up clock tests for
local timezone, etc.
2020-06-28 08:24:49 -07:00
nirenjan 681a8e8aa1 Change libx52 mock tests to use preprocessor overrides
Prior to this change, libx52 tests needed a linker that supported the
--wrap argument. This is not available on OSX, and therefore, we had to
disable the unit tests on non-Linux systems.

Since we needed to rebuild the libx52 library anyway for the test, it is
simpler to just define libusb_control_transfer to point to our mock
function. This allows us to verify libx52 on all supported platforms.
2020-06-27 22:04:56 -07:00
nirenjan c4696f6055 Add clock time tests 2020-06-17 18:52:07 -07:00