/*-------------------------------------------------------------------*\ | CMKeyboardDevices.h | | | | Keymap definitions for Cooler Master Keyboards | | | | Tam D (too.manyhobbies) 30th Nov 2023 | | | \*-------------------------------------------------------------------*/ #pragma once #include "RGBController.h" #include "KeyboardLayoutManager.h" /*-----------------------------------------------------*\ | List of all supported effects by this controller. | | All of these effects are firmware controlled, and | | they types of effects supported will depend on the | | Keyboard. | | | | To enable a command, the SetEffect(effectId) needs | | to be called. The specific effectId->Effect mapping | | depends on the keyboard. | \*-----------------------------------------------------*/ enum cm_keyboard_effect_type { NONE = 0, DIRECT, SINGLE, FULLY_LIT, STATIC, BREATHE, CYCLE, WAVE, RIPPLE, CROSS, RAINDROPS, STARS, SNAKE, CUSTOMIZED, INDICATOR, MULTILAYER, REACTIVE_FADE, REACTIVE_PUNCH, REACTIVE_TORNADO, HEARTBEAT, FIREBALL, SNOW, CIRCLE_SPECTRUM, WATER_RIPPLE, OFF }; #define CM_KB_ZONES_MAX 1 typedef struct { std::string name; zone_type type; } cm_kb_zone; typedef struct { uint16_t product_id; const cm_kb_zone * zones[CM_KB_ZONES_MAX]; keyboard_keymap_overlay_values* layout_new; } cm_kb_device; #define COOLERMASTER_VID 0x2516 #define CMKB_MAXKEYS 256 /*-----------------------------------------------------------------*\ | keyboard support status is indicated to the right of | | the PID definition. Attribution to products is also | | indicated. | | | | libcmmk | | signal https://gitlab.com/signalrgb/signal-plugins | | openrgb | | ck550-macos https://github.com/vookimedlo/ck550-macos/tree/master | | reversed | | | | issue tickets, open merge requests etc are provided | | for developer references. | | # denotes issue ticket | | ! denotes merge/pull request | \*-----------------------------------------------------------------*/ #define COOLERMASTER_KEYBOARD_CK351_PID 0x014F // unsupported #define COOLERMASTER_KEYBOARD_CK530_PID 0x009F // [ck550-macos] #define COOLERMASTER_KEYBOARD_CK530_V2_PID 0x0147 // [signal] #define COOLERMASTER_KEYBOARD_CK550_V2_PID 0x0145 // [openrgb #800, #2863, signal] #define COOLERMASTER_KEYBOARD_CK552_V2_PID 0x007F // [ck550-macos, signal] #define COOLERMASTER_KEYBOARD_CK570_V2_PID 0x01E8 // unsupported #define COOLERMASTER_KEYBOARD_CK720_PID 0x016B // unsupported #define COOLERMASTER_KEYBOARD_CK721_PID 0x016D // unsupported #define COOLERMASTER_KEYBOARD_CK721LINE_PID 0x01EE // unsupported #define COOLERMASTER_KEYBOARD_PRO_L_PID 0x003B // [libcmmk !16] #define COOLERMASTER_KEYBOARD_PRO_L_WHITE_PID 0x0047 // [libcmmk] #define COOLERMASTER_KEYBOARD_PRO_S_PID 0x003C // [libcmmk #30 !31 !36, !37, !7, #5(closed), #3(closed)] // MASTERKEYS PRO M [libcmmk #17] #define COOLERMASTER_KEYBOARD_MK721_PID 0x016F // unsupported #define COOLERMASTER_KEYBOARD_MK730_PID 0x008F // [openrgb #1630, libcmmk] #define COOLERMASTER_KEYBOARD_MK750_PID 0x0067 // fw1.2 [libcmmk #25 !9, !14, signal] #define COOLERMASTER_KEYBOARD_MK770_PID 0x01D5 // unsupported #define COOLERMASTER_KEYBOARD_MK850_PID 0x0069 // [signal] #define COOLERMASTER_KEYBOARD_SK620B_PID 0x0157 // unsupported #define COOLERMASTER_KEYBOARD_SK620W_PID 0x0159 // [signal] #define COOLERMASTER_KEYBOARD_SK622B_PID 0x0149 // [openrgb #3110, signal #217(closed)] #define COOLERMASTER_KEYBOARD_SK622W_PID 0x014B // [signal] #define COOLERMASTER_KEYBOARD_SK630_PID 0x0089 // [openrgb #967, libcmmk !21] #define COOLERMASTER_KEYBOARD_SK631B_PID 0x008B // unsupported #define COOLERMASTER_KEYBOARD_SK631W_PID 0x0125 // [libcmmk] #define COOLERMASTER_KEYBOARD_SK650_PID 0x008D // [openrgb #613, libcmmk #23 !37 !27 !28, signal] #define COOLERMASTER_KEYBOARD_SK651B_PID 0x0091 // unsupported #define COOLERMASTER_KEYBOARD_SK651W_PID 0x0127 // [signal] #define COOLERMASTER_KEYBOARD_SK652_PID 0x015D // [signal] #define COOLERMASTER_KEYBOARD_SK653_PID 0x01AB // [openrgb #3571, signal] extern const unsigned int COOLERMASTER_KEYBOARD_DEVICE_COUNT; extern const cm_kb_device** cm_kb_device_list;