@openmouse/protocol 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +167 -0
- package/README.md +89 -0
- package/dist/asus/index.d.ts +52 -0
- package/dist/asus/index.d.ts.map +1 -0
- package/dist/asus/index.js +248 -0
- package/dist/asus/index.js.map +1 -0
- package/dist/atk/index.d.ts +200 -0
- package/dist/atk/index.d.ts.map +1 -0
- package/dist/atk/index.js +480 -0
- package/dist/atk/index.js.map +1 -0
- package/dist/bitmouse/index.d.ts +284 -0
- package/dist/bitmouse/index.d.ts.map +1 -0
- package/dist/bitmouse/index.js +396 -0
- package/dist/bitmouse/index.js.map +1 -0
- package/dist/compx/codec.d.ts +31 -0
- package/dist/compx/codec.d.ts.map +1 -0
- package/dist/compx/codec.js +50 -0
- package/dist/compx/codec.js.map +1 -0
- package/dist/corsair/index.d.ts +147 -0
- package/dist/corsair/index.d.ts.map +1 -0
- package/dist/corsair/index.js +223 -0
- package/dist/corsair/index.js.map +1 -0
- package/dist/dareu/index.d.ts +136 -0
- package/dist/dareu/index.d.ts.map +1 -0
- package/dist/dareu/index.js +344 -0
- package/dist/dareu/index.js.map +1 -0
- package/dist/drivers/asus/hid.d.ts +29 -0
- package/dist/drivers/asus/hid.d.ts.map +1 -0
- package/dist/drivers/asus/hid.js +419 -0
- package/dist/drivers/asus/hid.js.map +1 -0
- package/dist/drivers/atk/bitmouse-hid.d.ts +80 -0
- package/dist/drivers/atk/bitmouse-hid.d.ts.map +1 -0
- package/dist/drivers/atk/bitmouse-hid.js +501 -0
- package/dist/drivers/atk/bitmouse-hid.js.map +1 -0
- package/dist/drivers/atk/hid.d.ts +163 -0
- package/dist/drivers/atk/hid.d.ts.map +1 -0
- package/dist/drivers/atk/hid.js +1368 -0
- package/dist/drivers/atk/hid.js.map +1 -0
- package/dist/drivers/atk/products.d.ts +13 -0
- package/dist/drivers/atk/products.d.ts.map +1 -0
- package/dist/drivers/atk/products.js +13 -0
- package/dist/drivers/atk/products.js.map +1 -0
- package/dist/drivers/attackshark/dpi.d.ts +41 -0
- package/dist/drivers/attackshark/dpi.d.ts.map +1 -0
- package/dist/drivers/attackshark/dpi.js +215 -0
- package/dist/drivers/attackshark/dpi.js.map +1 -0
- package/dist/drivers/attackshark/hid.d.ts +124 -0
- package/dist/drivers/attackshark/hid.d.ts.map +1 -0
- package/dist/drivers/attackshark/hid.js +728 -0
- package/dist/drivers/attackshark/hid.js.map +1 -0
- package/dist/drivers/corsair/hid.d.ts +70 -0
- package/dist/drivers/corsair/hid.d.ts.map +1 -0
- package/dist/drivers/corsair/hid.js +414 -0
- package/dist/drivers/corsair/hid.js.map +1 -0
- package/dist/drivers/dareu/hid.d.ts +59 -0
- package/dist/drivers/dareu/hid.d.ts.map +1 -0
- package/dist/drivers/dareu/hid.js +478 -0
- package/dist/drivers/dareu/hid.js.map +1 -0
- package/dist/drivers/endgame/egg-op1-hid.d.ts +107 -0
- package/dist/drivers/endgame/egg-op1-hid.d.ts.map +1 -0
- package/dist/drivers/endgame/egg-op1-hid.js +605 -0
- package/dist/drivers/endgame/egg-op1-hid.js.map +1 -0
- package/dist/drivers/endgame/egg-we-control.d.ts +42 -0
- package/dist/drivers/endgame/egg-we-control.d.ts.map +1 -0
- package/dist/drivers/endgame/egg-we-control.js +87 -0
- package/dist/drivers/endgame/egg-we-control.js.map +1 -0
- package/dist/drivers/endgame/egg-we-hid.d.ts +58 -0
- package/dist/drivers/endgame/egg-we-hid.d.ts.map +1 -0
- package/dist/drivers/endgame/egg-we-hid.js +514 -0
- package/dist/drivers/endgame/egg-we-hid.js.map +1 -0
- package/dist/drivers/fantech/hid.d.ts +106 -0
- package/dist/drivers/fantech/hid.d.ts.map +1 -0
- package/dist/drivers/fantech/hid.js +295 -0
- package/dist/drivers/fantech/hid.js.map +1 -0
- package/dist/drivers/finalmouse/hid.d.ts +31 -0
- package/dist/drivers/finalmouse/hid.d.ts.map +1 -0
- package/dist/drivers/finalmouse/hid.js +181 -0
- package/dist/drivers/finalmouse/hid.js.map +1 -0
- package/dist/drivers/gearhub/hid.d.ts +191 -0
- package/dist/drivers/gearhub/hid.d.ts.map +1 -0
- package/dist/drivers/gearhub/hid.js +542 -0
- package/dist/drivers/gearhub/hid.js.map +1 -0
- package/dist/drivers/glorious/classic-hid.d.ts +62 -0
- package/dist/drivers/glorious/classic-hid.d.ts.map +1 -0
- package/dist/drivers/glorious/classic-hid.js +326 -0
- package/dist/drivers/glorious/classic-hid.js.map +1 -0
- package/dist/drivers/glorious/hid.d.ts +39 -0
- package/dist/drivers/glorious/hid.d.ts.map +1 -0
- package/dist/drivers/glorious/hid.js +203 -0
- package/dist/drivers/glorious/hid.js.map +1 -0
- package/dist/drivers/gwolves/hid.d.ts +27 -0
- package/dist/drivers/gwolves/hid.d.ts.map +1 -0
- package/dist/drivers/gwolves/hid.js +225 -0
- package/dist/drivers/gwolves/hid.js.map +1 -0
- package/dist/drivers/gwolves/products.d.ts +17 -0
- package/dist/drivers/gwolves/products.d.ts.map +1 -0
- package/dist/drivers/gwolves/products.js +58 -0
- package/dist/drivers/gwolves/products.js.map +1 -0
- package/dist/drivers/hyperx/hid.d.ts +59 -0
- package/dist/drivers/hyperx/hid.d.ts.map +1 -0
- package/dist/drivers/hyperx/hid.js +229 -0
- package/dist/drivers/hyperx/hid.js.map +1 -0
- package/dist/drivers/incott/hid.d.ts +513 -0
- package/dist/drivers/incott/hid.d.ts.map +1 -0
- package/dist/drivers/incott/hid.js +1173 -0
- package/dist/drivers/incott/hid.js.map +1 -0
- package/dist/drivers/index.d.ts +5 -0
- package/dist/drivers/index.d.ts.map +1 -0
- package/dist/drivers/index.js +5 -0
- package/dist/drivers/index.js.map +1 -0
- package/dist/drivers/keychron/m6-hid.d.ts +81 -0
- package/dist/drivers/keychron/m6-hid.d.ts.map +1 -0
- package/dist/drivers/keychron/m6-hid.js +486 -0
- package/dist/drivers/keychron/m6-hid.js.map +1 -0
- package/dist/drivers/keychron/nape-hid.d.ts +60 -0
- package/dist/drivers/keychron/nape-hid.d.ts.map +1 -0
- package/dist/drivers/keychron/nape-hid.js +432 -0
- package/dist/drivers/keychron/nape-hid.js.map +1 -0
- package/dist/drivers/ksnake/hid.d.ts +74 -0
- package/dist/drivers/ksnake/hid.d.ts.map +1 -0
- package/dist/drivers/ksnake/hid.js +368 -0
- package/dist/drivers/ksnake/hid.js.map +1 -0
- package/dist/drivers/lamzu/hid.d.ts +58 -0
- package/dist/drivers/lamzu/hid.d.ts.map +1 -0
- package/dist/drivers/lamzu/hid.js +414 -0
- package/dist/drivers/lamzu/hid.js.map +1 -0
- package/dist/drivers/lamzu-atlantis/hid.d.ts +148 -0
- package/dist/drivers/lamzu-atlantis/hid.d.ts.map +1 -0
- package/dist/drivers/lamzu-atlantis/hid.js +587 -0
- package/dist/drivers/lamzu-atlantis/hid.js.map +1 -0
- package/dist/drivers/logitech/bolt.d.ts +41 -0
- package/dist/drivers/logitech/bolt.d.ts.map +1 -0
- package/dist/drivers/logitech/bolt.js +105 -0
- package/dist/drivers/logitech/bolt.js.map +1 -0
- package/dist/drivers/logitech/hidpp.d.ts +525 -0
- package/dist/drivers/logitech/hidpp.d.ts.map +1 -0
- package/dist/drivers/logitech/hidpp.js +2774 -0
- package/dist/drivers/logitech/hidpp.js.map +1 -0
- package/dist/drivers/logitech/mode-status.d.ts +53 -0
- package/dist/drivers/logitech/mode-status.d.ts.map +1 -0
- package/dist/drivers/logitech/mode-status.js +52 -0
- package/dist/drivers/logitech/mode-status.js.map +1 -0
- package/dist/drivers/logitech/onboard-profiles.d.ts +298 -0
- package/dist/drivers/logitech/onboard-profiles.d.ts.map +1 -0
- package/dist/drivers/logitech/onboard-profiles.js +965 -0
- package/dist/drivers/logitech/onboard-profiles.js.map +1 -0
- package/dist/drivers/logitech/rgb-effects.d.ts +20 -0
- package/dist/drivers/logitech/rgb-effects.d.ts.map +1 -0
- package/dist/drivers/logitech/rgb-effects.js +93 -0
- package/dist/drivers/logitech/rgb-effects.js.map +1 -0
- package/dist/drivers/mchose/a5-gen1-hid.d.ts +36 -0
- package/dist/drivers/mchose/a5-gen1-hid.d.ts.map +1 -0
- package/dist/drivers/mchose/a5-gen1-hid.js +219 -0
- package/dist/drivers/mchose/a5-gen1-hid.js.map +1 -0
- package/dist/drivers/mchose/dock-hid.d.ts +26 -0
- package/dist/drivers/mchose/dock-hid.d.ts.map +1 -0
- package/dist/drivers/mchose/dock-hid.js +176 -0
- package/dist/drivers/mchose/dock-hid.js.map +1 -0
- package/dist/drivers/mchose/hid.d.ts +118 -0
- package/dist/drivers/mchose/hid.d.ts.map +1 -0
- package/dist/drivers/mchose/hid.js +550 -0
- package/dist/drivers/mchose/hid.js.map +1 -0
- package/dist/drivers/mchose/v3-hid.d.ts +109 -0
- package/dist/drivers/mchose/v3-hid.d.ts.map +1 -0
- package/dist/drivers/mchose/v3-hid.js +572 -0
- package/dist/drivers/mchose/v3-hid.js.map +1 -0
- package/dist/drivers/microsoft/hid.d.ts +25 -0
- package/dist/drivers/microsoft/hid.d.ts.map +1 -0
- package/dist/drivers/microsoft/hid.js +247 -0
- package/dist/drivers/microsoft/hid.js.map +1 -0
- package/dist/drivers/moddo/hid.d.ts +31 -0
- package/dist/drivers/moddo/hid.d.ts.map +1 -0
- package/dist/drivers/moddo/hid.js +154 -0
- package/dist/drivers/moddo/hid.js.map +1 -0
- package/dist/drivers/mouse-types.d.ts +388 -0
- package/dist/drivers/mouse-types.d.ts.map +1 -0
- package/dist/drivers/mouse-types.js +2 -0
- package/dist/drivers/mouse-types.js.map +1 -0
- package/dist/drivers/ninjutso/hid.d.ts +62 -0
- package/dist/drivers/ninjutso/hid.d.ts.map +1 -0
- package/dist/drivers/ninjutso/hid.js +680 -0
- package/dist/drivers/ninjutso/hid.js.map +1 -0
- package/dist/drivers/orbital/hid.d.ts +24 -0
- package/dist/drivers/orbital/hid.d.ts.map +1 -0
- package/dist/drivers/orbital/hid.js +85 -0
- package/dist/drivers/orbital/hid.js.map +1 -0
- package/dist/drivers/orbital/host-protocol.d.ts +59 -0
- package/dist/drivers/orbital/host-protocol.d.ts.map +1 -0
- package/dist/drivers/orbital/host-protocol.js +884 -0
- package/dist/drivers/orbital/host-protocol.js.map +1 -0
- package/dist/drivers/pulsar/pulsar-hid.d.ts +63 -0
- package/dist/drivers/pulsar/pulsar-hid.d.ts.map +1 -0
- package/dist/drivers/pulsar/pulsar-hid.js +381 -0
- package/dist/drivers/pulsar/pulsar-hid.js.map +1 -0
- package/dist/drivers/pulsar/pulsar-pro-hid.d.ts +46 -0
- package/dist/drivers/pulsar/pulsar-pro-hid.d.ts.map +1 -0
- package/dist/drivers/pulsar/pulsar-pro-hid.js +343 -0
- package/dist/drivers/pulsar/pulsar-pro-hid.js.map +1 -0
- package/dist/drivers/pulsar/pulsar-xs1-hid.d.ts +40 -0
- package/dist/drivers/pulsar/pulsar-xs1-hid.d.ts.map +1 -0
- package/dist/drivers/pulsar/pulsar-xs1-hid.js +251 -0
- package/dist/drivers/pulsar/pulsar-xs1-hid.js.map +1 -0
- package/dist/drivers/rawm/hid.d.ts +29 -0
- package/dist/drivers/rawm/hid.d.ts.map +1 -0
- package/dist/drivers/rawm/hid.js +210 -0
- package/dist/drivers/rawm/hid.js.map +1 -0
- package/dist/drivers/razer/cobra-hid.d.ts +63 -0
- package/dist/drivers/razer/cobra-hid.d.ts.map +1 -0
- package/dist/drivers/razer/cobra-hid.js +282 -0
- package/dist/drivers/razer/cobra-hid.js.map +1 -0
- package/dist/drivers/razer/hid-open.d.ts +13 -0
- package/dist/drivers/razer/hid-open.d.ts.map +1 -0
- package/dist/drivers/razer/hid-open.js +29 -0
- package/dist/drivers/razer/hid-open.js.map +1 -0
- package/dist/drivers/razer/hid.d.ts +231 -0
- package/dist/drivers/razer/hid.d.ts.map +1 -0
- package/dist/drivers/razer/hid.js +772 -0
- package/dist/drivers/razer/hid.js.map +1 -0
- package/dist/drivers/razer/viper-hid.d.ts +33 -0
- package/dist/drivers/razer/viper-hid.d.ts.map +1 -0
- package/dist/drivers/razer/viper-hid.js +177 -0
- package/dist/drivers/razer/viper-hid.js.map +1 -0
- package/dist/drivers/razer/viper-mini-hid.d.ts +58 -0
- package/dist/drivers/razer/viper-mini-hid.d.ts.map +1 -0
- package/dist/drivers/razer/viper-mini-hid.js +273 -0
- package/dist/drivers/razer/viper-mini-hid.js.map +1 -0
- package/dist/drivers/razer/viper-v4-pro-hid.d.ts +26 -0
- package/dist/drivers/razer/viper-v4-pro-hid.d.ts.map +1 -0
- package/dist/drivers/razer/viper-v4-pro-hid.js +154 -0
- package/dist/drivers/razer/viper-v4-pro-hid.js.map +1 -0
- package/dist/drivers/registry.d.ts +70 -0
- package/dist/drivers/registry.d.ts.map +1 -0
- package/dist/drivers/registry.js +146 -0
- package/dist/drivers/registry.js.map +1 -0
- package/dist/drivers/steelseries/aerox3-hid.d.ts +53 -0
- package/dist/drivers/steelseries/aerox3-hid.d.ts.map +1 -0
- package/dist/drivers/steelseries/aerox3-hid.js +172 -0
- package/dist/drivers/steelseries/aerox3-hid.js.map +1 -0
- package/dist/drivers/steelseries/aerox5-hid.d.ts +54 -0
- package/dist/drivers/steelseries/aerox5-hid.d.ts.map +1 -0
- package/dist/drivers/steelseries/aerox5-hid.js +173 -0
- package/dist/drivers/steelseries/aerox5-hid.js.map +1 -0
- package/dist/drivers/steelseries/aerox5-wireless-hid.d.ts +69 -0
- package/dist/drivers/steelseries/aerox5-wireless-hid.d.ts.map +1 -0
- package/dist/drivers/steelseries/aerox5-wireless-hid.js +234 -0
- package/dist/drivers/steelseries/aerox5-wireless-hid.js.map +1 -0
- package/dist/drivers/steelseries/aerox9-wireless-hid.d.ts +70 -0
- package/dist/drivers/steelseries/aerox9-wireless-hid.d.ts.map +1 -0
- package/dist/drivers/steelseries/aerox9-wireless-hid.js +227 -0
- package/dist/drivers/steelseries/aerox9-wireless-hid.js.map +1 -0
- package/dist/drivers/steelseries/hid.d.ts +48 -0
- package/dist/drivers/steelseries/hid.d.ts.map +1 -0
- package/dist/drivers/steelseries/hid.js +157 -0
- package/dist/drivers/steelseries/hid.js.map +1 -0
- package/dist/drivers/steelseries/prime-mini-wireless-hid.d.ts +62 -0
- package/dist/drivers/steelseries/prime-mini-wireless-hid.d.ts.map +1 -0
- package/dist/drivers/steelseries/prime-mini-wireless-hid.js +215 -0
- package/dist/drivers/steelseries/prime-mini-wireless-hid.js.map +1 -0
- package/dist/drivers/steelseries/prime-plus-hid.d.ts +51 -0
- package/dist/drivers/steelseries/prime-plus-hid.d.ts.map +1 -0
- package/dist/drivers/steelseries/prime-plus-hid.js +150 -0
- package/dist/drivers/steelseries/prime-plus-hid.js.map +1 -0
- package/dist/drivers/steelseries/rival3-wireless-hid.d.ts +61 -0
- package/dist/drivers/steelseries/rival3-wireless-hid.d.ts.map +1 -0
- package/dist/drivers/steelseries/rival3-wireless-hid.js +185 -0
- package/dist/drivers/steelseries/rival3-wireless-hid.js.map +1 -0
- package/dist/drivers/steelseries/rival310-hid.d.ts +59 -0
- package/dist/drivers/steelseries/rival310-hid.d.ts.map +1 -0
- package/dist/drivers/steelseries/rival310-hid.js +182 -0
- package/dist/drivers/steelseries/rival310-hid.js.map +1 -0
- package/dist/drivers/steelseries/rival650-hid.d.ts +68 -0
- package/dist/drivers/steelseries/rival650-hid.d.ts.map +1 -0
- package/dist/drivers/steelseries/rival650-hid.js +209 -0
- package/dist/drivers/steelseries/rival650-hid.js.map +1 -0
- package/dist/drivers/steelseries/sensei-ten-hid.d.ts +62 -0
- package/dist/drivers/steelseries/sensei-ten-hid.d.ts.map +1 -0
- package/dist/drivers/steelseries/sensei-ten-hid.js +186 -0
- package/dist/drivers/steelseries/sensei-ten-hid.js.map +1 -0
- package/dist/drivers/teevolution/hid.d.ts +82 -0
- package/dist/drivers/teevolution/hid.d.ts.map +1 -0
- package/dist/drivers/teevolution/hid.js +607 -0
- package/dist/drivers/teevolution/hid.js.map +1 -0
- package/dist/drivers/vendors.d.ts +254 -0
- package/dist/drivers/vendors.d.ts.map +1 -0
- package/dist/drivers/vendors.js +587 -0
- package/dist/drivers/vendors.js.map +1 -0
- package/dist/drivers/vgn/hid.d.ts +33 -0
- package/dist/drivers/vgn/hid.d.ts.map +1 -0
- package/dist/drivers/vgn/hid.js +213 -0
- package/dist/drivers/vgn/hid.js.map +1 -0
- package/dist/drivers/wallhack/keyboard-hid.d.ts +28 -0
- package/dist/drivers/wallhack/keyboard-hid.d.ts.map +1 -0
- package/dist/drivers/wallhack/keyboard-hid.js +80 -0
- package/dist/drivers/wallhack/keyboard-hid.js.map +1 -0
- package/dist/drivers/wallhack/mouse-hid.d.ts +45 -0
- package/dist/drivers/wallhack/mouse-hid.d.ts.map +1 -0
- package/dist/drivers/wallhack/mouse-hid.js +288 -0
- package/dist/drivers/wallhack/mouse-hid.js.map +1 -0
- package/dist/drivers/webhid.d.ts +59 -0
- package/dist/drivers/webhid.d.ts.map +1 -0
- package/dist/drivers/webhid.js +2 -0
- package/dist/drivers/webhid.js.map +1 -0
- package/dist/drivers/wlmouse/hid.d.ts +81 -0
- package/dist/drivers/wlmouse/hid.d.ts.map +1 -0
- package/dist/drivers/wlmouse/hid.js +576 -0
- package/dist/drivers/wlmouse/hid.js.map +1 -0
- package/dist/drivers/wooting/hid.d.ts +86 -0
- package/dist/drivers/wooting/hid.d.ts.map +1 -0
- package/dist/drivers/wooting/hid.js +320 -0
- package/dist/drivers/wooting/hid.js.map +1 -0
- package/dist/drivers/zaunkoenig/hid.d.ts +31 -0
- package/dist/drivers/zaunkoenig/hid.d.ts.map +1 -0
- package/dist/drivers/zaunkoenig/hid.js +162 -0
- package/dist/drivers/zaunkoenig/hid.js.map +1 -0
- package/dist/endgame-gear/op1.d.ts +165 -0
- package/dist/endgame-gear/op1.d.ts.map +1 -0
- package/dist/endgame-gear/op1.js +384 -0
- package/dist/endgame-gear/op1.js.map +1 -0
- package/dist/endgame-gear/wireless.d.ts +93 -0
- package/dist/endgame-gear/wireless.d.ts.map +1 -0
- package/dist/endgame-gear/wireless.js +242 -0
- package/dist/endgame-gear/wireless.js.map +1 -0
- package/dist/fantech/index.d.ts +9 -0
- package/dist/fantech/index.d.ts.map +1 -0
- package/dist/fantech/index.js +11 -0
- package/dist/fantech/index.js.map +1 -0
- package/dist/finalmouse/index.d.ts +41 -0
- package/dist/finalmouse/index.d.ts.map +1 -0
- package/dist/finalmouse/index.js +106 -0
- package/dist/finalmouse/index.js.map +1 -0
- package/dist/gearhub/index.d.ts +210 -0
- package/dist/gearhub/index.d.ts.map +1 -0
- package/dist/gearhub/index.js +282 -0
- package/dist/gearhub/index.js.map +1 -0
- package/dist/glorious/index.d.ts +89 -0
- package/dist/glorious/index.d.ts.map +1 -0
- package/dist/glorious/index.js +236 -0
- package/dist/glorious/index.js.map +1 -0
- package/dist/glorious-classic/index.d.ts +103 -0
- package/dist/glorious-classic/index.d.ts.map +1 -0
- package/dist/glorious-classic/index.js +304 -0
- package/dist/glorious-classic/index.js.map +1 -0
- package/dist/gwolves/index.d.ts +82 -0
- package/dist/gwolves/index.d.ts.map +1 -0
- package/dist/gwolves/index.js +197 -0
- package/dist/gwolves/index.js.map +1 -0
- package/dist/hyperx/index.d.ts +181 -0
- package/dist/hyperx/index.d.ts.map +1 -0
- package/dist/hyperx/index.js +303 -0
- package/dist/hyperx/index.js.map +1 -0
- package/dist/incott/index.d.ts +1067 -0
- package/dist/incott/index.d.ts.map +1 -0
- package/dist/incott/index.js +1482 -0
- package/dist/incott/index.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/keychron/index.d.ts +194 -0
- package/dist/keychron/index.d.ts.map +1 -0
- package/dist/keychron/index.js +341 -0
- package/dist/keychron/index.js.map +1 -0
- package/dist/ksnake/index.d.ts +157 -0
- package/dist/ksnake/index.d.ts.map +1 -0
- package/dist/ksnake/index.js +314 -0
- package/dist/ksnake/index.js.map +1 -0
- package/dist/lamzu/atlantis.d.ts +237 -0
- package/dist/lamzu/atlantis.d.ts.map +1 -0
- package/dist/lamzu/atlantis.js +263 -0
- package/dist/lamzu/atlantis.js.map +1 -0
- package/dist/lamzu/index.d.ts +60 -0
- package/dist/lamzu/index.d.ts.map +1 -0
- package/dist/lamzu/index.js +86 -0
- package/dist/lamzu/index.js.map +1 -0
- package/dist/logitech/controls.d.ts +138 -0
- package/dist/logitech/controls.d.ts.map +1 -0
- package/dist/logitech/controls.js +184 -0
- package/dist/logitech/controls.js.map +1 -0
- package/dist/logitech/friendly-name.d.ts +50 -0
- package/dist/logitech/friendly-name.d.ts.map +1 -0
- package/dist/logitech/friendly-name.js +74 -0
- package/dist/logitech/friendly-name.js.map +1 -0
- package/dist/logitech/haptics.d.ts +97 -0
- package/dist/logitech/haptics.d.ts.map +1 -0
- package/dist/logitech/haptics.js +116 -0
- package/dist/logitech/haptics.js.map +1 -0
- package/dist/logitech/hosts.d.ts +55 -0
- package/dist/logitech/hosts.d.ts.map +1 -0
- package/dist/logitech/hosts.js +80 -0
- package/dist/logitech/hosts.js.map +1 -0
- package/dist/logitech/index.d.ts +127 -0
- package/dist/logitech/index.d.ts.map +1 -0
- package/dist/logitech/index.js +233 -0
- package/dist/logitech/index.js.map +1 -0
- package/dist/logitech/wheel.d.ts +117 -0
- package/dist/logitech/wheel.d.ts.map +1 -0
- package/dist/logitech/wheel.js +133 -0
- package/dist/logitech/wheel.js.map +1 -0
- package/dist/mchose/a5-gen1.d.ts +38 -0
- package/dist/mchose/a5-gen1.d.ts.map +1 -0
- package/dist/mchose/a5-gen1.js +60 -0
- package/dist/mchose/a5-gen1.js.map +1 -0
- package/dist/mchose/buttons.d.ts +66 -0
- package/dist/mchose/buttons.d.ts.map +1 -0
- package/dist/mchose/buttons.js +184 -0
- package/dist/mchose/buttons.js.map +1 -0
- package/dist/mchose/dock.d.ts +77 -0
- package/dist/mchose/dock.d.ts.map +1 -0
- package/dist/mchose/dock.js +133 -0
- package/dist/mchose/dock.js.map +1 -0
- package/dist/mchose/index.d.ts +299 -0
- package/dist/mchose/index.d.ts.map +1 -0
- package/dist/mchose/index.js +429 -0
- package/dist/mchose/index.js.map +1 -0
- package/dist/mchose/v3-buttons.d.ts +64 -0
- package/dist/mchose/v3-buttons.d.ts.map +1 -0
- package/dist/mchose/v3-buttons.js +258 -0
- package/dist/mchose/v3-buttons.js.map +1 -0
- package/dist/mchose/v3.d.ts +380 -0
- package/dist/mchose/v3.d.ts.map +1 -0
- package/dist/mchose/v3.js +608 -0
- package/dist/mchose/v3.js.map +1 -0
- package/dist/microsoft/index.d.ts +19 -0
- package/dist/microsoft/index.d.ts.map +1 -0
- package/dist/microsoft/index.js +22 -0
- package/dist/microsoft/index.js.map +1 -0
- package/dist/moddo/index.d.ts +72 -0
- package/dist/moddo/index.d.ts.map +1 -0
- package/dist/moddo/index.js +147 -0
- package/dist/moddo/index.js.map +1 -0
- package/dist/ninjutso/index.d.ts +74 -0
- package/dist/ninjutso/index.d.ts.map +1 -0
- package/dist/ninjutso/index.js +133 -0
- package/dist/ninjutso/index.js.map +1 -0
- package/dist/orbital/index.d.ts +14 -0
- package/dist/orbital/index.d.ts.map +1 -0
- package/dist/orbital/index.js +19 -0
- package/dist/orbital/index.js.map +1 -0
- package/dist/pulsar/index.d.ts +81 -0
- package/dist/pulsar/index.d.ts.map +1 -0
- package/dist/pulsar/index.js +185 -0
- package/dist/pulsar/index.js.map +1 -0
- package/dist/rawm/index.d.ts +55 -0
- package/dist/rawm/index.d.ts.map +1 -0
- package/dist/rawm/index.js +229 -0
- package/dist/rawm/index.js.map +1 -0
- package/dist/razer/codec.d.ts +504 -0
- package/dist/razer/codec.d.ts.map +1 -0
- package/dist/razer/codec.js +648 -0
- package/dist/razer/codec.js.map +1 -0
- package/dist/razer/devices.d.ts +156 -0
- package/dist/razer/devices.d.ts.map +1 -0
- package/dist/razer/devices.js +540 -0
- package/dist/razer/devices.js.map +1 -0
- package/dist/razer/index.d.ts +2 -0
- package/dist/razer/index.d.ts.map +1 -0
- package/dist/razer/index.js +2 -0
- package/dist/razer/index.js.map +1 -0
- package/dist/razer/v4.d.ts +19 -0
- package/dist/razer/v4.d.ts.map +1 -0
- package/dist/razer/v4.js +51 -0
- package/dist/razer/v4.js.map +1 -0
- package/dist/steelseries/aerox3.d.ts +236 -0
- package/dist/steelseries/aerox3.d.ts.map +1 -0
- package/dist/steelseries/aerox3.js +311 -0
- package/dist/steelseries/aerox3.js.map +1 -0
- package/dist/steelseries/aerox5-wireless.d.ts +300 -0
- package/dist/steelseries/aerox5-wireless.d.ts.map +1 -0
- package/dist/steelseries/aerox5-wireless.js +389 -0
- package/dist/steelseries/aerox5-wireless.js.map +1 -0
- package/dist/steelseries/aerox5.d.ts +228 -0
- package/dist/steelseries/aerox5.d.ts.map +1 -0
- package/dist/steelseries/aerox5.js +294 -0
- package/dist/steelseries/aerox5.js.map +1 -0
- package/dist/steelseries/aerox9-wireless.d.ts +213 -0
- package/dist/steelseries/aerox9-wireless.d.ts.map +1 -0
- package/dist/steelseries/aerox9-wireless.js +305 -0
- package/dist/steelseries/aerox9-wireless.js.map +1 -0
- package/dist/steelseries/devices.d.ts +82 -0
- package/dist/steelseries/devices.d.ts.map +1 -0
- package/dist/steelseries/devices.js +310 -0
- package/dist/steelseries/devices.js.map +1 -0
- package/dist/steelseries/index.d.ts +13 -0
- package/dist/steelseries/index.d.ts.map +1 -0
- package/dist/steelseries/index.js +13 -0
- package/dist/steelseries/index.js.map +1 -0
- package/dist/steelseries/prime-mini-wireless.d.ts +253 -0
- package/dist/steelseries/prime-mini-wireless.d.ts.map +1 -0
- package/dist/steelseries/prime-mini-wireless.js +351 -0
- package/dist/steelseries/prime-mini-wireless.js.map +1 -0
- package/dist/steelseries/prime-plus.d.ts +179 -0
- package/dist/steelseries/prime-plus.d.ts.map +1 -0
- package/dist/steelseries/prime-plus.js +275 -0
- package/dist/steelseries/prime-plus.js.map +1 -0
- package/dist/steelseries/rival3-wireless.d.ts +222 -0
- package/dist/steelseries/rival3-wireless.d.ts.map +1 -0
- package/dist/steelseries/rival3-wireless.js +308 -0
- package/dist/steelseries/rival3-wireless.js.map +1 -0
- package/dist/steelseries/rival3.d.ts +99 -0
- package/dist/steelseries/rival3.d.ts.map +1 -0
- package/dist/steelseries/rival3.js +147 -0
- package/dist/steelseries/rival3.js.map +1 -0
- package/dist/steelseries/rival310.d.ts +230 -0
- package/dist/steelseries/rival310.d.ts.map +1 -0
- package/dist/steelseries/rival310.js +322 -0
- package/dist/steelseries/rival310.js.map +1 -0
- package/dist/steelseries/rival650.d.ts +215 -0
- package/dist/steelseries/rival650.d.ts.map +1 -0
- package/dist/steelseries/rival650.js +284 -0
- package/dist/steelseries/rival650.js.map +1 -0
- package/dist/steelseries/sensei-ten.d.ts +283 -0
- package/dist/steelseries/sensei-ten.d.ts.map +1 -0
- package/dist/steelseries/sensei-ten.js +389 -0
- package/dist/steelseries/sensei-ten.js.map +1 -0
- package/dist/teevolution/index.d.ts +211 -0
- package/dist/teevolution/index.d.ts.map +1 -0
- package/dist/teevolution/index.js +458 -0
- package/dist/teevolution/index.js.map +1 -0
- package/dist/valkyrie/index.d.ts +19 -0
- package/dist/valkyrie/index.d.ts.map +1 -0
- package/dist/valkyrie/index.js +43 -0
- package/dist/valkyrie/index.js.map +1 -0
- package/dist/valkyrie/settings.d.ts +28 -0
- package/dist/valkyrie/settings.d.ts.map +1 -0
- package/dist/valkyrie/settings.js +84 -0
- package/dist/valkyrie/settings.js.map +1 -0
- package/dist/vgn/index.d.ts +59 -0
- package/dist/vgn/index.d.ts.map +1 -0
- package/dist/vgn/index.js +165 -0
- package/dist/vgn/index.js.map +1 -0
- package/dist/wallhack/index.d.ts +165 -0
- package/dist/wallhack/index.d.ts.map +1 -0
- package/dist/wallhack/index.js +226 -0
- package/dist/wallhack/index.js.map +1 -0
- package/dist/wlmouse/index.d.ts +4 -0
- package/dist/wlmouse/index.d.ts.map +1 -0
- package/dist/wlmouse/index.js +7 -0
- package/dist/wlmouse/index.js.map +1 -0
- package/dist/wooting/index.d.ts +225 -0
- package/dist/wooting/index.d.ts.map +1 -0
- package/dist/wooting/index.js +296 -0
- package/dist/wooting/index.js.map +1 -0
- package/dist/zaunkoenig/index.d.ts +49 -0
- package/dist/zaunkoenig/index.d.ts.map +1 -0
- package/dist/zaunkoenig/index.js +127 -0
- package/dist/zaunkoenig/index.js.map +1 -0
- package/package.json +193 -0
|
@@ -0,0 +1,540 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Razer per-PID capability registry.
|
|
3
|
+
*
|
|
4
|
+
* Razer's protocol is not self-describing: nothing on the wire says which
|
|
5
|
+
* commands a mouse answers, so the only way to know is a table keyed on the
|
|
6
|
+
* exact product id. This is that table, kept apart from the transport in
|
|
7
|
+
* `hid.ts` so adding a model is data rather than code.
|
|
8
|
+
*
|
|
9
|
+
* ## Provenance and what "supported" means here
|
|
10
|
+
*
|
|
11
|
+
* The product list and the transport grouping come from OpenRazer's public
|
|
12
|
+
* supported-device table and mouse driver (see
|
|
13
|
+
* `OPENRAZER_ALL_MICE_DEVELOPER_REFERENCE.md`). Only the entries marked
|
|
14
|
+
* `verified: true` have been exercised against real hardware by this project —
|
|
15
|
+
* everything else is transcribed protocol facts, not a tested driver.
|
|
16
|
+
*
|
|
17
|
+
* Nothing here is a guess about *packets*: every model below is driven by the
|
|
18
|
+
* same 90-byte commands already confirmed on the Viper V3 Pro. What varies per
|
|
19
|
+
* model, and what this table records, is which of those commands are valid,
|
|
20
|
+
* which transaction id the mouse answers on, and what the sensor and radio can
|
|
21
|
+
* actually do.
|
|
22
|
+
*
|
|
23
|
+
* ## Why an unverified entry is safe to ship
|
|
24
|
+
*
|
|
25
|
+
* - A wrong transaction id means the mouse never replies. `readStatus` throws
|
|
26
|
+
* on the firmware read and the panel reports a connection failure. Nothing
|
|
27
|
+
* is written.
|
|
28
|
+
* - A wrong capability flag suppresses a command rather than inventing one.
|
|
29
|
+
* - A wrong ceiling is caught by the read-back every setter already performs:
|
|
30
|
+
* the mouse keeps its own value, the driver notices and reports it.
|
|
31
|
+
*
|
|
32
|
+
* The one thing that would not be safe is sending a command a model does not
|
|
33
|
+
* implement, so unverified models are given the conservative flags below and
|
|
34
|
+
* the asymmetric lift-off *write probe* stays off for all of them.
|
|
35
|
+
*
|
|
36
|
+
* ## Deliberately absent
|
|
37
|
+
*
|
|
38
|
+
* - `legacy/old` (Orochi 2011 `0x0013`, DeathAdder 3.5G `0x0016`/`0x0029`).
|
|
39
|
+
* These predate the 90-byte report and need direct USB control writes, so
|
|
40
|
+
* this driver could only ever time out on them.
|
|
41
|
+
* - Orochi V2 Bluetooth (`0x0095`). A Bluetooth HID path is not the USB
|
|
42
|
+
* control channel and must not be assumed to take the same reports.
|
|
43
|
+
* - Viper Mini (`0x008a`), Viper V4 Pro (`0x00e5`/`0x00e6`) and Cobra
|
|
44
|
+
* (`0x00a3`), which have their own drivers in this folder. Listing them here
|
|
45
|
+
* would give two drivers the same device.
|
|
46
|
+
*/
|
|
47
|
+
import { RAZER_TRANSACTION_ID_1F, RAZER_TRANSACTION_ID_3F, RAZER_TRANSACTION_ID_FF, } from "./codec.js";
|
|
48
|
+
// The cable tops out at 1000 Hz on the models verified so far, which is also
|
|
49
|
+
// the ceiling the legacy polling command can encode.
|
|
50
|
+
export const RATES_1K = [125, 500, 1000];
|
|
51
|
+
export const RATES_8K = [125, 500, 1000, 2000, 4000, 8000];
|
|
52
|
+
/**
|
|
53
|
+
* Products answering on `0x3f`, audited against OpenRazer's mouse driver.
|
|
54
|
+
*
|
|
55
|
+
* ## Why this is a flat list and not a field on the transport presets
|
|
56
|
+
*
|
|
57
|
+
* It was a preset field, and that was wrong for 26 of the 107 products. The
|
|
58
|
+
* transaction id does not follow the transport group, the connection, the
|
|
59
|
+
* model's age or its marketing family — OpenRazer picks it per product id, and
|
|
60
|
+
* the groups interleave all three values:
|
|
61
|
+
*
|
|
62
|
+
* - Basilisk `0x0064` is `0x3f` while Basilisk V2 `0x0085` is `0x1f` and
|
|
63
|
+
* Basilisk X HyperSpeed `0x0083` is `0xff`.
|
|
64
|
+
* - Viper `0x0078` is `0xff`, Viper 8KHz `0x0091` is `0xff`, Viper Mini SE
|
|
65
|
+
* `0x009e` is `0x1f`.
|
|
66
|
+
* - Inside one `new-receiver` group: Lancehead Wireless `0x006f` is `0x3f`,
|
|
67
|
+
* Pro Click `0x0077` is `0x1f`, Basilisk X HyperSpeed `0x0083` is `0xff`.
|
|
68
|
+
*
|
|
69
|
+
* A wrong id is silent — the mouse never replies — so there is no failure mode
|
|
70
|
+
* to catch an inherited guess. Keeping the ids in one auditable block, rather
|
|
71
|
+
* than spread across presets that imply a pattern, is what stops that
|
|
72
|
+
* inheritance happening again.
|
|
73
|
+
*/
|
|
74
|
+
const TRANSACTION_3F = [
|
|
75
|
+
0x0050, 0x0059, 0x005a, 0x005c, 0x0060, 0x0064, 0x0065, 0x006f, 0x0070,
|
|
76
|
+
0x0072, 0x0073, 0x007c, 0x007d, 0x0084, 0x008c,
|
|
77
|
+
// --- Diverging from OpenRazer, on purpose ---------------------------------
|
|
78
|
+
// Viper Ultimate. OpenRazer sends `0xff` on every command for both ids, but
|
|
79
|
+
// a hardware report has `0x1f` silent and `0x3f` reading firmware, DPI,
|
|
80
|
+
// polling and battery correctly. Observed behaviour wins over the reference,
|
|
81
|
+
// and the mouse may well accept both. Worth re-testing against `0xff`.
|
|
82
|
+
0x007a, 0x007b,
|
|
83
|
+
// DeathAdder Essential. Predates this audit: the driver has always sent
|
|
84
|
+
// `0x3f` here on the stated grounds that OpenRazer does, which the driver
|
|
85
|
+
// source does not bear out — it lists all three ids under `0xff`. Left as it
|
|
86
|
+
// was rather than changed blind, because nothing has connected one either
|
|
87
|
+
// way. Flagged in TESTING.md as the next thing to check on this family.
|
|
88
|
+
0x006e, 0x0071, 0x0098,
|
|
89
|
+
];
|
|
90
|
+
/** Products answering on `0x1f`. Same provenance as the list above. */
|
|
91
|
+
const TRANSACTION_1F = [
|
|
92
|
+
0x0062, 0x006c, 0x0077, 0x0080, 0x0085, 0x0086, 0x0088, 0x008d, 0x008f,
|
|
93
|
+
0x0090, 0x0094, 0x0096, 0x0099, 0x009a, 0x009c, 0x009e, 0x009f, 0x00a1,
|
|
94
|
+
// Mouse Dock Pro is not in OpenRazer's mouse table; hardware with a Naga V2
|
|
95
|
+
// Pro paired answers on `0x1f` like that generation's mice.
|
|
96
|
+
0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00aa, 0x00ab, 0x00af, 0x00b0, 0x00b2, 0x00b3,
|
|
97
|
+
0x00b4, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00be, 0x00bf, 0x00c0, 0x00c1,
|
|
98
|
+
0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c7, 0x00c8, 0x00cb, 0x00cc, 0x00cd,
|
|
99
|
+
0x00d0, 0x00d1, 0x00d3, 0x00d4, 0x00d6, 0x00d7,
|
|
100
|
+
// Viper V3 Pro SE. OpenRazer PR #2818 subclasses the Viper V3 Pro classes,
|
|
101
|
+
// and the transaction id is a property of those classes — so the id comes
|
|
102
|
+
// from the same source as `0x00c0`/`0x00c1` above rather than from the family
|
|
103
|
+
// name. The SE reference separately mentions `0xff`, but only for the
|
|
104
|
+
// HyperPolling dongle indicator command, which this driver does not send.
|
|
105
|
+
0x00de, 0x00df,
|
|
106
|
+
// DeathAdder V4 Pro Carbon Fiber Edition. Same electronics as `0x00be`/
|
|
107
|
+
// `0x00bf` under a cosmetic SKU (Razer's own live `AvailableDevices.json`
|
|
108
|
+
// groups them the same way, receiver id one above the mouse id), so it
|
|
109
|
+
// shares that pair's transaction id — not independently audited.
|
|
110
|
+
0x00ef, 0x00f0,
|
|
111
|
+
];
|
|
112
|
+
/**
|
|
113
|
+
* `0xff` is the fallback because it is the id the largest group uses, not
|
|
114
|
+
* because it is safe to assume: a product missing from both lists above has
|
|
115
|
+
* simply not been audited, and will be silent if `0xff` is wrong for it.
|
|
116
|
+
*/
|
|
117
|
+
function transactionIdFor(productId) {
|
|
118
|
+
if (TRANSACTION_3F.includes(productId))
|
|
119
|
+
return RAZER_TRANSACTION_ID_3F;
|
|
120
|
+
if (TRANSACTION_1F.includes(productId))
|
|
121
|
+
return RAZER_TRANSACTION_ID_1F;
|
|
122
|
+
return RAZER_TRANSACTION_ID_FF;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Sensor ceilings by generation, from published specifications rather than from
|
|
126
|
+
* the mouse — Razer exposes no "what is your maximum DPI" command. A ceiling
|
|
127
|
+
* that is too high costs a failed read-back on a value the mouse will not hold;
|
|
128
|
+
* one that is too low would refuse a value it would have taken, so these err
|
|
129
|
+
* generous where a model's exact figure is not encoded in its name.
|
|
130
|
+
*/
|
|
131
|
+
const DPI_PRE_CHROMA = 8_200;
|
|
132
|
+
const DPI_CHROMA = 16_000;
|
|
133
|
+
const DPI_FOCUS = 20_000;
|
|
134
|
+
const DPI_FOCUS_PRO = 30_000;
|
|
135
|
+
const DPI_FOCUS_PRO_35K = 35_000;
|
|
136
|
+
// DeathAdder V4 Pro only. OpenRazer PR #2508 documents this model's own
|
|
137
|
+
// `DPI_MAX = 45000` (and raised the shared set-DPI clamp to match) — a higher
|
|
138
|
+
// ceiling than the rest of the 35K-sensor generation above, so it gets its
|
|
139
|
+
// own constant rather than reusing DPI_FOCUS_PRO_35K.
|
|
140
|
+
const DPI_DEATHADDER_V4_PRO = 45_000;
|
|
141
|
+
/**
|
|
142
|
+
* Chroma-era and older wired mice. OpenRazer's `standard` group answers on the
|
|
143
|
+
* original transaction id, and which interface carries the control channel
|
|
144
|
+
* varies by revision, so a vendor-defined collection is accepted too.
|
|
145
|
+
*/
|
|
146
|
+
const STANDARD = {
|
|
147
|
+
transport: "standard",
|
|
148
|
+
wireless: false,
|
|
149
|
+
pollingRates: RATES_1K,
|
|
150
|
+
maxDpi: DPI_CHROMA,
|
|
151
|
+
hasBattery: false,
|
|
152
|
+
vendorControlInterface: true,
|
|
153
|
+
highRatePolling: false,
|
|
154
|
+
liftOff: false,
|
|
155
|
+
asymmetricLiftOff: false,
|
|
156
|
+
verified: false,
|
|
157
|
+
};
|
|
158
|
+
/** Same generation, but a model with a cell and a charging dock or receiver. */
|
|
159
|
+
const STANDARD_WIRELESS = {
|
|
160
|
+
...STANDARD,
|
|
161
|
+
wireless: true,
|
|
162
|
+
hasBattery: true,
|
|
163
|
+
};
|
|
164
|
+
/**
|
|
165
|
+
* OpenRazer routes Naga X, Basilisk V3 and Basilisk V3 35K through USB control
|
|
166
|
+
* transfer index 3. WebHID cannot select a `wIndex`, so the browser has to be
|
|
167
|
+
* pointed at the HID collection belonging to that interface instead: the picker
|
|
168
|
+
* offers every interface and the wrong one simply never answers.
|
|
169
|
+
*/
|
|
170
|
+
const INDEX3 = {
|
|
171
|
+
...STANDARD,
|
|
172
|
+
transport: "index3",
|
|
173
|
+
maxDpi: DPI_FOCUS_PRO,
|
|
174
|
+
};
|
|
175
|
+
/** Atheris and Orochi V2 receivers, which need a longer response window. */
|
|
176
|
+
const ATHERIS_RECEIVER = {
|
|
177
|
+
...STANDARD,
|
|
178
|
+
transport: "atheris-receiver",
|
|
179
|
+
wireless: true,
|
|
180
|
+
hasBattery: true,
|
|
181
|
+
maxDpi: DPI_FOCUS,
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* The modern HyperSpeed generation, wired half. These are wireless mice on a
|
|
185
|
+
* cable, so they keep their battery commands; the cable itself runs at the
|
|
186
|
+
* legacy ceiling.
|
|
187
|
+
*/
|
|
188
|
+
const MODERN_WIRED = {
|
|
189
|
+
transport: "new-receiver",
|
|
190
|
+
wireless: false,
|
|
191
|
+
pollingRates: RATES_1K,
|
|
192
|
+
maxDpi: DPI_FOCUS,
|
|
193
|
+
hasBattery: true,
|
|
194
|
+
highRatePolling: false,
|
|
195
|
+
liftOff: false,
|
|
196
|
+
asymmetricLiftOff: false,
|
|
197
|
+
verified: false,
|
|
198
|
+
};
|
|
199
|
+
/** The stock 1000 Hz receiver these ship with. */
|
|
200
|
+
const MODERN_RECEIVER = {
|
|
201
|
+
...MODERN_WIRED,
|
|
202
|
+
wireless: true,
|
|
203
|
+
highRatePolling: true,
|
|
204
|
+
};
|
|
205
|
+
/**
|
|
206
|
+
* Older HyperSpeed receivers, which predate the extended polling command and
|
|
207
|
+
* answer only the legacy one.
|
|
208
|
+
*/
|
|
209
|
+
const LEGACY_RECEIVER = {
|
|
210
|
+
...MODERN_RECEIVER,
|
|
211
|
+
highRatePolling: false,
|
|
212
|
+
};
|
|
213
|
+
/** Receivers that ship as HyperPolling dongles and reach 8000 Hz. */
|
|
214
|
+
const HYPERPOLLING_RECEIVER = {
|
|
215
|
+
...MODERN_RECEIVER,
|
|
216
|
+
pollingRates: RATES_8K,
|
|
217
|
+
maxDpi: DPI_FOCUS_PRO_35K,
|
|
218
|
+
};
|
|
219
|
+
/** Viper Ultimate / Viper Mini SE / DeathAdder V2 Pro timing group. */
|
|
220
|
+
const VIPER_RECEIVER_WIRED = {
|
|
221
|
+
...MODERN_WIRED,
|
|
222
|
+
transport: "viper-receiver",
|
|
223
|
+
};
|
|
224
|
+
const VIPER_RECEIVER_WIRELESS = {
|
|
225
|
+
...MODERN_RECEIVER,
|
|
226
|
+
transport: "viper-receiver",
|
|
227
|
+
};
|
|
228
|
+
/**
|
|
229
|
+
* DeathAdder Essential family. 6400 DPI is the officially published maximum
|
|
230
|
+
* and the ceiling the vendor software offers.
|
|
231
|
+
*
|
|
232
|
+
* Not verified: it shipped before this registry existed and TESTING.md has
|
|
233
|
+
* always carried it under "not yet hardware-tested". An earlier revision of
|
|
234
|
+
* this file marked it verified by mistake, which was wrong in both directions —
|
|
235
|
+
* it suppressed the "untested model" label and armed the strict battery read.
|
|
236
|
+
*/
|
|
237
|
+
const DEATHADDER_ESSENTIAL = {
|
|
238
|
+
transport: "standard",
|
|
239
|
+
wireless: false,
|
|
240
|
+
pollingRates: RATES_1K,
|
|
241
|
+
maxDpi: 6400,
|
|
242
|
+
hasBattery: false,
|
|
243
|
+
vendorControlInterface: true,
|
|
244
|
+
highRatePolling: false,
|
|
245
|
+
liftOff: false,
|
|
246
|
+
asymmetricLiftOff: false,
|
|
247
|
+
verified: false,
|
|
248
|
+
};
|
|
249
|
+
const VIPER_V2_PRO = {
|
|
250
|
+
transport: "new-receiver",
|
|
251
|
+
maxDpi: DPI_FOCUS_PRO,
|
|
252
|
+
hasBattery: true,
|
|
253
|
+
// Stock receiver, not an 8K HyperPolling dongle.
|
|
254
|
+
pollingRates: RATES_1K,
|
|
255
|
+
liftOff: true,
|
|
256
|
+
asymmetricLiftOff: true,
|
|
257
|
+
verified: true,
|
|
258
|
+
};
|
|
259
|
+
const VIPER_V3_PRO = {
|
|
260
|
+
transport: "viper-receiver",
|
|
261
|
+
maxDpi: DPI_FOCUS_PRO_35K,
|
|
262
|
+
hasBattery: true,
|
|
263
|
+
liftOff: true,
|
|
264
|
+
asymmetricLiftOff: true,
|
|
265
|
+
// Class 0x02 is confirmed on both of this model's connections, so it belongs
|
|
266
|
+
// on the shared preset rather than on one product id. It sat on `0x00c1`
|
|
267
|
+
// alone while only the receiver had been exercised.
|
|
268
|
+
buttonMapping: true,
|
|
269
|
+
verified: true,
|
|
270
|
+
};
|
|
271
|
+
/**
|
|
272
|
+
* Every product this driver claims, before the audited transaction id is
|
|
273
|
+
* attached. Build `RAZER_PRODUCTS` from this rather than reading it directly.
|
|
274
|
+
*
|
|
275
|
+
* The `verified: true` entries are the ones a hardware report has covered;
|
|
276
|
+
* the rest come from the OpenRazer reference and have never been connected.
|
|
277
|
+
*/
|
|
278
|
+
const PRODUCT_DEFINITIONS = [
|
|
279
|
+
// ---- Verified on hardware -------------------------------------------------
|
|
280
|
+
[0x00a5, { model: "Viper V2 Pro", wireless: false, highRatePolling: false, ...VIPER_V2_PRO }],
|
|
281
|
+
[0x00a6, { model: "Viper V2 Pro", wireless: true, highRatePolling: true, ...VIPER_V2_PRO }],
|
|
282
|
+
[0x00c0, { model: "Viper V3 Pro", wireless: false, pollingRates: RATES_1K, highRatePolling: false, ...VIPER_V3_PRO }],
|
|
283
|
+
[0x00c1, { model: "Viper V3 Pro", wireless: true, pollingRates: RATES_8K, highRatePolling: true, ...VIPER_V3_PRO }],
|
|
284
|
+
[0x006e, { model: "DeathAdder Essential", ...DEATHADDER_ESSENTIAL }],
|
|
285
|
+
[0x0071, { model: "DeathAdder Essential White Edition", ...DEATHADDER_ESSENTIAL }],
|
|
286
|
+
[0x0098, { model: "DeathAdder Essential (2021)", ...DEATHADDER_ESSENTIAL }],
|
|
287
|
+
// ---- standard: wired, original transaction id -----------------------------
|
|
288
|
+
// Ceilings encoded in a model's own name are used as given; the rest take the
|
|
289
|
+
// generation default.
|
|
290
|
+
[0x0015, { model: "Naga", ...STANDARD, maxDpi: DPI_PRE_CHROMA }],
|
|
291
|
+
[0x001f, { model: "Naga Epic", ...STANDARD, maxDpi: DPI_PRE_CHROMA }],
|
|
292
|
+
[0x0020, { model: "Abyssus 1800", ...STANDARD, maxDpi: 1800 }],
|
|
293
|
+
[0x0024, { model: "Mamba 2012 (Wired)", ...STANDARD, maxDpi: DPI_PRE_CHROMA }],
|
|
294
|
+
[0x0025, { model: "Mamba 2012", ...STANDARD_WIRELESS, maxDpi: DPI_PRE_CHROMA }],
|
|
295
|
+
[0x002e, { model: "Naga 2012", ...STANDARD, maxDpi: DPI_PRE_CHROMA }],
|
|
296
|
+
[0x002f, { model: "Imperator 2012", ...STANDARD, maxDpi: DPI_PRE_CHROMA }],
|
|
297
|
+
[0x0032, { model: "Ouroboros 2012", ...STANDARD, maxDpi: DPI_PRE_CHROMA }],
|
|
298
|
+
[0x0034, { model: "Taipan", ...STANDARD, maxDpi: DPI_PRE_CHROMA }],
|
|
299
|
+
[0x0036, { model: "Naga Hex (Red)", ...STANDARD, maxDpi: DPI_PRE_CHROMA }],
|
|
300
|
+
[0x0037, { model: "DeathAdder 2013", ...STANDARD, maxDpi: 6400 }],
|
|
301
|
+
[0x0038, { model: "DeathAdder 1800", ...STANDARD, maxDpi: 1800 }],
|
|
302
|
+
[0x0039, { model: "Orochi 2013", ...STANDARD_WIRELESS, maxDpi: DPI_PRE_CHROMA }],
|
|
303
|
+
[0x003e, { model: "Naga Epic Chroma (Wired)", ...STANDARD }],
|
|
304
|
+
[0x003f, { model: "Naga Epic Chroma", ...STANDARD_WIRELESS }],
|
|
305
|
+
[0x0040, { model: "Naga 2014", ...STANDARD, maxDpi: DPI_PRE_CHROMA }],
|
|
306
|
+
[0x0041, { model: "Naga Hex", ...STANDARD }],
|
|
307
|
+
[0x0042, { model: "Abyssus 2014", ...STANDARD, maxDpi: 1800 }],
|
|
308
|
+
[0x0043, { model: "DeathAdder Chroma", ...STANDARD }],
|
|
309
|
+
[0x0044, { model: "Mamba (Wired)", ...STANDARD }],
|
|
310
|
+
[0x0045, { model: "Mamba", ...STANDARD_WIRELESS }],
|
|
311
|
+
[0x0046, { model: "Mamba Tournament Edition", ...STANDARD }],
|
|
312
|
+
[0x0048, { model: "Orochi (Wired)", ...STANDARD, maxDpi: DPI_PRE_CHROMA }],
|
|
313
|
+
[0x004c, { model: "Diamondback Chroma", ...STANDARD }],
|
|
314
|
+
[0x004f, { model: "DeathAdder 2000", ...STANDARD, maxDpi: 2000 }],
|
|
315
|
+
[0x0050, { model: "Naga Hex V2", ...STANDARD }],
|
|
316
|
+
[0x0053, { model: "Naga Chroma", ...STANDARD }],
|
|
317
|
+
[0x0054, { model: "DeathAdder 3500", ...STANDARD, maxDpi: 3500 }],
|
|
318
|
+
[0x0059, { model: "Lancehead (Wired)", ...STANDARD }],
|
|
319
|
+
[0x005a, { model: "Lancehead", ...STANDARD_WIRELESS }],
|
|
320
|
+
[0x005b, { model: "Abyssus V2", ...STANDARD, maxDpi: 5000 }],
|
|
321
|
+
[0x005c, { model: "DeathAdder Elite", ...STANDARD }],
|
|
322
|
+
[0x005e, { model: "Abyssus 2000", ...STANDARD, maxDpi: 2000 }],
|
|
323
|
+
[0x0060, { model: "Lancehead Tournament Edition", ...STANDARD }],
|
|
324
|
+
[0x0064, { model: "Basilisk", ...STANDARD }],
|
|
325
|
+
[0x0065, { model: "Basilisk Essential", ...STANDARD, maxDpi: 6400 }],
|
|
326
|
+
[0x0067, { model: "Naga Trinity", ...STANDARD }],
|
|
327
|
+
[0x006a, { model: "Abyssus Elite (D.Va Edition)", ...STANDARD, maxDpi: 7200 }],
|
|
328
|
+
[0x006b, { model: "Abyssus Essential", ...STANDARD, maxDpi: 7200 }],
|
|
329
|
+
[0x006c, { model: "Mamba Elite", ...STANDARD }],
|
|
330
|
+
[0x0084, { model: "DeathAdder V2", ...STANDARD, maxDpi: DPI_FOCUS, dpiStorageByte: 0x00 }],
|
|
331
|
+
[0x0085, { model: "Basilisk V2", ...STANDARD, maxDpi: DPI_FOCUS }],
|
|
332
|
+
[0x008c, { model: "DeathAdder V2 Mini", ...STANDARD, maxDpi: 8500 }],
|
|
333
|
+
[0x008d, { model: "Naga Left-Handed Edition 2020", ...STANDARD, maxDpi: DPI_FOCUS }],
|
|
334
|
+
// Wired, but the whole point of the model is 8000 Hz, which the legacy
|
|
335
|
+
// polling command cannot encode.
|
|
336
|
+
[0x0091, { model: "Viper 8KHz", ...STANDARD, maxDpi: DPI_FOCUS, pollingRates: RATES_8K, highRatePolling: true }],
|
|
337
|
+
[0x00a1, { model: "DeathAdder V2 Lite", ...STANDARD, maxDpi: 8500 }],
|
|
338
|
+
// Hardware report: the legacy read `00/85` comes back with status 0x05 (not
|
|
339
|
+
// supported) and the extended read `00/c0` answers 8000/4, so the mouse was
|
|
340
|
+
// already sitting at 2000 Hz while this row still offered a 1000 Hz ceiling.
|
|
341
|
+
// Wired, like the Viper 8KHz above, but HyperPolling is the point of the
|
|
342
|
+
// model and the legacy command cannot encode it.
|
|
343
|
+
[0x00b2, {
|
|
344
|
+
model: "DeathAdder V3",
|
|
345
|
+
...STANDARD,
|
|
346
|
+
maxDpi: DPI_FOCUS_PRO,
|
|
347
|
+
pollingRates: RATES_8K,
|
|
348
|
+
highRatePolling: true,
|
|
349
|
+
}],
|
|
350
|
+
// Standalone HyperPolling Wireless Dongle. OpenRazer reads extended polling
|
|
351
|
+
// with transaction 0x1f and commits a change with two writes: selector 0x00
|
|
352
|
+
// on 0x1f, then selector 0x01 on 0xff. Settings are forwarded to the paired
|
|
353
|
+
// mouse, so expose the Focus Pro ceiling used by the DeathAdder V3 Pro while
|
|
354
|
+
// leaving the entry unverified until OpenMouse hardware captures it.
|
|
355
|
+
[0x00b3, {
|
|
356
|
+
model: "HyperPolling Wireless Dongle",
|
|
357
|
+
...HYPERPOLLING_RECEIVER,
|
|
358
|
+
transport: "viper-receiver",
|
|
359
|
+
maxDpi: DPI_FOCUS_PRO,
|
|
360
|
+
vendorControlInterface: true,
|
|
361
|
+
extendedPollingCommitTransactionId: RAZER_TRANSACTION_ID_FF,
|
|
362
|
+
connectionLabel: "HyperPolling Wireless Dongle",
|
|
363
|
+
}],
|
|
364
|
+
// ---- index3: wired, control channel on USB interface 3 --------------------
|
|
365
|
+
[0x0096, { model: "Naga X", ...INDEX3, maxDpi: 18_000 }],
|
|
366
|
+
[0x0099, { model: "Basilisk V3", ...INDEX3, maxDpi: 26_000 }],
|
|
367
|
+
[0x00cb, { model: "Basilisk V3 35K", ...INDEX3, maxDpi: DPI_FOCUS_PRO_35K }],
|
|
368
|
+
// ---- atheris-receiver: longer receiver wait -------------------------------
|
|
369
|
+
[0x0062, { model: "Atheris", ...ATHERIS_RECEIVER, maxDpi: 7200 }],
|
|
370
|
+
[0x0094, { model: "Orochi V2", ...ATHERIS_RECEIVER, maxDpi: 18_000 }],
|
|
371
|
+
// ---- viper-receiver -------------------------------------------------------
|
|
372
|
+
[0x007a, { model: "Viper Ultimate (Wired)", ...VIPER_RECEIVER_WIRED }],
|
|
373
|
+
// Confirmed on hardware (PR #45): the dongle's Generic-Desktop-Mouse
|
|
374
|
+
// interface is Chrome-protected, so every collection is feat[none] and
|
|
375
|
+
// sendFeatureReport fails on any id. Native HAL only.
|
|
376
|
+
[0x007b, { model: "Viper Ultimate", ...VIPER_RECEIVER_WIRELESS, nativeOnly: true }],
|
|
377
|
+
[0x007c, { model: "DeathAdder V2 Pro (Wired)", ...VIPER_RECEIVER_WIRED }],
|
|
378
|
+
[0x007d, { model: "DeathAdder V2 Pro", ...VIPER_RECEIVER_WIRELESS }],
|
|
379
|
+
[0x009e, { model: "Viper Mini Signature Edition (Wired)", ...VIPER_RECEIVER_WIRED, maxDpi: DPI_FOCUS_PRO }],
|
|
380
|
+
[0x009f, { model: "Viper Mini Signature Edition", ...VIPER_RECEIVER_WIRELESS, maxDpi: DPI_FOCUS_PRO, pollingRates: RATES_8K }],
|
|
381
|
+
// Verified on hardware with the stock HyperSpeed receiver, and the first
|
|
382
|
+
// model to prove `highRatePolling` is genuinely per-PID rather than a
|
|
383
|
+
// property of the transport group or of being wireless: this receiver
|
|
384
|
+
// answers only the legacy divisor-of-1000 command and rejects the extended
|
|
385
|
+
// one (`0x00`/`0x40`) as unsupported. 125/500/1000 Hz were each written and
|
|
386
|
+
// read back.
|
|
387
|
+
//
|
|
388
|
+
// Do not "tidy" this back onto the group default. 0x00a6 is the standing
|
|
389
|
+
// counter-example in the other direction — a 1000 Hz receiver that does use
|
|
390
|
+
// the extended command — so neither the group nor the rate ceiling predicts
|
|
391
|
+
// this, and it can only be settled per product.
|
|
392
|
+
// Lift-off reported working here, so the tracking control stays on — but not
|
|
393
|
+
// the asymmetric pair, which was never exercised. If this model turns out to
|
|
394
|
+
// answer `0x0b`/`0x85` with zeros the way the Basilisk X HyperSpeed does, it
|
|
395
|
+
// will show a permanent "Low" and refuse every level; that is the thing to
|
|
396
|
+
// check before trusting it.
|
|
397
|
+
[0x00b8, { model: "Viper V3 HyperSpeed", ...VIPER_RECEIVER_WIRELESS, highRatePolling: false, liftOff: true, maxDpi: DPI_FOCUS_PRO, verified: true }],
|
|
398
|
+
// Viper V3 Pro SE (`RZ01-0455`). OpenRazer PR #2818 implements it by
|
|
399
|
+
// subclassing the Viper V3 Pro rather than writing a new codec, so the packet
|
|
400
|
+
// format, the DPI pair and the extended polling commands are the same ones
|
|
401
|
+
// `0x00c0`/`0x00c1` already use.
|
|
402
|
+
//
|
|
403
|
+
// Two things are deliberately not inherited from that pair. `verified` stays
|
|
404
|
+
// false — nothing has connected one here, and the V3 Pro's flag was earned by
|
|
405
|
+
// a hardware report on its own product ids. `liftOff` stays false because it
|
|
406
|
+
// cannot be probed: a mouse without the feature answers `0x0b`/`0x85` with
|
|
407
|
+
// status `0x02` and zeros, which decodes as a legitimate "Low".
|
|
408
|
+
//
|
|
409
|
+
// Polling: settled on hardware, and it went the other way from OpenRazer.
|
|
410
|
+
// `0x00df` first shipped here with the 8 kHz ladder because OpenRazer's SE
|
|
411
|
+
// wireless class exposes it. A capture on the stock HyperSpeed receiver has
|
|
412
|
+
// the extended read (`0x00`/`0xc0`) answered with status `0x05` — not
|
|
413
|
+
// supported — and the legacy read (`0x00`/`0x85`) answering a divisor of 1,
|
|
414
|
+
// i.e. 1000 Hz. An outright refusal, not a write that confirms and does
|
|
415
|
+
// nothing, so this needs no rate measurement to settle.
|
|
416
|
+
//
|
|
417
|
+
// Razer's own specification agrees: "1000 Hz normally, up to 8000 Hz with
|
|
418
|
+
// HyperPolling Dongle". The dongle is a different receiver and would enumerate
|
|
419
|
+
// as its own product id; this row describes the one in the box.
|
|
420
|
+
[0x00de, {
|
|
421
|
+
model: "Viper V3 Pro SE (Wired)",
|
|
422
|
+
...VIPER_RECEIVER_WIRED,
|
|
423
|
+
maxDpi: DPI_FOCUS_PRO_35K,
|
|
424
|
+
// Which interface carries the control channel has not been established for
|
|
425
|
+
// this model, so accept the vendor-defined shape as well as the plain
|
|
426
|
+
// mouse one and let the exchange itself reject what cannot answer.
|
|
427
|
+
vendorControlInterface: true,
|
|
428
|
+
}],
|
|
429
|
+
[0x00df, {
|
|
430
|
+
model: "Viper V3 Pro SE",
|
|
431
|
+
...VIPER_RECEIVER_WIRELESS,
|
|
432
|
+
maxDpi: DPI_FOCUS_PRO_35K,
|
|
433
|
+
pollingRates: RATES_1K,
|
|
434
|
+
highRatePolling: false,
|
|
435
|
+
vendorControlInterface: true,
|
|
436
|
+
}],
|
|
437
|
+
// ---- new-receiver ---------------------------------------------------------
|
|
438
|
+
// Dock, not a mouse: settings pass through to whichever mouse is paired.
|
|
439
|
+
// Polling rates are discovered per session — a Naga stays on the 1 kHz ladder,
|
|
440
|
+
// while a HyperPolling-capable mouse unlocks the 8 kHz one.
|
|
441
|
+
[0x00a4, {
|
|
442
|
+
model: "Mouse Dock Pro",
|
|
443
|
+
...MODERN_RECEIVER,
|
|
444
|
+
// Verified only with a Naga V2 Pro paired (Focus Pro 30k). A higher dock
|
|
445
|
+
// ceiling for 35k mice is untested through this path, so keep the observed
|
|
446
|
+
// sensor limit rather than advertising an unverified range.
|
|
447
|
+
maxDpi: DPI_FOCUS_PRO,
|
|
448
|
+
probePollingRates: true,
|
|
449
|
+
connectionLabel: "Mouse Dock Pro",
|
|
450
|
+
// Conservative pre-probe defaults; `readPollingRateHz` replaces both once
|
|
451
|
+
// it knows which command the paired mouse answers.
|
|
452
|
+
pollingRates: RATES_1K,
|
|
453
|
+
highRatePolling: true,
|
|
454
|
+
verified: true,
|
|
455
|
+
}],
|
|
456
|
+
[0x006f, { model: "Lancehead Wireless", ...LEGACY_RECEIVER, maxDpi: DPI_CHROMA }],
|
|
457
|
+
[0x0070, { model: "Lancehead Wireless (Wired)", ...MODERN_WIRED, maxDpi: DPI_CHROMA }],
|
|
458
|
+
[0x0072, { model: "Mamba Wireless", ...LEGACY_RECEIVER, maxDpi: DPI_CHROMA }],
|
|
459
|
+
[0x0073, { model: "Mamba Wireless (Wired)", ...MODERN_WIRED, maxDpi: DPI_CHROMA }],
|
|
460
|
+
[0x0077, { model: "Pro Click", ...LEGACY_RECEIVER, maxDpi: DPI_CHROMA }],
|
|
461
|
+
[0x0080, { model: "Pro Click (Wired)", ...MODERN_WIRED, maxDpi: DPI_CHROMA }],
|
|
462
|
+
[0x0083, { model: "Basilisk X HyperSpeed", ...LEGACY_RECEIVER, maxDpi: DPI_CHROMA }],
|
|
463
|
+
[0x0086, { model: "Basilisk Ultimate (Wired)", ...MODERN_WIRED }],
|
|
464
|
+
[0x0088, { model: "Basilisk Ultimate", ...LEGACY_RECEIVER }],
|
|
465
|
+
[0x008f, { model: "Naga Pro (Wired)", ...MODERN_WIRED }],
|
|
466
|
+
[0x0090, { model: "Naga Pro", ...LEGACY_RECEIVER }],
|
|
467
|
+
[0x009a, { model: "Pro Click Mini", ...LEGACY_RECEIVER, maxDpi: 12_000 }],
|
|
468
|
+
[0x009c, { model: "DeathAdder V2 X HyperSpeed", ...LEGACY_RECEIVER, maxDpi: 14_000 }],
|
|
469
|
+
[0x00a7, { model: "Naga V2 Pro (Wired)", ...MODERN_WIRED, maxDpi: DPI_FOCUS_PRO, verified: true }],
|
|
470
|
+
[0x00a8, { model: "Naga V2 Pro", ...MODERN_RECEIVER, maxDpi: DPI_FOCUS_PRO, verified: true }],
|
|
471
|
+
[0x00aa, { model: "Basilisk V3 Pro (Wired)", ...MODERN_WIRED, maxDpi: DPI_FOCUS_PRO }],
|
|
472
|
+
[0x00ab, { model: "Basilisk V3 Pro", ...MODERN_RECEIVER, maxDpi: DPI_FOCUS_PRO }],
|
|
473
|
+
[0x00af, { model: "Cobra Pro (Wired)", ...MODERN_WIRED, maxDpi: DPI_FOCUS_PRO }],
|
|
474
|
+
[0x00b0, { model: "Cobra Pro", ...MODERN_RECEIVER, maxDpi: DPI_FOCUS_PRO }],
|
|
475
|
+
[0x00b4, { model: "Naga V2 HyperSpeed", ...LEGACY_RECEIVER, maxDpi: DPI_FOCUS_PRO }],
|
|
476
|
+
// Verified on firmware 2.1 over the cable: same 13 write/read-back steps as
|
|
477
|
+
// the receiver below, polling measured (126 Hz peak at 125), battery reads
|
|
478
|
+
// "Charging" and climbs while plugged in.
|
|
479
|
+
[0x00b6, { model: "DeathAdder V3 Pro (Wired)", ...MODERN_WIRED, maxDpi: DPI_FOCUS_PRO, verified: true }],
|
|
480
|
+
// Hardware report: the extended command is accepted and reads back, but the
|
|
481
|
+
// measured report rate stays at 1000 Hz whatever is written. This model ships
|
|
482
|
+
// with the stock 1000 Hz HyperSpeed receiver, not the 8000 Hz HyperPolling
|
|
483
|
+
// dongle (`0x00b3`, which this driver does not claim), so the extended
|
|
484
|
+
// encoding was addressing a ceiling the hardware does not have. `0x00c3` is
|
|
485
|
+
// the same model on a second product id and is likely the same, but nobody
|
|
486
|
+
// has measured it — see TESTING.md.
|
|
487
|
+
//
|
|
488
|
+
// Verified on firmware 2.1 with the legacy command: 125/500/1000 Hz each
|
|
489
|
+
// round-tripped AND measured (124 Hz and 842 Hz peak `pointerrawupdate` at
|
|
490
|
+
// 125 and 1000), DPI, auto sleep and low power persisted across a reconnect
|
|
491
|
+
// and a power cycle. The wired `0x00b6` above was verified the same way.
|
|
492
|
+
[0x00b7, { model: "DeathAdder V3 Pro", ...MODERN_RECEIVER, highRatePolling: false, maxDpi: DPI_FOCUS_PRO, verified: true }],
|
|
493
|
+
[0x00b9, { model: "Basilisk V3 X HyperSpeed", ...LEGACY_RECEIVER, maxDpi: 18_000 }],
|
|
494
|
+
// Was nativeOnly: the control channel used to sit on a Chrome-protected
|
|
495
|
+
// collection (with Synapse fully stopped the diagnostics harness got "no
|
|
496
|
+
// feature report channel" on every interface, wired and wireless both —
|
|
497
|
+
// see git blame). Razer's own live `AvailableDevices.json` on Synapse Web
|
|
498
|
+
// now lists this model (productId 190/191, i.e. 0x00be/0x00bf), meaning a
|
|
499
|
+
// firmware or descriptor update moved the control channel off that
|
|
500
|
+
// collection. Re-tested and confirmed reachable over WebHID.
|
|
501
|
+
// OpenRazer PR #2508: both the cable and the HyperPolling dongle reach
|
|
502
|
+
// 8000 Hz on this model (the wired half is not capped at MODERN_WIRED's
|
|
503
|
+
// usual 1000 Hz — a HyperPolling receiver ships in the box, so the cable
|
|
504
|
+
// gets the same ceiling as the dongle).
|
|
505
|
+
[0x00be, { model: "DeathAdder V4 Pro (Wired)", ...MODERN_WIRED, pollingRates: RATES_8K, highRatePolling: true, maxDpi: DPI_DEATHADDER_V4_PRO }],
|
|
506
|
+
[0x00bf, { model: "DeathAdder V4 Pro", ...HYPERPOLLING_RECEIVER, maxDpi: DPI_DEATHADDER_V4_PRO }],
|
|
507
|
+
// Carbon Fiber Edition — cosmetic SKU on its own product ids, listed
|
|
508
|
+
// alongside 0x00be/0x00bf in Razer's live AvailableDevices.json
|
|
509
|
+
// (productId 239/240). Not independently hardware-tested; same specs
|
|
510
|
+
// assumed as the standard edition until proven otherwise.
|
|
511
|
+
[0x00ef, { model: "DeathAdder V4 Pro Carbon Fiber Edition (Wired)", ...MODERN_WIRED, pollingRates: RATES_8K, highRatePolling: true, maxDpi: DPI_DEATHADDER_V4_PRO }],
|
|
512
|
+
[0x00f0, { model: "DeathAdder V4 Pro Carbon Fiber Edition", ...HYPERPOLLING_RECEIVER, maxDpi: DPI_DEATHADDER_V4_PRO }],
|
|
513
|
+
[0x00c2, { model: "DeathAdder V3 Pro (Wired)", ...MODERN_WIRED, maxDpi: DPI_FOCUS_PRO }],
|
|
514
|
+
[0x00c3, { model: "DeathAdder V3 Pro", ...MODERN_RECEIVER, maxDpi: DPI_FOCUS_PRO }],
|
|
515
|
+
[0x00c4, { model: "DeathAdder V3 HyperSpeed (Wired)", ...MODERN_WIRED, maxDpi: DPI_FOCUS_PRO }],
|
|
516
|
+
[0x00c5, { model: "DeathAdder V3 HyperSpeed", ...LEGACY_RECEIVER, maxDpi: DPI_FOCUS_PRO }],
|
|
517
|
+
[0x00c7, { model: "Pro Click V2 Vertical Edition (Wired)", ...MODERN_WIRED }],
|
|
518
|
+
[0x00c8, { model: "Pro Click V2 Vertical Edition", ...LEGACY_RECEIVER }],
|
|
519
|
+
[0x00cc, { model: "Basilisk V3 Pro 35K (Wired)", ...MODERN_WIRED, maxDpi: DPI_FOCUS_PRO_35K }],
|
|
520
|
+
[0x00cd, { model: "Basilisk V3 Pro 35K", ...HYPERPOLLING_RECEIVER }],
|
|
521
|
+
[0x00d0, { model: "Pro Click V2 (Wired)", ...MODERN_WIRED }],
|
|
522
|
+
[0x00d1, { model: "Pro Click V2", ...LEGACY_RECEIVER }],
|
|
523
|
+
[0x00d3, { model: "Basilisk Mobile (Wired)", ...MODERN_WIRED, maxDpi: 18_000 }],
|
|
524
|
+
[0x00d4, { model: "Basilisk Mobile", ...LEGACY_RECEIVER, maxDpi: 18_000 }],
|
|
525
|
+
[0x00d6, { model: "Basilisk V3 Pro 35K Phantom Green (Wired)", ...MODERN_WIRED, maxDpi: DPI_FOCUS_PRO_35K }],
|
|
526
|
+
[0x00d7, { model: "Basilisk V3 Pro 35K Phantom Green", ...HYPERPOLLING_RECEIVER }],
|
|
527
|
+
];
|
|
528
|
+
/**
|
|
529
|
+
* Every product, with its audited transaction id attached.
|
|
530
|
+
*
|
|
531
|
+
* Joined here rather than written into each row so there is exactly one place
|
|
532
|
+
* the id can come from, and no preset can supply one by inheritance.
|
|
533
|
+
*/
|
|
534
|
+
export const RAZER_PRODUCTS = new Map(PRODUCT_DEFINITIONS.map(([productId, product]) => [
|
|
535
|
+
productId,
|
|
536
|
+
{ ...product, transactionId: transactionIdFor(productId) },
|
|
537
|
+
]));
|
|
538
|
+
/** Product ids for the WebHID picker filters in `../vendors.ts`. */
|
|
539
|
+
export const RAZER_PRODUCT_IDS = [...RAZER_PRODUCTS.keys()];
|
|
540
|
+
//# sourceMappingURL=devices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/razer/devices.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/razer/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/razer/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const RAZER_V4_REPORT_ID = 0;
|
|
2
|
+
export declare const RAZER_V4_REPORT_LENGTH = 90;
|
|
3
|
+
export declare const RAZER_V4_PRODUCTS: Map<number, {
|
|
4
|
+
wireless: boolean;
|
|
5
|
+
}>;
|
|
6
|
+
export declare const RAZER_V4_MAX_DPI_STAGES = 5;
|
|
7
|
+
export declare const RAZER_V4_POLLING_CODES: Map<number, number>;
|
|
8
|
+
export interface RazerV4DpiState {
|
|
9
|
+
activeStage: number;
|
|
10
|
+
stages: Array<{
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
15
|
+
export declare function razerV4Crc(report: Uint8Array): number;
|
|
16
|
+
export declare function buildRazerV4Report(commandClass: number, commandId: number, dataSize: number, args?: Uint8Array<ArrayBufferLike>): Uint8Array<ArrayBuffer>;
|
|
17
|
+
export declare function decodeRazerV4DpiState(args: Uint8Array): RazerV4DpiState;
|
|
18
|
+
export declare function decodeRazerV4PollingCode(code: number | undefined): number;
|
|
19
|
+
//# sourceMappingURL=v4.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v4.d.ts","sourceRoot":"","sources":["../../src/razer/v4.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,iBAAiB;cAA+B,OAAO;EAGlE,CAAC;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,sBAAsB,qBAEjC,CAAC;AACH,MAAM,WAAW,eAAe;IAAG,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE;AAEjG,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAIrD;AAED,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,UAAU,CAAC,eAAe,CAAoB,GACnD,UAAU,CAAC,WAAW,CAAC,CAWzB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAYvE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIzE"}
|