mirror of
https://github.com/libratbag/libratbag.git
synced 2026-11-07 23:23:52 +01:00
This is for the best case where it's just about adding a new device ID. In the case where reverse engineering is required, some more detailed instructions are necessary but they take more effort to write... Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
55 lines
2.1 KiB
Markdown
55 lines
2.1 KiB
Markdown
/*!@mainpage
|
|
|
|
libratbag
|
|
=========
|
|
|
|
libratbag is a configuration library for gaming mice. It provides a generic
|
|
way to access the various features exposed by these mice and abstracts away
|
|
hardware-specific and kernel-specific quirks.
|
|
|
|
Architecture
|
|
------------
|
|
|
|
libratbag has two main components, the front-end API and wrapper code, and
|
|
the back-end HW-specific drivers:
|
|
|
|
+-----+ +-----+ +-----------+ +----------+
|
|
| app | -> | API | -> | hw-driver | -> | protocol | -> device
|
|
+-----+ +-----+ +-----------+ +----------+
|
|
|
|
The API layer is HW agnostic. Depend on the HW, the protocol may be part of
|
|
the driver implementation (e.g. etekcity) or a separate set of files
|
|
(HID++). Where the protocol is separate, the whole known protocol should be
|
|
implemented. The HW driver then only accesses the bits required for
|
|
libratbag. This allows us to optionally export the protocol as separate
|
|
library in the future, if other projects require it.
|
|
|
|
Adding Devices
|
|
--------------
|
|
Your device may already supported by one of our drivers. If so, you can
|
|
enable it by adding the device vendor-id/product-id to the static table. For
|
|
example, for a HID++ 1.0 device, edit the driver-hidpp10.c file and add an
|
|
entry in the hidpp10drv_table. For the other drivers, look for the
|
|
driver-{drivername}.c file and do the same.
|
|
|
|
If the device doesn't work, you'll have to start reverse-engineering the
|
|
device-specific protocol. Good luck :)
|
|
|
|
License
|
|
-------
|
|
|
|
libratbag is licensed under the MIT license.
|
|
|
|
> Permission is hereby granted, free of charge, to any person obtaining a
|
|
> copy of this software and associated documentation files (the "Software"),
|
|
> to deal in the Software without restriction, including without limitation
|
|
> the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
> and/or sell copies of the Software, and to permit persons to whom the
|
|
> Software is furnished to do so, subject to the following conditions: [...]
|
|
|
|
See the COPYING file for the full license information.
|
|
|
|
[](https://semaphoreci.com/libratbag/libratbag)
|
|
|
|
*/
|