17 return !memcmp(light->
r +
LED_MOUSE, black,
sizeof(black)) && !memcmp(light->
g +
LED_MOUSE, black,
sizeof(black)) && !memcmp(light->
b +
LED_MOUSE, black,
sizeof(black));
27 && !
rgbcmp(lastlight, newlight))
34 { 0x07, 0x05, 0x02, 0 }
36 uchar* rgb_data = &data_pkt[0][4];
44 if(!
usbsend(kb, data_pkt[0], 1))
46 int was_black =
isblack(kb, lastlight), is_black =
isblack(kb, newlight);
49 if(!
usbsend(kb, data_pkt[1], 1))
51 }
else if(was_black || force){
54 if(!
usbsend(kb, data_pkt[1], 1))
58 memcpy(lastlight, newlight,
sizeof(
lighting));
66 for(
int i = 0; i < zonecount; i++){
70 data_pkt[4] = light->
r[led];
71 data_pkt[5] = light->
g[led];
72 data_pkt[6] = light->
b[led];
86 for(
int i = 0; i < zonecount; i++){
87 if(!
usbrecv(kb, data_pkt, in_pkt))
89 if(memcmp(in_pkt, data_pkt, 4)){
97 light->
r[led] = in_pkt[4];
98 light->
g[led] = in_pkt[5];
99 light->
b[led] = in_pkt[6];
static int isblack(const usbdevice *kb, const lighting *light)
int savergb_mouse(usbdevice *kb, lighting *light, int mode)
int loadrgb_mouse(usbdevice *kb, lighting *light, int mode)
#define ckb_err(fmt, args...)
int updatergb_mouse(usbdevice *kb, int force)
static int rgbcmp(const lighting *lhs, const lighting *rhs)
#define usbrecv(kb, out_msg, in_msg)
usbrecv macro is used to wrap _usbrecv() with debugging information (file and lineno) ...
Definitions for using USB interface.
#define usbsend(kb, messages, count)
usbsend macro is used to wrap _usbsend() with debugging information (file and lineno) ...