You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.5 KiB
54 lines
1.5 KiB
# ginput : Gnome input devices configuration tool
|
|
|
|
Manage the settings of your keyboard, mouse, ... with a simple GUI.
|
|
This is for the internal settings of your devices, not for the OS settings.
|
|
For example, you can change the mouse DPI, polling rate, rgb, ...
|
|
|
|
## Driver interface
|
|
|
|
Drivers **must** expose the following symbols:
|
|
```c
|
|
void driver_init(); // Initialization
|
|
uint32_t driver_getkey(); // Calls to this function must return USB keys that this driver registers, until 0
|
|
device_type_t driver_get_capacity(); // Returns device capacity (see below)
|
|
char* driver_get_name(void* handle); // Returns peripheral name
|
|
char* driver_get_image(void* handle); // Returns peripheral image
|
|
|
|
/*
|
|
* Mouse drivers
|
|
*
|
|
* - DPI Levels: max levels, level info (dpi + led), level count, current level
|
|
* - Debounce time : possible values, current value
|
|
* - Motion sync
|
|
* - Lift off distance : possible values, current value
|
|
* - Angle snap
|
|
* - Polling rate : possible values, current value
|
|
* - LED (color/effect/status)
|
|
*/
|
|
struct MOUSE_DPI_LEVELS
|
|
{
|
|
unsigned int max_level_count;
|
|
unsigned int level_count;
|
|
unsigned int level_current;
|
|
bool led_available;
|
|
bool xy_available;
|
|
struct MOUSE_DPI_LEVEL
|
|
{
|
|
unsigned int dpi_x;
|
|
unsigned int dpi_y;
|
|
unsigned char r;
|
|
unsigned char g;
|
|
unsigned char b;
|
|
} level[];
|
|
};
|
|
struct MOUSE_DPI_LEVELS driver_mouse_dpi_get(void* handle);
|
|
|
|
/*
|
|
* Wireless driver
|
|
* - Battery (state + amount)
|
|
* - Connection type (usb 2.4/bluetooth/wired)
|
|
*/
|
|
|
|
|
|
```
|
|
|
|
|