26 Commits

Author SHA1 Message Date
Peter Hutterer
bf127d4c68 Move the ReportRate into the profile
We don't have mice that can do report rates per resolutions, so let's not
commit to that.

This is a DBus API break but also a break in ratbagd, piper will need to
update to fetch the rate/rates from the profile object now.

It's a ratbagctl break as well, ratbagctl info changes slightly and the
resolution is not argument anymore for the rate.

Fixes #645

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-02-27 11:31:59 +10:00
Peter Hutterer
014212bbd9 Move the query-configuration to the profile, rename to write-only
This is arguably a profile-specific thing since the device itself is static
(we still know button numbers, etc.), we just don't know the content of each
profile.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-02-22 16:21:00 +10:00
Peter Hutterer
3fcf13b58e Drop the superflous device capabilities
If we have a profiles/resolution/button/led, we can write to it. That is the
default assumption and where we don't have write-access to those, we should
simply not expose them.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-02-22 16:21:00 +10:00
Peter Hutterer
55fd6c7a71 Drop the button key/macro device capability
The same information is supposed to be available in the button's action types

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-02-22 16:21:00 +10:00
Erol Gorancic
44c4b901e2 Steelseries Rival 600 Support.
- New svg and device file. Updated meson.build.
- New device version (version 3).
- Refactored led cycle to be general for v2 and v3.
- New defines for v3.
2018-11-26 01:27:17 +00:00
FFY00
363eab80f0 steelseries: implement cycle struct 2018-09-01 22:49:32 +02:00
Thomas Hindoe Paaboel Andersen
fff3589a20 steelseries: read settings from device
Open an extra hidraw to read current onboard settings.

Initially DPI and static LED color can be read from the rival
310. Other data/devices can be added as the protocol is better
understood.

The protocol used to extract the data seems to be both device
and firmware version specific. To be able to switch on both
cases we now store the firmware information in the drv_data.

Signed-off-by: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
2018-08-30 15:49:48 +10:00
Stephen Dawkins
d8c7050f6f disabled macros for steelseries if short_button is set 2018-07-01 21:02:40 +02:00
Stephen Dawkins
49770a22e7 added support for steelseries sensei raw 2018-07-01 21:02:40 +02:00
FFY00
fa57b417e9 steelseries: add dirty dpi check 2018-04-06 15:34:59 +02:00
FFY00
1aec9c0f54 steelseries: check button dirty flag when setting profile 2018-03-28 15:40:36 +02:00
Thomas Hindoe Paaboel Andersen
d1918a063c steelseries: sleep between messages
Adding the sleep makes the writes to the device more
reliable.
2018-03-26 21:55:55 +02:00
Thomas Hindoe Paaboel Andersen
1243d5bb13 steelseries: use macros for key+modifiers 2018-02-22 11:08:46 +01:00
Thomas Hindoe Paaboel Andersen
3da2630158 .device: add MacroLength for steelseries
Adds a setting to specify the max length of key press macros that the
device supports.

Setting MacroLength to 1 means that the device supports normal key presses,
(key + modifiers) but not multi key press macros.

0 can be used to indicate that buttons cannot be set as keys at all.
2018-02-16 09:13:58 +10:00
Thomas Hindoe Paaboel Andersen
e02d0724a3 steelseries: set LED capabilities
The Rival and earlier versions did not support cycle mode on the device.
2018-02-15 09:48:22 +10:00
Thomas Hindoe Paaboel Andersen
920fb3917f steelseries: support the original Rival
Initial support for the original Rival mouse.
Setting resolutions, report rate and LED color and
modes.

No key mappings yet, and breathing duration is fixed.
2018-02-14 14:45:24 +10:00
Thomas Hindoe Paaboel Andersen
f36b2dbce9 steelseries: default resolutions to 800/1600
The steelseries mice have 2 resolutions. The range/interval
is different per device. We cannot query the devices, so we
have to pick some defaults. Before we took the two first in
the list to be safe. It is a pretty bad default though. Using
800 and 1600 is supported by all known devices and seem as
more reasonable defaults.
2018-02-14 14:41:19 +10:00
Thomas Hindoe Paaboel Andersen
ef7e6f6db5 steelseries: correct use of return code
ratbag_hidraw_output_report returns 0 on success, not the number of bytes
written.
2018-02-12 12:03:23 +10:00
Thomas Hindoe Paaboel Andersen
8063385d03 steelseries: default button mapping for sensei 310
The default button mapping the sensei 310 does not match
the table for the two known steelseries mice. The 6th button
is no longer resolution cycle, so the single table no longer
fits. Let's construct the table depending on the number of
buttons on the device.
2018-02-07 01:18:20 +01:00
Thomas Hindoe Paaboel Andersen
0f5beb619e steelseries: support cycle and breathing LED mode
To specify the colors to cycle trough we write a list of
colors and their individual share of the total cycle duration.

Solid colors only have a single color in their list.

Breathing mode will cycle to and from the picked color and black.

Cycle mode will cycle through red, green, and blue.
2017-11-27 08:54:06 +10:00
Thomas Hindoe Paaboel Andersen
fd27957b57 steelseries: add a support for the Kinzu V2 2017-11-22 14:35:09 +10:00
Thomas Hindoe Paaboel Andersen
554ee88c86 steelseries: move hardcoded values to .device
The steelseries driver used some hardcoded values for as the
only supported device was the rival 310. This moves that data
to the .device file.

The default resolutions used are changed from hardcoded 1000
and 2000, to the two first entries in the dpi list. Picking
actual values from the specified dpi list or range is safer.
2017-11-22 14:35:09 +10:00
Thomas Hindoe Paaboel Andersen
113bd4859e steelseries: add writing buttons 2017-10-27 08:35:10 +10:00
Thomas Hindoe Paaboel Andersen
2a2b7487d4 steelseries: init the buttons to defaults 2017-10-26 10:25:56 +10:00
Thomas Hindoe Paaboel Andersen
2b4022dcbf steelseries: set report rate list 2017-10-26 10:25:56 +10:00
Thomas Hindoe Paaboel Andersen
575b7bce98 add driver and svg for steelseries rival 310
The driver does not yet support button mappings or any
non-solid LED modes.

The device does not support reading out the current
configuration. On probe some default values are used
to get a usable profile.
2017-10-18 00:19:12 +02:00