Added media keys to K70 RGB Pro

* Added limit for packet size in CorsairPeripheralV2Controller
* Resolves #3862
This commit is contained in:
Chris M 2024-09-04 06:53:26 +10:00
parent 4a74103e70
commit 6d00a7fb23
2 changed files with 32 additions and 4 deletions

View file

@ -67,7 +67,7 @@ CorsairPeripheralV2Controller::CorsairPeripheralV2Controller(hid_device* dev_han
hid_write(dev, buffer, CORSAIR_V2_WRITE_SIZE);
uint16_t result = hid_read_timeout(dev, buffer, CORSAIR_V2_PACKET_SIZE, CORSAIR_V2_TIMEOUT);
result++;
pkt_sze = result;
pkt_sze = std::max(result, (uint16_t)CORSAIR_V2_WRITE_SIZE);
LOG_DEBUG("[%s] Packet length set to %d", device_name.c_str(), pkt_sze);
/*---------------------------------------------------------*\
@ -78,6 +78,8 @@ CorsairPeripheralV2Controller::CorsairPeripheralV2Controller(hid_device* dev_han
for(uint16_t i = 0; i < CORSAIR_V2_DEVICE_COUNT; i++)
{
LOG_DEBUG("[%s] Checking PID %04X against index %d with %04X - %smatch", device_name.c_str(),
pid, i, corsair_v2_device_list[i]->pid, corsair_v2_device_list[i]->pid == pid ? "" : "no ");
if(corsair_v2_device_list[i]->pid == pid)
{
/*---------------------------------------------------------*\

View file

@ -99,6 +99,32 @@ keyboard_keymap_overlay_values corsair_k70_layout
}
};
keyboard_keymap_overlay_values corsair_k70_pro_layout
{
KEYBOARD_SIZE::KEYBOARD_SIZE_FULL,
{
corsair_full_size_values,
{
/* Add more regional layout fixes here */
}
},
{
/*---------------------------------------------------------------------------------------------------------*\
| Edit Keys |
| Zone, Row, Column, Value, Key, OpCode, |
\*---------------------------------------------------------------------------------------------------------*/
{ 0, 0, 0, 128, "Profile", KEYBOARD_OPCODE_INSERT_ROW, }, // Insert Profile into new row
{ 0, 0, 1, 113, "Light", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, // Insert Light key
{ 0, 0, 2, 114, "Lock", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, // Insert Lock Key
{ 0, 0, 10, 191, "Logo", KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, // Insert Logo
{ 0, 0, 18, 102, KEY_EN_MEDIA_MUTE, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, // Insert Mute Key
{ 0, 1, 17, 123, KEY_EN_MEDIA_STOP, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, // Insert Stop Key
{ 0, 1, 18, 126, KEY_EN_MEDIA_PREVIOUS, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, // Insert Previous Track Key
{ 0, 1, 19, 124, KEY_EN_MEDIA_PLAY_PAUSE, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, // Insert Play Pause Key
{ 0, 1, 20, 125, KEY_EN_MEDIA_NEXT, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, // Insert Next Tack Key
}
};
keyboard_keymap_overlay_values corsair_K70_TKL_cs_layout
{
KEYBOARD_SIZE::KEYBOARD_SIZE_TKL,
@ -871,7 +897,7 @@ static const corsair_v2_zone k70_rgb_pro_zone =
{
ZONE_EN_KEYBOARD,
ZONE_TYPE_MATRIX,
6,
7,
21
};
@ -879,7 +905,7 @@ static const corsair_v2_device k70_rgb_pro_device =
{
CORSAIR_K70_RGB_PRO_PID,
DEVICE_TYPE_KEYBOARD,
6,
7,
21,
{
&k70_rgb_pro_zone,
@ -889,7 +915,7 @@ static const corsair_v2_device k70_rgb_pro_device =
nullptr,
nullptr
},
&corsair_k70_layout
&corsair_k70_pro_layout
};
/*-------------------------------------------------------------*\