Updated driver interface
This commit is contained in:
parent
84735a86f0
commit
de3167d140
38
README.md
38
README.md
@ -10,11 +10,45 @@ Drivers **must** expose the following symbols:
|
|||||||
```c
|
```c
|
||||||
void driver_init(); // Initialization
|
void driver_init(); // Initialization
|
||||||
uint32_t driver_getkey(); // Calls to this function must return USB keys that this driver registers, until 0
|
uint32_t driver_getkey(); // Calls to this function must return USB keys that this driver registers, until 0
|
||||||
device_type_t driver_get_type(); // Returns device type
|
device_type_t driver_get_capacity(); // Returns device capacity (see below)
|
||||||
char* driver_get_name(void* handle); // Returns peripheral name
|
char* driver_get_name(void* handle); // Returns peripheral name
|
||||||
char* driver_get_image(void* handle); // Returns peripheral image
|
char* driver_get_image(void* handle); // Returns peripheral image
|
||||||
|
|
||||||
// Mouse drivers
|
/*
|
||||||
|
* 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)
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
36
src/device/driver_interface.h
Normal file
36
src/device/driver_interface.h
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#ifndef DRIVER_INTERFACE_H
|
||||||
|
#define DRIVER_INTERFACE_H
|
||||||
|
|
||||||
|
enum device_capacity_t
|
||||||
|
{
|
||||||
|
DEVICE_CAPACITY_MOUSE,
|
||||||
|
DEVICE_CAPACITY_WIRELESS,
|
||||||
|
};
|
||||||
|
|
||||||
|
void driver_init(); // Initialization
|
||||||
|
uint32_t driver_getkey(); // Calls to this function must return USB keys that this driver registers, until 0
|
||||||
|
|
||||||
|
device_capacity_t driver_get_capacity(void* handle); // Returns device capacity (see above)
|
||||||
|
char* driver_get_name(void* handle); // Returns peripheral name
|
||||||
|
char* driver_get_image(void* handle); // Returns peripheral image
|
||||||
|
|
||||||
|
/* Mouse drivers */
|
||||||
|
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);
|
||||||
|
|
||||||
|
#endif
|
Loading…
x
Reference in New Issue
Block a user