Yaroslav Chvanov
a121c0227b
steelseries: check for settings reading errors
2023-05-20 11:18:20 +03:00
Yaroslav Chvanov
4240e067a9
openinput: return early instead of making an error-prone zero-sized VLA
...
Fixes a clang-analyze warning.
2023-05-20 11:01:17 +03:00
Yaroslav Chvanov
cf202eeeca
driver-hidpp20: zero initialize a struct
...
This fixes a clang-analyze warning about uninitialized value getting
stored later.
2023-05-20 10:56:55 +03:00
Yaroslav Chvanov
4d6f80de01
liblur: check return value instead of comparing the out_ptr
...
Fixes a clang-analyze warning for a dead assignment.
2023-05-20 00:15:55 +03:00
Yaroslav Chvanov
b717f946ef
sinowealth-nubwo: idiomatically zero initialize a struct
2023-05-20 00:12:46 +03:00
Yaroslav Chvanov
cfab554ea8
sinowealth-nubwo: remove trailing whitespace
2023-05-20 00:12:34 +03:00
Yaroslav Chvanov
b7b9749901
sinowealth-nubwo: correctly use an attribute
...
This erroneously declared it with name `__packed__` instead of using it
as an attribute.
It doesn't seem like it changes struct's size, but it has no
static_assert on it so we can't be 100% sure.
2023-05-20 00:10:33 +03:00
Yaroslav Chvanov
bb67e9b54e
sinowealth-nubwo: fix incorrect firmware version getting error check
...
If by any chance returned `size` was `0`, it would erroneously return 0,
which would do an uninitialized pointer dereference in
sinowealthnubwo_probe().
This fixes a convoluted warning by clang-analyze.
2023-05-19 23:55:21 +03:00
Yaroslav Chvanov
9383f63c04
steelseries: add missing newlines to logging
2023-05-19 23:18:32 +03:00
Yaroslav Chvanov
8c220cb1a8
steeseries: make an array static const
2023-05-19 22:57:12 +03:00
Yaroslav Chvanov
9b36ff7dd1
steelseries: make most of implicit conversions explicit
...
Did not fix brightness and LED color, they deserve being changed on
libratbag side.
2023-05-19 22:57:12 +03:00
Yaroslav Chvanov
ab4504d3ed
steelseries: fix narrowing conversions
2023-05-19 22:57:12 +03:00
Yaroslav Chvanov
d4a35f341b
steelseries: don't define variables on a single line
2023-05-19 22:57:12 +03:00
Yaroslav Chvanov
ea5ca29aa2
steelseries: don't use reserved underscore identifiers
2023-05-19 22:57:12 +03:00
Yaroslav Chvanov
6fcac8a360
steelseries: simplify loop breaking
2023-05-19 22:57:11 +03:00
Yaroslav Chvanov
6e2550ac51
steelseries: add commit error logging
2023-05-19 22:57:11 +03:00
Yaroslav Chvanov
bd65f7f461
steelseries: don't use else after return
2023-05-19 21:50:14 +03:00
Qjammer
7fb3c63e8d
marsgaming: implement Mars Gaming MM4 protocol
2023-04-14 14:23:28 +03:00
Kyoken
70f2e96a66
asus: check mouse in probe, fix asus status code
2023-03-31 09:55:19 +03:00
Yaroslav Chvanov
d82821fd62
sinowealth: show a more detailed message for unknown mice
...
The string may be a bit too long, but I still think it's a good idea to
guide people in the right direction.
2023-03-19 03:07:43 +03:00
Yaroslav Chvanov
87f6e521e6
sinowealth: store firmware version in device files in the group name
...
It only makes sense, since it's what the section are identified by.
2023-03-19 02:42:47 +03:00
Yaroslav Chvanov
44279ddda3
shared-macro: make startswith() return a const char*
...
The supplied arguments are const, and as such the return type which is
derived from the arguments must also be const.
2023-03-19 02:39:30 +03:00
Yaroslav Chvanov
876c06237e
sinowealth: change device files to match other drivers
...
..specifically the "ButtonCount" and "ProfileCount" keys.
2023-03-19 02:39:21 +03:00
halting
b137c61b9f
Revert "g300: use the correct step size"
...
This reverts commit 20b573668e .
200-2500 DPI range and 50 DPI step don't works as expected on Linux.
2023-03-18 18:03:14 -03:00
Yaroslav Chvanov
cb196e16bb
libratbag: don't allow disabling active profile
2023-03-09 18:33:02 +03:00
Yaroslav Chvanov
115ee47787
libratbag: don't allow setting disabled profile as active
2023-03-09 18:33:02 +03:00
Yaroslav Chvanov
072c1845b2
fixup! sinowealth: read profile count from the device file
2023-03-07 05:38:31 +03:00
Yaroslav Chvanov
d658dba612
sinowealth: check if ButtonCount field in device file is correct
...
Fixes such scenario:
Set ButtonCount to -1.
Start libratbag.
Watch sun burn.
2023-03-07 05:35:17 +03:00
Yaroslav Chvanov
17d869d5bf
libratbag-data: set fallback value in the same place as the proper value
2023-03-07 05:35:17 +03:00
Yaroslav Chvanov
fd6e693e88
sinowealth: don't try to live through errors while committing
2023-03-07 05:35:17 +03:00
Yaroslav Chvanov
e712b4f1eb
sinowealth: fix logging using wrong member
2023-03-07 05:35:17 +03:00
Yaroslav Chvanov
a1e2159a4f
sinowealth: allow up to three profiles
2023-03-07 05:35:17 +03:00
Yaroslav Chvanov
b39f2794cb
sinowealth: conditionally enable writing profile-switching bindings
2023-03-07 05:35:16 +03:00
Yaroslav Chvanov
a8320f7eb7
sinowealth: use early return
2023-03-07 05:35:16 +03:00
Yaroslav Chvanov
59d85e0bf8
sinowealth: change "profile-up" button binding to cycle
...
I can't explain this, I'm SURE it wasn't cycling before and was just
getting stuck on the highest profile. What?
2023-03-07 05:35:16 +03:00
Yaroslav Chvanov
26cc246a4c
sinowealth: read profile count from the device file
2023-03-07 05:35:16 +03:00
Yaroslav Chvanov
dfd9be05ab
sinowealth: add "cycle LED modes" binding to unknown
2023-03-07 03:38:22 +03:00
Yaroslav Chvanov
fd3ce088b0
sinowealth: make an error message less generic
2023-03-07 03:30:45 +03:00
Yaroslav Chvanov
8fdf0de849
sinowealth: rename MAX to the variable with maximum profile count
...
It can go UP TO this count, it's not necessarily this number.
2023-03-07 03:19:41 +03:00
Yaroslav Chvanov
d2ee857d05
sinowealth: add and use profile count in drv_data
2023-03-07 03:18:53 +03:00
Yaroslav Chvanov
40e1785bcc
sinowealth: check for device compatibility as soon as possible
2023-03-07 03:13:23 +03:00
Yaroslav Chvanov
9a0972891a
sinowealth: update the comment about profile count
2023-03-07 03:04:53 +03:00
Yaroslav Chvanov
224985e28c
sinowealth: add command IDs for the third profile
2023-03-07 02:55:09 +03:00
Yaroslav Chvanov
52e21d767d
libratbag: take constant pointers where possible
2023-03-07 00:12:09 +03:00
Yaroslav Chvanov
364948c32a
libratbag: remove fall back for Logitech devices
...
This should be unreachable because we `Driver` field must be set in
device files, otherwise they are ignored. Our tests also catch this.
Anyway, it's always better to be explicit about this.
2023-03-06 23:44:06 +03:00
Yaroslav Chvanov
e9604305d1
libratbag-data: use the dpi_list_free helper
2023-03-06 23:42:31 +03:00
Yaroslav Chvanov
2734bc17de
libratbag-util: make dpi_list_free() be able to take NULL
...
free() can take NULL without errors, and so should such helper.
2023-03-06 23:41:40 +03:00
Yaroslav Chvanov
2a356736f7
Fix drivers making profiles dirty while probing
...
Fixes drivers calling public API functions which should only be called
by the consumers of the library. The real problem here is that we don't
have a clear separation between driver API and public API.
This is just a simple search and replace, so there be more such things.
2023-03-05 16:32:03 +03:00
Yaroslav Chvanov
822f37a68c
libratbag: check if profile is dirty in sanity check
2023-03-05 16:32:03 +03:00
Yaroslav Chvanov
1df7316195
libratbag: check if driver supports committing
...
There could be segmentation faults with the openinput driver.
2023-03-05 16:32:03 +03:00