mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2025-12-28 17:57:51 -05:00
+ Adding PID `0x0282` for the Huntsman Mini Analog + Added metadata to RazerDevices.cpp + Registered detectors + Added capabilities to RazerController.cpp + Resolves #3387
275 lines
15 KiB
C++
275 lines
15 KiB
C++
/*-----------------------------------------*\
|
|
| RazerDevices.h |
|
|
| |
|
|
| Razer device table definitions |
|
|
| |
|
|
| Adam Honse (CalcProgrammer1) 9/4/2021 |
|
|
\*-----------------------------------------*/
|
|
|
|
#include <string>
|
|
#include "RGBController.h"
|
|
#include "RGBControllerKeyNames.h"
|
|
#include "RazerController.h"
|
|
#include "KeyboardLayoutManager.h"
|
|
|
|
/*-----------------------------------------------------*\
|
|
| Razer vendor ID |
|
|
\*-----------------------------------------------------*/
|
|
#define RAZER_VID 0x1532
|
|
|
|
/*-----------------------------------------------------*\
|
|
| Razer maximum zones |
|
|
| If a new device has more than RAZER_MAX_ZONES, |
|
|
| increment RAZER_MAX_ZONES and update all device |
|
|
| tables accordingly. |
|
|
\*-----------------------------------------------------*/
|
|
#define RAZER_MAX_ZONES 6
|
|
|
|
/*-----------------------------------------------------*\
|
|
| Keyboard product IDs |
|
|
| List taken from OpenRazer |
|
|
| Non-RGB keyboards were omitted from this list |
|
|
\*-----------------------------------------------------*/
|
|
#define RAZER_BLACKWIDOW_2019_PID 0x0241
|
|
#define RAZER_BLACKWIDOW_CHROMA_PID 0x0203
|
|
#define RAZER_BLACKWIDOW_CHROMA_TE_PID 0x0209
|
|
#define RAZER_BLACKWIDOW_CHROMA_V2_PID 0x0221
|
|
#define RAZER_BLACKWIDOW_ELITE_PID 0x0228
|
|
#define RAZER_BLACKWIDOW_ESSENTIAL_PID 0x0237
|
|
#define RAZER_BLACKWIDOW_LITE_PID 0x0235
|
|
#define RAZER_BLACKWIDOW_OVERWATCH_PID 0x0211
|
|
#define RAZER_BLACKWIDOW_V3_PID 0x024E
|
|
#define RAZER_BLACKWIDOW_V3_MINI_WIRED_PID 0x0258
|
|
#define RAZER_BLACKWIDOW_V3_MINI_WIRELESS_PID 0x0271
|
|
#define RAZER_BLACKWIDOW_V3_PRO_WIRED_PID 0x025A
|
|
#define RAZER_BLACKWIDOW_V3_PRO_BLUETOOTH_PID 0x025B
|
|
#define RAZER_BLACKWIDOW_V3_PRO_WIRELESS_PID 0x025C
|
|
#define RAZER_BLACKWIDOW_V3_TKL_PID 0x0A24
|
|
#define RAZER_BLACKWIDOW_V4_PID 0x0287
|
|
#define RAZER_BLACKWIDOW_V4_PRO_PID 0x028D
|
|
#define RAZER_BLACKWIDOW_V4_X_PID 0x0293
|
|
#define RAZER_BLACKWIDOW_X_CHROMA_PID 0x0216
|
|
#define RAZER_BLACKWIDOW_X_CHROMA_TE_PID 0x021A
|
|
#define RAZER_BLADE_2016_PID 0x020F
|
|
#define RAZER_BLADE_LATE_2016_PID 0x0224
|
|
#define RAZER_BLADE_2018_ADVANCED_PID 0x0233
|
|
#define RAZER_BLADE_2018_BASE_PID 0x023B
|
|
#define RAZER_BLADE_2018_MERCURY_PID 0x0240
|
|
#define RAZER_BLADE_2019_ADVANCED_PID 0x023A
|
|
#define RAZER_BLADE_2019_BASE_PID 0x0246
|
|
#define RAZER_BLADE_2019_MERCURY_PID 0x0245
|
|
#define RAZER_BLADE_2019_STUDIO_PID 0x024D
|
|
#define RAZER_BLADE_2020_ADVANCED_PID 0x0253
|
|
#define RAZER_BLADE_2020_BASE_PID 0x0255
|
|
#define RAZER_BLADE_LATE_2020_PID 0x0268
|
|
#define RAZER_BLADE_2021_ADVANCED_PID 0x026D
|
|
#define RAZER_BLADE_2021_BASE_PID 0x026F
|
|
#define RAZER_BLADE_2021_BASE_V2_PID 0x027A
|
|
#define RAZER_BLADE_LATE_2021_ADVANCED_PID 0x0276
|
|
|
|
#define RAZER_BLADE_14_2021_PID 0x0270
|
|
#define RAZER_BLADE_14_2022_PID 0x028C
|
|
#define RAZER_BLADE_14_2023_PID 0x029D
|
|
#define RAZER_BLADE_15_2022_PID 0x028A
|
|
|
|
#define RAZER_BLADE_PRO_2016_PID 0x0210
|
|
#define RAZER_BLADE_PRO_2017_PID 0x0225
|
|
#define RAZER_BLADE_PRO_2017_FULLHD_PID 0x022F
|
|
#define RAZER_BLADE_PRO_2019_PID 0x0234
|
|
#define RAZER_BLADE_PRO_LATE_2019_PID 0x024C
|
|
#define RAZER_BLADE_PRO_17_2020_PID 0x0256
|
|
#define RAZER_BLADE_PRO_17_2021_PID 0x0279
|
|
|
|
#define RAZER_BLADE_STEALTH_2016_PID 0x0205
|
|
#define RAZER_BLADE_STEALTH_LATE_2016_PID 0x0220
|
|
#define RAZER_BLADE_STEALTH_2017_PID 0x022D
|
|
#define RAZER_BLADE_STEALTH_LATE_2017_PID 0x0232
|
|
#define RAZER_BLADE_STEALTH_2019_PID 0x0239
|
|
#define RAZER_BLADE_STEALTH_LATE_2019_PID 0x024A
|
|
#define RAZER_BLADE_STEALTH_2020_PID 0x0252
|
|
#define RAZER_BLADE_STEALTH_LATE_2020_PID 0x0259
|
|
|
|
#define RAZER_BOOK_13_2020_PID 0x026A
|
|
|
|
#define RAZER_CYNOSA_CHROMA_PID 0x022A
|
|
#define RAZER_CYNOSA_LITE_PID 0x023F
|
|
#define RAZER_CYNOSA_V2_PID 0x025E
|
|
#define RAZER_DEATHSTALKER_CHROMA_PID 0x0204
|
|
#define RAZER_DEATHSTALKER_V2_PID 0x0295
|
|
#define RAZER_DEATHSTALKER_V2_PRO_TKL_WIRELESS_PID 0x0296
|
|
#define RAZER_DEATHSTALKER_V2_PRO_TKL_WIRED_PID 0x0298
|
|
#define RAZER_DEATHSTALKER_V2_PRO_TKL_BT_PID 0x0297
|
|
#define RAZER_DEATHSTALKER_V2_PRO_WIRELESS_PID 0x0290
|
|
#define RAZER_DEATHSTALKER_V2_PRO_WIRED_PID 0x0292
|
|
#define RAZER_HUNTSMAN_ELITE_PID 0x0226
|
|
#define RAZER_HUNTSMAN_PID 0x0227
|
|
#define RAZER_HUNTSMAN_MINI_PID 0x0257
|
|
#define RAZER_HUNTSMAN_MINI_ANALOG_PID 0x0282
|
|
#define RAZER_HUNTSMAN_TE_PID 0x0243
|
|
#define RAZER_HUNTSMAN_V2_ANALOG_PID 0x0266
|
|
#define RAZER_HUNTSMAN_V2_TKL_PID 0x026B
|
|
#define RAZER_HUNTSMAN_V2_PID 0x026C
|
|
#define RAZER_ORBWEAVER_CHROMA_PID 0x0207
|
|
#define RAZER_ORNATA_CHROMA_PID 0x021E
|
|
#define RAZER_ORNATA_CHROMA_V2_PID 0x025D
|
|
#define RAZER_ORNATA_V3_PID 0x028F
|
|
#define RAZER_ORNATA_V3_REV2_PID 0x02A1
|
|
#define RAZER_ORNATA_V3_TKL_PID 0x02A3
|
|
#define RAZER_ORNATA_V3_X_PID 0x0294
|
|
#define RAZER_ORNATA_V3_X_REV2_PID 0x02A2
|
|
#define RAZER_TARTARUS_CHROMA_PID 0x0208
|
|
#define RAZER_TARTARUS_PRO_PID 0x0244
|
|
#define RAZER_TARTARUS_V2_PID 0x022B
|
|
|
|
/*-----------------------------------------------------*\
|
|
| Mouse product IDs |
|
|
| List taken from OpenRazer |
|
|
\*-----------------------------------------------------*/
|
|
#define RAZER_ABYSSUS_1800_PID 0x0020
|
|
#define RAZER_ABYSSUS_2000_PID 0x005E
|
|
#define RAZER_ABYSSUS_ELITE_DVA_EDITION_PID 0x006A
|
|
#define RAZER_ABYSSUS_ESSENTIAL_PID 0x006B
|
|
#define RAZER_ABYSSUS_PID 0x0042
|
|
#define RAZER_ABYSSUS_V2_PID 0x005B
|
|
#define RAZER_ATHERIS_RECEIVER_PID 0x0062
|
|
#define RAZER_BASILISK_PID 0x0064
|
|
#define RAZER_BASILISK_ESSENTIAL_PID 0x0065
|
|
#define RAZER_BASILISK_ULTIMATE_WIRED_PID 0x0086
|
|
#define RAZER_BASILISK_ULTIMATE_WIRELESS_PID 0x0088
|
|
#define RAZER_BASILISK_X_HYPERSPEED_PID 0x0083
|
|
#define RAZER_BASILISK_V2_PID 0x0085
|
|
#define RAZER_BASILISK_V3_PID 0x0099
|
|
#define RAZER_BASILISK_V3_PRO_WIRED_PID 0x00AA
|
|
#define RAZER_BASILISK_V3_PRO_WIRELESS_PID 0x00AB
|
|
#define RAZER_BASILISK_V3_PRO_BLUETOOTH_PID 0x00AC
|
|
#define RAZER_BASILISK_V3_X_HYPERSPEED_PID 0x00B9
|
|
#define RAZER_COBRA_PID 0x00A3
|
|
#define RAZER_DEATHADDER_1800_PID 0x0038
|
|
#define RAZER_DEATHADDER_2000_PID 0x004F
|
|
#define RAZER_DEATHADDER_2013_PID 0x0037
|
|
#define RAZER_DEATHADDER_3_5G_PID 0x0016
|
|
#define RAZER_DEATHADDER_3500_PID 0x0054
|
|
#define RAZER_DEATHADDER_CHROMA_PID 0x0043
|
|
#define RAZER_DEATHADDER_ELITE_PID 0x005C
|
|
#define RAZER_DEATHADDER_ESSENTIAL_PID 0x006E
|
|
#define RAZER_DEATHADDER_ESSENTIAL_V2_PID 0x0098
|
|
#define RAZER_DEATHADDER_ESSENTIAL_WHITE_EDITION_PID 0x0071
|
|
#define RAZER_DEATHADDER_V2_MINI_PID 0x008C
|
|
#define RAZER_DEATHADDER_V2_PID 0x0084
|
|
#define RAZER_DEATHADDER_V2_PRO_WIRED_PID 0x007C
|
|
#define RAZER_DEATHADDER_V2_PRO_WIRELESS_PID 0x007D
|
|
#define RAZER_DIAMONDBACK_CHROMA_PID 0x004C
|
|
#define RAZER_IMPERATOR_PID 0x002F
|
|
#define RAZER_LANCEHEAD_TE_WIRED_PID 0x0060
|
|
#define RAZER_LANCEHEAD_2017_WIRED_PID 0x0059
|
|
#define RAZER_LANCEHEAD_2017_WIRELESS_PID 0x005A
|
|
#define RAZER_LANCEHEAD_2019_WIRED_PID 0x0070
|
|
#define RAZER_LANCEHEAD_2019_WIRELESS_PID 0x006F
|
|
#define RAZER_MAMBA_2012_WIRED_PID 0x0024
|
|
#define RAZER_MAMBA_2012_WIRELESS_PID 0x0025
|
|
#define RAZER_MAMBA_2015_WIRED_PID 0x0044
|
|
#define RAZER_MAMBA_2015_WIRELESS_PID 0x0045
|
|
#define RAZER_MAMBA_2018_WIRED_PID 0x0073
|
|
#define RAZER_MAMBA_2018_WIRELESS_PID 0x0072
|
|
#define RAZER_MAMBA_ELITE_PID 0x006C
|
|
#define RAZER_MAMBA_HYPERFLUX_PID 0x0069
|
|
#define RAZER_MAMBA_TE_PID 0x0046
|
|
#define RAZER_NAGA_2012_PID 0x002E
|
|
#define RAZER_NAGA_2014_PID 0x0040
|
|
#define RAZER_NAGA_CHROMA_PID 0x0053
|
|
#define RAZER_NAGA_CLASSIC_PID 0x0093
|
|
#define RAZER_NAGA_EPIC_CHROMA_DOCK_PID 0x003F
|
|
#define RAZER_NAGA_EPIC_CHROMA_PID 0x003E
|
|
#define RAZER_NAGA_HEX_PID 0x0041
|
|
#define RAZER_NAGA_HEX_RED_PID 0x0036
|
|
#define RAZER_NAGA_HEX_V2_PID 0x0050
|
|
#define RAZER_NAGA_LEFT_HANDED_PID 0x008D
|
|
#define RAZER_NAGA_TRINITY_PID 0x0067
|
|
#define RAZER_NAGA_PRO_WIRED_PID 0x008F
|
|
#define RAZER_NAGA_PRO_WIRELESS_PID 0x0090
|
|
#define RAZER_NAGA_PRO_V2_WIRED_PID 0x00A7
|
|
#define RAZER_NAGA_PRO_V2_WIRELESS_PID 0x00A8
|
|
#define RAZER_OROCHI_2011_PID 0x0013
|
|
#define RAZER_OROCHI_2013_PID 0x0039
|
|
#define RAZER_OROCHI_CHROMA_PID 0x0048
|
|
#define RAZER_OUROBOROS_PID 0x0032
|
|
#define RAZER_TAIPAN_PID 0x0034
|
|
#define RAZER_VIPER_8KHZ_PID 0x0091
|
|
#define RAZER_VIPER_MINI_PID 0x008A
|
|
#define RAZER_VIPER_PID 0x0078
|
|
#define RAZER_VIPER_ULTIMATE_WIRED_PID 0x007A
|
|
#define RAZER_VIPER_ULTIMATE_WIRELESS_PID 0x007B
|
|
|
|
/*-----------------------------------------------------*\
|
|
| Headset product IDs |
|
|
\*-----------------------------------------------------*/
|
|
#define RAZER_KRAKEN_CLASSIC_ALT_PID 0x0506
|
|
#define RAZER_KRAKEN_CLASSIC_PID 0x0501
|
|
#define RAZER_KRAKEN_KITTY_EDITION_PID 0x0F19
|
|
#define RAZER_KRAKEN_KITTY_BLACK_EDITION_PID 0x0F21
|
|
#define RAZER_KRAKEN_PID 0x0504
|
|
#define RAZER_KRAKEN_ULTIMATE_PID 0x0527
|
|
#define RAZER_KRAKEN_V2_PID 0x0510
|
|
#define RAZER_KRAKEN_KITTY_BLACK_EDITION_V2_PID 0x0560
|
|
#define RAZER_TIAMAT_71_V2_PID 0x0F03
|
|
|
|
/*-----------------------------------------------------*\
|
|
| Accessory product IDs |
|
|
| List taken from OpenRazer |
|
|
\*-----------------------------------------------------*/
|
|
#define RAZER_BASE_STATION_CHROMA_PID 0x0F08
|
|
#define RAZER_BASE_STATION_V2_CHROMA_PID 0x0F20
|
|
#define RAZER_CHARGING_PAD_CHROMA_PID 0x0F26
|
|
#define RAZER_CHROMA_ADDRESSABLE_RGB_CONTROLLER_PID 0x0F1F
|
|
#define RAZER_CHROMA_HDK_PID 0x0F09
|
|
#define RAZER_CHROMA_MUG_PID 0x0F07
|
|
#define RAZER_CHROMA_PC_CASE_LIGHTING_KIT_PID 0x0F0E
|
|
#define RAZER_CORE_PID 0x0215
|
|
#define RAZER_CORE_X_PID 0x0F1A
|
|
#define RAZER_FIREFLY_HYPERFLUX_PID 0x0068
|
|
#define RAZER_FIREFLY_PID 0x0C00
|
|
#define RAZER_FIREFLY_V2_PID 0x0C04
|
|
#define RAZER_GOLIATHUS_CHROMA_EXTENDED_PID 0x0C02
|
|
#define RAZER_GOLIATHUS_CHROMA_PID 0x0C01
|
|
#define RAZER_GOLIATHUS_CHROMA_3XL_PID 0x0C06
|
|
#define RAZER_LAPTOP_STAND_CHROMA_PID 0x0F0D
|
|
#define RAZER_LAPTOP_STAND_CHROMA_V2_PID 0x0F2B
|
|
#define RAZER_LEVIATHAN_V2_PID 0x0532
|
|
#define RAZER_LEVIATHAN_V2X_PID 0x054A
|
|
#define RAZER_MOUSE_BUNGEE_V3_CHROMA_PID 0x0F1D
|
|
#define RAZER_MOUSE_DOCK_CHROMA_PID 0x007E
|
|
#define RAZER_MOUSE_DOCK_PRO_PID 0x00A4
|
|
#define RAZER_NOMMO_CHROMA_PID 0x0517
|
|
#define RAZER_NOMMO_PRO_PID 0x0518
|
|
#define RAZER_O11_DYNAMIC_PID 0x0F13
|
|
#define RAZER_SEIREN_EMOTE_PID 0x0F1B
|
|
#define RAZER_STRIDER_CHROMA_PID 0x0C05
|
|
#define RAZER_THUNDERBOLT_4_DOCK_CHROMA_PID 0x0F21
|
|
|
|
typedef struct
|
|
{
|
|
std::string name;
|
|
unsigned int type;
|
|
unsigned int rows;
|
|
unsigned int cols;
|
|
} razer_zone;
|
|
|
|
typedef struct
|
|
{
|
|
std::string name;
|
|
unsigned short pid;
|
|
device_type type;
|
|
unsigned char matrix_type;
|
|
unsigned char transaction_id;
|
|
unsigned int rows;
|
|
unsigned int cols;
|
|
const razer_zone* zones[RAZER_MAX_ZONES];
|
|
keyboard_keymap_overlay_values* layout;
|
|
} razer_device;
|
|
|
|
/*-----------------------------------------------------*\
|
|
| These constant values are defined in RazerDevices.cpp |
|
|
\*-----------------------------------------------------*/
|
|
extern const unsigned int RAZER_NUM_DEVICES;
|
|
extern const razer_device** device_list;
|