1
0
forked from drath/libratbag

Merge pull request #11 from phomes/led-colors

hidpp10: Add support for get/set of led color
This commit is contained in:
Peter Hutterer
2015-09-17 00:03:04 +10:00
2 changed files with 73 additions and 0 deletions

View File

@@ -602,6 +602,65 @@ hidpp10_set_led_status(struct hidpp10_device *dev,
return res;
}
/* -------------------------------------------------------------------------- */
/* 0x57: LED Color */
/* -------------------------------------------------------------------------- */
#define __CMD_LED_COLOR 0x57
#define CMD_LED_COLOR(idx, sub) { \
.msg = { \
.report_id = REPORT_ID_SHORT, \
.device_idx = idx, \
.sub_id = sub, \
.address = __CMD_LED_COLOR, \
.parameters = {0x00, 0x00, 0x00 }, \
} \
}
int
hidpp10_get_led_color(struct hidpp10_device *dev,
uint8_t *red,
uint8_t *green,
uint8_t *blue)
{
unsigned idx = dev->index;
union hidpp10_message led_color = CMD_LED_COLOR(idx, GET_REGISTER_REQ);
int res;
log_raw(dev->ratbag_device->ratbag, "Fetching LED color\n");
res = hidpp10_request_command(dev, &led_color);
if (res)
return res;
*red = led_color.msg.parameters[0];
*green = led_color.msg.parameters[1];
*blue = led_color.msg.parameters[2];
return 0;
}
int
hidpp10_set_led_color(struct hidpp10_device *dev,
uint8_t red,
uint8_t green,
uint8_t blue)
{
unsigned idx = dev->index;
union hidpp10_message led_color = CMD_LED_COLOR(idx, SET_REGISTER_REQ);
int res;
log_raw(dev->ratbag_device->ratbag, "Setting LED color\n");
led_color.msg.parameters[0] = red;
led_color.msg.parameters[1] = green;
led_color.msg.parameters[2] = blue;
res = hidpp10_request_command(dev, &led_color);
return res;
}
/* -------------------------------------------------------------------------- */
/* 0x61: Optical Sensor Settings */
/* -------------------------------------------------------------------------- */

View File

@@ -177,6 +177,20 @@ int
hidpp10_set_led_status(struct hidpp10_device *dev,
const bool led[4]);
/* -------------------------------------------------------------------------- */
/* 0x57: LED Color */
/* -------------------------------------------------------------------------- */
int
hidpp10_get_led_color(struct hidpp10_device *dev,
uint8_t *red,
uint8_t *green,
uint8_t *blue);
int
hidpp10_set_led_color(struct hidpp10_device *dev,
uint8_t red,
uint8_t green,
uint8_t blue);
/* -------------------------------------------------------------------------- */
/* 0x61: Optical Sensor Settings */
/* -------------------------------------------------------------------------- */