From f3c658ea5e59972bb704df85f129d4dee17a4190 Mon Sep 17 00:00:00 2001 From: Johan Heikkila Date: Sun, 26 Feb 2017 16:31:37 +0200 Subject: [PATCH 1/3] Add support for K70 Rapidfire (non-RGB) 0x1b3a --- src/ckb-daemon/usb.c | 2 +- src/ckb-daemon/usb.h | 6 ++++-- src/ckb-daemon/usb_linux.c | 1 + src/ckb-daemon/usb_mac.c | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/ckb-daemon/usb.c b/src/ckb-daemon/usb.c index becbb3db80..23af5a101d 100644 --- a/src/ckb-daemon/usb.c +++ b/src/ckb-daemon/usb.c @@ -26,7 +26,7 @@ const char* vendor_str(short vendor){ const char* product_str(short product){ if(product == P_K95 || product == P_K95_NRGB || product == P_K95_PLATINUM) return "k95"; - if(product == P_K70 || product == P_K70_NRGB || product == P_K70_LUX || product == P_K70_LUX_NRGB || product == P_K70_RFIRE) + if(product == P_K70 || product == P_K70_NRGB || product == P_K70_LUX || product == P_K70_LUX_NRGB || product == P_K70_RFIRE || product == P_K70_RFIRE_NRGB) return "k70"; if(product == P_K65 || product == P_K65_NRGB || product == P_K65_LUX || product == P_K65_RFIRE) return "k65"; diff --git a/src/ckb-daemon/usb.h b/src/ckb-daemon/usb.h index bb5393d6c1..884fc836b2 100644 --- a/src/ckb-daemon/usb.h +++ b/src/ckb-daemon/usb.h @@ -28,7 +28,9 @@ #define P_K70_LUX_NRGB_STR "1b36" #define P_K70_RFIRE 0x1b38 #define P_K70_RFIRE_STR "1b38" -#define IS_K70(kb) ((kb)->vendor == V_CORSAIR && ((kb)->product == P_K70 || (kb)->product == P_K70_NRGB || (kb)->product == P_K70_RFIRE || (kb)->product == P_K70_LUX || (kb)->product == P_K70_LUX_NRGB)) +#define P_K70_RFIRE_NRGB 0x1b3a +#define P_K70_RFIRE_NRGB_STR "1b3a" +#define IS_K70(kb) ((kb)->vendor == V_CORSAIR && ((kb)->product == P_K70 || (kb)->product == P_K70_NRGB || (kb)->product == P_K70_RFIRE || (kb)->product == P_K70_RFIRE_NRGB || (kb)->product == P_K70_LUX || (kb)->product == P_K70_LUX_NRGB)) #define P_K95 0x1b11 #define P_K95_STR "1b11" @@ -80,7 +82,7 @@ const char* product_str(short product); // RGB vs non-RGB test // (note: non-RGB Strafe is still considered "RGB" in that it shares the same protocol. The difference is denoted with the "monochrome" feature) #define IS_RGB(vendor, product) ((vendor) == (V_CORSAIR) && (product) != (P_K70_NRGB) && (product) != (P_K95_NRGB)) -#define IS_MONOCHROME(vendor, product) ((vendor) == (V_CORSAIR) && (product) == (P_STRAFE_NRGB)) +#define IS_MONOCHROME(vendor, product) ((vendor) == (V_CORSAIR) && (product) == (P_STRAFE_NRGB) || (product) == (P_K70_LUX_NRGB) || (product) == (P_K70_RFIRE_NRGB)) #define IS_RGB_DEV(kb) IS_RGB((kb)->vendor, (kb)->product) #define IS_MONOCHROME_DEV(kb) IS_MONOCHROME((kb)->vendor, (kb)->product) diff --git a/src/ckb-daemon/usb_linux.c b/src/ckb-daemon/usb_linux.c index 373e3706e7..65395dae96 100644 --- a/src/ckb-daemon/usb_linux.c +++ b/src/ckb-daemon/usb_linux.c @@ -361,6 +361,7 @@ static _model models[] = { { P_K70_LUX_STR, P_K70_LUX }, { P_K70_LUX_NRGB_STR, P_K70_LUX_NRGB }, { P_K70_RFIRE_STR, P_K70_RFIRE }, + { P_K70_RFIRE_NRGB_STR, P_K70_RFIRE_NRGB }, { P_K95_STR, P_K95 }, { P_K95_NRGB_STR, P_K95_NRGB }, { P_K95_PLATINUM_STR, P_K95_PLATINUM }, diff --git a/src/ckb-daemon/usb_mac.c b/src/ckb-daemon/usb_mac.c index 218c070d0e..b097d6461d 100644 --- a/src/ckb-daemon/usb_mac.c +++ b/src/ckb-daemon/usb_mac.c @@ -770,7 +770,7 @@ int usbmain(){ int vendor = V_CORSAIR; int products[] = { // Keyboards - P_K65, P_K65_NRGB, P_K65_LUX, P_K65_RFIRE, P_K70, P_K70_NRGB, P_K70_LUX, P_K70_LUX_NRGB, P_K70_RFIRE, P_K95, P_K95_NRGB, P_K95_PLATINUM, P_STRAFE, P_STRAFE_NRGB, + P_K65, P_K65_NRGB, P_K65_LUX, P_K65_RFIRE, P_K70, P_K70_NRGB, P_K70_LUX, P_K70_LUX_NRGB, P_K70_RFIRE, P_K70_RFIRE_NRGB, P_K95, P_K95_NRGB, P_K95_PLATINUM, P_STRAFE, P_STRAFE_NRGB, // Mice P_M65, P_M65_PRO, P_SABRE_O, P_SABRE_L, P_SABRE_N, P_SCIMITAR, P_SCIMITAR_PRO, P_SABRE_O2, P_HARPOON }; From 17f3a438d50ca94a5004c6551570ce0b000cabd7 Mon Sep 17 00:00:00 2001 From: Johan Heikkila Date: Sun, 26 Feb 2017 17:23:02 +0200 Subject: [PATCH 2/3] Add missing parentheses --- src/ckb-daemon/usb.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ckb-daemon/usb.h b/src/ckb-daemon/usb.h index 2b8720bf18..f8e9235bfc 100644 --- a/src/ckb-daemon/usb.h +++ b/src/ckb-daemon/usb.h @@ -83,7 +83,7 @@ const char* product_str(short product); // (note: non-RGB Strafe is still considered "RGB" in that it shares the same protocol. The difference is denoted with the "monochrome" feature) #define IS_RGB(vendor, product) ((vendor) == (V_CORSAIR) && (product) != (P_K65_NRGB) && (product) != (P_K70_NRGB) && (product) != (P_K95_NRGB)) -#define IS_MONOCHROME(vendor, product) ((vendor) == (V_CORSAIR) && (product) == (P_STRAFE_NRGB) || (product) == (P_K70_LUX_NRGB) || (product) == (P_K70_RFIRE_NRGB)) +#define IS_MONOCHROME(vendor, product) ((vendor) == (V_CORSAIR) && ((product) == (P_STRAFE_NRGB) || (product) == (P_K70_LUX_NRGB) || (product) == (P_K70_RFIRE_NRGB))) #define IS_RGB_DEV(kb) IS_RGB((kb)->vendor, (kb)->product) #define IS_MONOCHROME_DEV(kb) IS_MONOCHROME((kb)->vendor, (kb)->product) From 7e0ebabd2249c81dcd3c17b8a70bd8c5ad7707da Mon Sep 17 00:00:00 2001 From: Johan Heikkila Date: Sun, 26 Feb 2017 18:12:07 +0200 Subject: [PATCH 3/3] Removed previous keyboards from IS_MONOCHROME macro --- src/ckb-daemon/usb.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ckb-daemon/usb.h b/src/ckb-daemon/usb.h index f8e9235bfc..22bf6994d4 100644 --- a/src/ckb-daemon/usb.h +++ b/src/ckb-daemon/usb.h @@ -83,7 +83,7 @@ const char* product_str(short product); // (note: non-RGB Strafe is still considered "RGB" in that it shares the same protocol. The difference is denoted with the "monochrome" feature) #define IS_RGB(vendor, product) ((vendor) == (V_CORSAIR) && (product) != (P_K65_NRGB) && (product) != (P_K70_NRGB) && (product) != (P_K95_NRGB)) -#define IS_MONOCHROME(vendor, product) ((vendor) == (V_CORSAIR) && ((product) == (P_STRAFE_NRGB) || (product) == (P_K70_LUX_NRGB) || (product) == (P_K70_RFIRE_NRGB))) +#define IS_MONOCHROME(vendor, product) ((vendor) == (V_CORSAIR) && (product) == (P_STRAFE_NRGB)) #define IS_RGB_DEV(kb) IS_RGB((kb)->vendor, (kb)->product) #define IS_MONOCHROME_DEV(kb) IS_MONOCHROME((kb)->vendor, (kb)->product)