Open FFY00 opened 4 years ago
Okay, we now have a semi-stable API in https://github.com/FFY00/dbus-objects. I can start working on the DBus daemon. The dbus-objects dependency should be pinned.
Did a fair bit of progress today, I wrote abstractions for the IO backend, and implemented a Linux hidraw backend. This design should allow us to fairly easily add IO backends that work on other operating systems. I want to write a hidapi backend, so that this also works on Windows, MacOS and FreeBSD, but the hidapi API is awful and not having the work already done by the hid-logitech-dj Linux driver will mean that we have to implement a bunch of things (the Logitech DJ protocol mainly), so that is something for later.
Currently, I have a WIP protocol definition representation locally. The idea is that instead of manually writing code to parse all function data, we just describe the format and it gets done automatically.
Hopefully I can get the protocol stuff working soon, which means I can start write a DBus API and configuration clients.
For configuration clients, we will have a CLI one, logitechctl
, and a GUI one, probably built on Qt w/ https://github.com/UN-GCPDS/qt-material.
Anyone with Qt experience, or designers, that want to lend a hand, please let me know.
On top of this, I think I will probably also write a simple GUI app that just lets you play with API the device exposes directly, which would be useful for development/debugging, or as a workaround for features that haven't gotten their own API and/or GUI yet.
Hidraw
and still write some tests withoutratbag-emu
)Next step would be starting implementing the HID++ features. This is not something I really want to work on until we have a DBus daemon but anyone else is welcome to, I am just focusing on other things.