flozz / rivalcfg

CLI tool and Python library to configure SteelSeries gaming mice
https://flozz.github.io/rivalcfg/
Do What The F*ck You Want To Public License
761 stars 62 forks source link

Add support for Prime mice #169

Closed sephiroth99 closed 2 years ago

sephiroth99 commented 2 years ago

This adds support for the SteelSeries Prime mice (#166).

Supported features:

What is not supported:

By looking at the SSE3 database, it seems like the Prime and Prime+ support a new color handler. Instead, I was able to reuse the regular color handler by using the command and command_suffix fields to build a valid packet (but different from my captures). In short, the RGB color value is present twice in the data, at the start and at the end. Sending only at the start also works. But this means supporting the Prime+ will most likely require to correctly implement this new color handler.

There were a few changes to the core code, mainly:

flozz commented 2 years ago

added support for zero based indexing of the multidpi_range handler

Hum that's annoying, I have already an implementation for this in the aerox3-wireless branch... Maybe I can merge this part of the branch on master to allow you to use it in your PR?

Except this ↑ your PR looks great :)

sephiroth99 commented 2 years ago

added support for zero based indexing of the multidpi_range handler

Hum that's annoying, I have already an implementation for this in the aerox3-wireless branch... Maybe I can merge this part of the branch on master to allow you to use it in your PR?

Except this ↑ your PR looks great :)

I had a look at the first_preset option and it seems fine to me. If you want to put that part now in master, I'll rebase on top of it, no problem for me.

flozz commented 2 years ago

The updated multidpi_range is on master :)

sephiroth99 commented 2 years ago

OK I updated the code to use the new multidpi_range, everything seem a-ok on my side! Let me know if there are any other issues.

flozz commented 2 years ago

Thank you, the Prime support will be released in the next Rivalcfg version :)