1
0
forked from drath/libratbag
Commit Graph

1198 Commits

Author SHA1 Message Date
Yaroslav Chvanov
876e0cc642 sinowealth: enable button disabling support 2022-12-23 04:01:54 +03:00
Yaroslav Chvanov
9e12c5874c libratbag: check if disabling buttons is supported 2022-12-23 04:01:09 +03:00
Filipe Laíns
c4cf24308a hidpp20: enable disabling buttons on onboard profiles (0x8100)
Signed-off-by: Filipe Laíns <lains@archlinux.org>
2022-12-23 03:38:19 +03:00
Peter Hutterer
cdf19a904e libratbag: Fix the action type NONE handling
Add the required hooks which were largely missing, remove a check that was a
copy/paste error and add a test button.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-12-23 03:34:33 +03:00
Yaroslav Chvanov
9c50116646 sinowealth: enable profile cycling mapping with a preprocessor macro
They suck, but we already do have the SINOWEALTH_NUM_PROFILES thing,
let's at least give it all possible capabilities if it is used.
2022-12-23 03:18:13 +03:00
Yaroslav Chvanov
ac86673006 sinowealth: further deduplicate the code of reading config data 2022-12-23 03:18:13 +03:00
Yaroslav Chvanov
5d1b529f4c sinowealth: explain additional profiles and their pit-falls 2022-12-23 03:18:13 +03:00
Yaroslav Chvanov
9bd9446ce2 sinowealth: add support for writing additional profiles 2022-12-23 03:18:11 +03:00
Yaroslav Chvanov
fe73bb34ef sinowealth: add support for button actions in macros 2022-12-23 02:52:00 +03:00
Yaroslav Chvanov
0bdd0e71ba sinowealth: improve error handling
- No more arbitrary error codes, use POSIX error codes.
- Bubble errors up.
- Add strerror() wherever errno is printed.
2022-12-23 02:52:00 +03:00
Yaroslav Chvanov
46711b3624 sinowealth: refactor sinowealth_update_macro_from_action()
Reading it was giving me head-ache. This still doesn't feel perfect but
it's already better.
2022-12-23 02:52:00 +03:00
Yaroslav Chvanov
c48320134e sinowealth: fix a missing new line in logging 2022-12-23 02:52:00 +03:00
Yaroslav Chvanov
0da7cc10b0 sinowealth: add support for reading 2 profiles (if a macro is set)
For what it's worth, all of this may not even belong in libratbag - this
is never going to be shipped to end users, only if someone modifies the
source code. In other words all of this is basically dead code, it's
just me trying to figure out the internal of SinoWealth devices.
2022-12-23 02:52:00 +03:00
Yaroslav Chvanov
4621e1016a sinowealth: deduplicate the code of reading configuration data 2022-12-23 02:52:00 +03:00
Yaroslav Chvanov
da92117973 sinowealth: fix a typo 2022-12-23 02:52:00 +03:00
Yaroslav Chvanov
36af0009bd sinowealth: assert instead of silently ignoring an error 2022-12-23 02:51:59 +03:00
Yaroslav Chvanov
f23f2bfbfb sinowealth: simply return a bool instead of 0 or 1 2022-12-23 02:51:59 +03:00
Yaroslav Chvanov
007fa34c87 sinowealth: make all casts explicit 2022-12-23 02:51:59 +03:00
Yaroslav Chvanov
a018207728 sinowealth: fix some variable types 2022-12-23 02:51:59 +03:00
Yaroslav Chvanov
e18baf6f36 sinowealth: use non-GNU-specific empty array initializer 2022-12-23 02:51:59 +03:00
Yaroslav Chvanov
991cf92594 sinowealth: print a warning if there are too much events in a macro 2022-12-23 02:51:47 +03:00
Kyoken
2eeacc354f implement key bindings feature 2022-12-22 00:51:59 +03:00
Yaroslav Chvanov
0f39b0f1e9 asus: use ARRAY_FOR_EACH 2022-12-20 04:44:04 +03:00
Yaroslav Chvanov
8c528b2ec0 asus: make pointer variables const wherever possible
Also fixes `ASUS_BUTTON_MAPPING` being duplicated between different
source files if I understand C right.
2022-12-20 04:44:04 +03:00
Yaroslav Chvanov
0656d7896c libratbag-data: fix formatting 2022-12-20 04:44:03 +03:00
Kyoken
4187aa4123 asus: allow empty cells in bindings table and fix pugio button bindings 2022-12-07 23:32:03 +03:00
Kyoken
f9286536f8 asus: fix button mapping type 2022-11-26 00:46:37 +03:00
Kyoken
0cf97d40af asus: handle undefined buttons 2022-11-26 00:46:37 +03:00
Kyoken
b93900bd91 asus: rename params 2022-11-26 00:46:37 +03:00
Kyoken
e628b50abf asus: add spatha x 2022-11-26 00:46:37 +03:00
Kyoken
3e5ac899ae asus: fix building errors 2022-11-26 00:46:37 +03:00
Kyoken
041a8023b8 asus: button mapping reworked 2022-11-26 00:46:32 +03:00
Yaroslav Chvanov
e26eac95db sinowealth: remove now unused button_set_key_action_from_macro
I first thought that we could use try to use this instead of
full-fledged macros when possible, but the implementation then is going
to look quite messy, so let's just delete this.
2022-11-18 11:52:07 +00:00
Yaroslav Chvanov
d2586a2344 sinowealth: do an assert instead of graceful internal bug handling 2022-11-18 11:52:07 +00:00
Yaroslav Chvanov
dd609c06a9 sinowealth: fix writing of key button action type
It did not work *ever* as the helper function was only called when
action type was `key` but the function checked if it was a `macro`.
2022-11-18 11:52:07 +00:00
Yaroslav Chvanov
c39640d943 asus: fix include order
It caused an `implicit function declaration` warning.
2022-10-12 22:16:19 +03:00
Kyoken
0c3cfe71a0 asus: remove extern 2022-10-12 21:20:30 +03:00
Kyoken
dcba13152f asus driver 2022-10-12 18:11:28 +03:00
Yaroslav Chvanov
d8301414c7 libratbag-data: add a missing include
To fix `Declaration of X will not be visible outside of this function`
Clang warnings.
2022-08-02 12:12:42 +03:00
Yaroslav Chvanov
a4da425298 sinowealth: move device-specific data out of the driver
This moves device data out of the driver into device files. However, a
_single_ device file contains data for _several mice_ at the same time.
The reason for this is that different mice by SinoWealth may use the
same VID:PID pair. This is unfortunate, as we only allow a single
device file a given VID:PID pair.

Also move `sinowealth_led_format` enum into a header file and rename
its constants to fit in outside of the driver.
2022-08-02 12:12:42 +03:00
Yaroslav Chvanov
ea7b4b6821 sinowealth: null-terminate the buffer with firmware version 2022-08-02 12:12:42 +03:00
Yaroslav Chvanov
833468b292 sinowealth: use a constant instead of a magic number 2022-08-02 12:12:39 +03:00
Yaroslav Chvanov
cc954af7a7 steelseries: ensure that device has a version number set
Otherwise there would be hard to diagnose errors later on.
2022-08-01 07:55:40 +00:00
Yaroslav Chvanov
213ccce0a8 steelseries: add fallback button and LED count
Otherwise if there is a device file without them set, will try to create
UINT_MAX-1 instances of them and obviously fail with an out-of-memory
error.
2022-08-01 07:55:40 +00:00
Thomas Weißschuh
0fc6764b47 libratbag-data: fix possible NULL dereferences
This can happen when a device has not properly initialized and this
fields have not been set.
2022-07-21 09:09:04 +00:00
Ilya Guterman
8c3c6598c3 hidpp20: verbose log the get current profile 2022-06-06 17:20:42 +03:00
Yaroslav Chvanov
1140875cd8 sinowealth: fix all devices being detected as generic device 2022-06-06 20:13:19 +10:00
Yaroslav Chvanov
f87bccb370 sinowealth: add data for Marvo Scorpion G961
I did not add the data entry for ratbagd though, as there has been
reported breakage with Ant Esports GM500, which uses the same VID:PID.
2022-06-06 07:54:17 +00:00
Yaroslav Chvanov
c1955598fe sinowealth: note that debounce time command doesn't work on shorter mice 2022-06-06 07:54:17 +00:00
Yaroslav Chvanov
d261458cae sinowealth: limit the resolution to sensor's upper bound 2022-06-06 07:54:17 +00:00