@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,157 @@
|
|
|
1
|
+
import { RIVAL3_POLLING_RATES, STEELSERIES_PRODUCTS, STEELSERIES_REPORT_ID, STEELSERIES_VENDOR_ID, steelseriesRival3DecodeFirmware, steelseriesRival3DpiOptions, steelseriesRival3EncodeDpiPresets, steelseriesRival3EncodePollingRate, steelseriesRival3FirmwareQuery, steelseriesRival3SaveCommand, } from "@openmouse/protocol/steelseries";
|
|
2
|
+
/** rivalcfg sleeps 50 ms after every command (`command_approve_delay`) and
|
|
3
|
+
* cites a SteelSeries mouse crashing when driven faster. */
|
|
4
|
+
const COMMAND_DELAY_MS = 50;
|
|
5
|
+
/** rivalcfg reads the firmware response with a 200 ms timeout; allow slack. */
|
|
6
|
+
const FIRMWARE_TIMEOUT_MS = 500;
|
|
7
|
+
/** rivalcfg profile defaults, shown only until this session writes a value. */
|
|
8
|
+
const DEFAULT_DPI = 800;
|
|
9
|
+
const DEFAULT_POLLING_HZ = 1000;
|
|
10
|
+
/**
|
|
11
|
+
* SteelSeries Rival 3 Gen 1 WebHID control (`1038:1824`, `1038:184C`).
|
|
12
|
+
*
|
|
13
|
+
* The device is write-only: settings are sent as unnumbered output reports and
|
|
14
|
+
* nothing can be read back except the two-byte firmware version, which this
|
|
15
|
+
* driver uses as its connectivity probe. `readStatus` therefore reports the
|
|
16
|
+
* session's last-written values (or rivalcfg's documented defaults before any
|
|
17
|
+
* write) with `valuesVerified: false` — it never pretends to have read them.
|
|
18
|
+
* Every setter follows its write with the save command so the change persists
|
|
19
|
+
* in the mouse's onboard memory, mirroring rivalcfg's CLI default.
|
|
20
|
+
*
|
|
21
|
+
* The config channel is hidapi interface 3; its WebHID collection shape has
|
|
22
|
+
* not been captured yet, so the picker offers every interface and the wrong
|
|
23
|
+
* ones fail the firmware probe loudly.
|
|
24
|
+
*/
|
|
25
|
+
export class SteelSeriesRival3HidClient {
|
|
26
|
+
device;
|
|
27
|
+
queue = Promise.resolve();
|
|
28
|
+
listenerAttached = false;
|
|
29
|
+
inputWaiters = new Set();
|
|
30
|
+
lastWritten = {
|
|
31
|
+
dpi: null,
|
|
32
|
+
pollingRateHz: null,
|
|
33
|
+
};
|
|
34
|
+
onInputReport = (event) => {
|
|
35
|
+
const payload = new Uint8Array(event.data.buffer.slice(event.data.byteOffset, event.data.byteOffset + event.data.byteLength));
|
|
36
|
+
for (const finish of [...this.inputWaiters])
|
|
37
|
+
finish(payload);
|
|
38
|
+
};
|
|
39
|
+
constructor(device) {
|
|
40
|
+
this.device = device;
|
|
41
|
+
}
|
|
42
|
+
static isSupported(device) {
|
|
43
|
+
if (device.vendorId !== STEELSERIES_VENDOR_ID)
|
|
44
|
+
return false;
|
|
45
|
+
return STEELSERIES_PRODUCTS.get(device.productId)?.family === "rival3";
|
|
46
|
+
}
|
|
47
|
+
get pollIntervalMs() { return 30_000; }
|
|
48
|
+
get supportedPollingRates() { return [...RIVAL3_POLLING_RATES]; }
|
|
49
|
+
getDpiOptions() { return steelseriesRival3DpiOptions(); }
|
|
50
|
+
async open() {
|
|
51
|
+
if (!this.device.opened)
|
|
52
|
+
await this.device.open();
|
|
53
|
+
if (!this.listenerAttached) {
|
|
54
|
+
this.device.addEventListener("inputreport", this.onInputReport);
|
|
55
|
+
this.listenerAttached = true;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async close() {
|
|
59
|
+
if (this.listenerAttached) {
|
|
60
|
+
this.device.removeEventListener("inputreport", this.onInputReport);
|
|
61
|
+
this.listenerAttached = false;
|
|
62
|
+
}
|
|
63
|
+
if (this.device.opened)
|
|
64
|
+
await this.device.close();
|
|
65
|
+
}
|
|
66
|
+
async readStatus() {
|
|
67
|
+
return await this.run(async () => {
|
|
68
|
+
await this.open();
|
|
69
|
+
const firmware = await this.probeFirmware();
|
|
70
|
+
const product = STEELSERIES_PRODUCTS.get(this.device.productId);
|
|
71
|
+
const name = this.device.productName?.trim() || `SteelSeries ${product?.model ?? "Rival 3"}`;
|
|
72
|
+
return {
|
|
73
|
+
brand: "SteelSeries",
|
|
74
|
+
name,
|
|
75
|
+
ui: {
|
|
76
|
+
family: "steelseries-rival3",
|
|
77
|
+
settingsReady: true,
|
|
78
|
+
valuesVerified: false,
|
|
79
|
+
hideUnsupportedPollingRates: true,
|
|
80
|
+
hideProcessingCard: true,
|
|
81
|
+
pollingNote: "The Rival 3 cannot report its current settings; values shown are the last written by this app, or assumed defaults.",
|
|
82
|
+
defaultDisplayName: "SteelSeries Rival 3",
|
|
83
|
+
},
|
|
84
|
+
batteryPercent: null,
|
|
85
|
+
batteryState: "Unknown",
|
|
86
|
+
dpi: this.lastWritten.dpi ?? DEFAULT_DPI,
|
|
87
|
+
pollingRateHz: this.lastWritten.pollingRateHz ?? DEFAULT_POLLING_HZ,
|
|
88
|
+
supportedPollingRates: this.supportedPollingRates,
|
|
89
|
+
activeProfile: null,
|
|
90
|
+
connectionType: "Wired",
|
|
91
|
+
liftOffDistance: null,
|
|
92
|
+
firmware: [firmware.display],
|
|
93
|
+
};
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Replaces the mouse's DPI preset table with a single preset. The device is
|
|
98
|
+
* write-only, so the existing presets cannot be read and preserved — record
|
|
99
|
+
* them in SteelSeries GG before testing, per docs/steelseries-testing.md.
|
|
100
|
+
*/
|
|
101
|
+
async setDpi(dpi) {
|
|
102
|
+
const report = steelseriesRival3EncodeDpiPresets([dpi], 0);
|
|
103
|
+
await this.run(async () => {
|
|
104
|
+
await this.open();
|
|
105
|
+
await this.write(report);
|
|
106
|
+
await this.delay(COMMAND_DELAY_MS);
|
|
107
|
+
await this.write(steelseriesRival3SaveCommand());
|
|
108
|
+
this.lastWritten.dpi = dpi;
|
|
109
|
+
});
|
|
110
|
+
return dpi;
|
|
111
|
+
}
|
|
112
|
+
async setPollingRate(pollingRateHz) {
|
|
113
|
+
const report = steelseriesRival3EncodePollingRate(pollingRateHz);
|
|
114
|
+
await this.run(async () => {
|
|
115
|
+
await this.open();
|
|
116
|
+
await this.write(report);
|
|
117
|
+
await this.delay(COMMAND_DELAY_MS);
|
|
118
|
+
await this.write(steelseriesRival3SaveCommand());
|
|
119
|
+
this.lastWritten.pollingRateHz = pollingRateHz;
|
|
120
|
+
});
|
|
121
|
+
return pollingRateHz;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* The `10 00` firmware query is the device's only readable value, so it
|
|
125
|
+
* doubles as the proof that the granted interface is the config channel.
|
|
126
|
+
*/
|
|
127
|
+
async probeFirmware() {
|
|
128
|
+
const response = new Promise((resolve) => {
|
|
129
|
+
let timer;
|
|
130
|
+
const finish = (payload) => {
|
|
131
|
+
clearTimeout(timer);
|
|
132
|
+
this.inputWaiters.delete(finish);
|
|
133
|
+
resolve(payload);
|
|
134
|
+
};
|
|
135
|
+
timer = setTimeout(() => finish(null), FIRMWARE_TIMEOUT_MS);
|
|
136
|
+
this.inputWaiters.add(finish);
|
|
137
|
+
});
|
|
138
|
+
await this.write(steelseriesRival3FirmwareQuery());
|
|
139
|
+
const payload = await response;
|
|
140
|
+
if (!payload) {
|
|
141
|
+
throw new Error("The Rival 3 did not answer on this interface. Close SteelSeries GG (and the SteelSeriesEngine service); if it still does not answer, add the device again and choose another entry.");
|
|
142
|
+
}
|
|
143
|
+
return steelseriesRival3DecodeFirmware(payload);
|
|
144
|
+
}
|
|
145
|
+
async write(payload) {
|
|
146
|
+
await this.device.sendReport(STEELSERIES_REPORT_ID, payload.buffer);
|
|
147
|
+
}
|
|
148
|
+
delay(milliseconds) {
|
|
149
|
+
return new Promise((resolve) => setTimeout(resolve, milliseconds));
|
|
150
|
+
}
|
|
151
|
+
async run(operation) {
|
|
152
|
+
const result = this.queue.then(operation, operation);
|
|
153
|
+
this.queue = result.then(() => undefined, () => undefined);
|
|
154
|
+
return await result;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=hid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hid.js","sourceRoot":"","sources":["../../../src/drivers/steelseries/hid.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { MouseStatus } from "../mouse-types.js";
|
|
2
|
+
import { type PrimeMiniWirelessButtonAction, type PrimeMiniWirelessButtonName, type PrimeMiniWirelessDefaultLighting } from "@openmouse/protocol/steelseries";
|
|
3
|
+
/**
|
|
4
|
+
* SteelSeries Prime Mini Wireless WebHID control.
|
|
5
|
+
*
|
|
6
|
+
* One physical mouse, two transport-dependent product-id groups, one class:
|
|
7
|
+
* the USB-cabled PID (`1038:184A` — "wired mode" in rivalcfg's naming) and
|
|
8
|
+
* the 2.4 GHz dongle PID (`1038:1848`). Both use the exact same command set;
|
|
9
|
+
* only the wireless flag bit (`applyPrimeMiniWirelessFlag` in the protocol module)
|
|
10
|
+
* and, per rivalcfg, a longer expected readback differ. `this.wireless` is
|
|
11
|
+
* fixed from the granted device's product id at construction and threaded
|
|
12
|
+
* through every encode call so a client instance never mixes flagged and
|
|
13
|
+
* unflagged commands.
|
|
14
|
+
*
|
|
15
|
+
* DPI presets, polling rate, LED color, sleep/dim timers, default lighting,
|
|
16
|
+
* and buttons are write-only — rivalcfg defines no getter for any of them.
|
|
17
|
+
* Battery level **is** readable (`92`/`D2`, 2-byte reply, same shape as
|
|
18
|
+
* `./aerox5-wireless-hid.ts`, different from the Rival 3 Wireless's
|
|
19
|
+
* `AA 01`/3-byte reply — see the protocol module's doc comment) and
|
|
20
|
+
* `readStatus` uses it as the connectivity probe.
|
|
21
|
+
*
|
|
22
|
+
* The config channel is hidapi interface 3, per both rivalcfg files'
|
|
23
|
+
* `"endpoint": 3` model entries; its WebHID collection shape has not been
|
|
24
|
+
* captured yet, so the picker offers every interface and the wrong ones
|
|
25
|
+
* fail the battery probe loudly.
|
|
26
|
+
*/
|
|
27
|
+
export declare class SteelSeriesPrimeMiniWirelessHidClient {
|
|
28
|
+
readonly device: HIDDevice;
|
|
29
|
+
private readonly wireless;
|
|
30
|
+
private queue;
|
|
31
|
+
private listenerAttached;
|
|
32
|
+
private readonly inputWaiters;
|
|
33
|
+
private lastWritten;
|
|
34
|
+
private readonly onInputReport;
|
|
35
|
+
constructor(device: HIDDevice);
|
|
36
|
+
static isSupported(device: HIDDevice): boolean;
|
|
37
|
+
get pollIntervalMs(): number;
|
|
38
|
+
get supportedPollingRates(): number[];
|
|
39
|
+
getDpiOptions(): number[];
|
|
40
|
+
open(): Promise<void>;
|
|
41
|
+
close(): Promise<void>;
|
|
42
|
+
readStatus(): Promise<MouseStatus>;
|
|
43
|
+
/**
|
|
44
|
+
* Replaces the mouse's DPI preset table with a single preset. The device
|
|
45
|
+
* does not expose a getter for DPI, so the existing presets cannot be read
|
|
46
|
+
* and preserved — record them in SteelSeries GG before testing.
|
|
47
|
+
*/
|
|
48
|
+
setDpi(dpi: number): Promise<number>;
|
|
49
|
+
setPollingRate(pollingRateHz: number): Promise<number>;
|
|
50
|
+
setColor(r: number, g: number, b: number): Promise<void>;
|
|
51
|
+
setSleepTimer(minutes: number): Promise<void>;
|
|
52
|
+
setDimTimer(seconds: number): Promise<void>;
|
|
53
|
+
setDefaultLighting(mode: PrimeMiniWirelessDefaultLighting): Promise<void>;
|
|
54
|
+
setButtonsMapping(mapping: Partial<Record<PrimeMiniWirelessButtonName, PrimeMiniWirelessButtonAction>>): Promise<void>;
|
|
55
|
+
/** `92`/`D2` — battery percentage and charging state. Doubles as the connectivity probe. */
|
|
56
|
+
private probeBattery;
|
|
57
|
+
private awaitResponse;
|
|
58
|
+
private write;
|
|
59
|
+
private delay;
|
|
60
|
+
private run;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=prime-mini-wireless-hid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prime-mini-wireless-hid.d.ts","sourceRoot":"","sources":["../../../src/drivers/steelseries/prime-mini-wireless-hid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAiBL,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EAChC,KAAK,gCAAgC,EACtC,MAAM,iCAAiC,CAAC;AAUzC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,qCAAqC;IAChD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4C;IACzE,OAAO,CAAC,WAAW,CAGjB;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAK5B;gBAEU,MAAM,EAAE,SAAS;IAM7B,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;IAK9C,IAAI,cAAc,IAAI,MAAM,CAAmB;IAE/C,IAAI,qBAAqB,IAAI,MAAM,EAAE,CAAmD;IAExF,aAAa,IAAI,MAAM,EAAE;IAEnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtB,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IA+BxC;;;;OAIG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYpC,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYtD,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3C,kBAAkB,CAAC,IAAI,EAAE,gCAAgC,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzE,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,2BAA2B,EAAE,6BAA6B,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5H,4FAA4F;YAC9E,YAAY;YAUZ,aAAa;YAeb,KAAK;IAInB,OAAO,CAAC,KAAK;YAIC,GAAG;CAKlB"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import { PRIME_MINI_WIRELESS_POLLING_RATES, PRIME_MINI_WIRELESS_REPORT_ID, STEELSERIES_PRODUCTS, STEELSERIES_VENDOR_ID, steelseriesPrimeMiniWirelessBatteryQuery, steelseriesPrimeMiniWirelessDecodeBattery, steelseriesPrimeMiniWirelessDpiOptions, steelseriesPrimeMiniWirelessEncodeButtonsMapping, steelseriesPrimeMiniWirelessEncodeColor, steelseriesPrimeMiniWirelessEncodeDefaultLighting, steelseriesPrimeMiniWirelessEncodeDimTimer, steelseriesPrimeMiniWirelessEncodeDpiPresets, steelseriesPrimeMiniWirelessEncodePollingRate, steelseriesPrimeMiniWirelessEncodeSleepTimer, steelseriesPrimeMiniWirelessSaveCommand, } from "@openmouse/protocol/steelseries";
|
|
2
|
+
/** rivalcfg's `command_approve_delay`, shared across every SteelSeries family. */
|
|
3
|
+
const COMMAND_DELAY_MS = 50;
|
|
4
|
+
/** rivalcfg reads input-report replies with a 200 ms timeout; allow slack. */
|
|
5
|
+
const RESPONSE_TIMEOUT_MS = 500;
|
|
6
|
+
/** rivalcfg profile default (`prime_wireless_wired.py`: "400, 800, 1200, 2400, 3200"). */
|
|
7
|
+
const DEFAULT_DPI = 400;
|
|
8
|
+
const DEFAULT_POLLING_HZ = 1000;
|
|
9
|
+
/**
|
|
10
|
+
* SteelSeries Prime Mini Wireless WebHID control.
|
|
11
|
+
*
|
|
12
|
+
* One physical mouse, two transport-dependent product-id groups, one class:
|
|
13
|
+
* the USB-cabled PID (`1038:184A` — "wired mode" in rivalcfg's naming) and
|
|
14
|
+
* the 2.4 GHz dongle PID (`1038:1848`). Both use the exact same command set;
|
|
15
|
+
* only the wireless flag bit (`applyPrimeMiniWirelessFlag` in the protocol module)
|
|
16
|
+
* and, per rivalcfg, a longer expected readback differ. `this.wireless` is
|
|
17
|
+
* fixed from the granted device's product id at construction and threaded
|
|
18
|
+
* through every encode call so a client instance never mixes flagged and
|
|
19
|
+
* unflagged commands.
|
|
20
|
+
*
|
|
21
|
+
* DPI presets, polling rate, LED color, sleep/dim timers, default lighting,
|
|
22
|
+
* and buttons are write-only — rivalcfg defines no getter for any of them.
|
|
23
|
+
* Battery level **is** readable (`92`/`D2`, 2-byte reply, same shape as
|
|
24
|
+
* `./aerox5-wireless-hid.ts`, different from the Rival 3 Wireless's
|
|
25
|
+
* `AA 01`/3-byte reply — see the protocol module's doc comment) and
|
|
26
|
+
* `readStatus` uses it as the connectivity probe.
|
|
27
|
+
*
|
|
28
|
+
* The config channel is hidapi interface 3, per both rivalcfg files'
|
|
29
|
+
* `"endpoint": 3` model entries; its WebHID collection shape has not been
|
|
30
|
+
* captured yet, so the picker offers every interface and the wrong ones
|
|
31
|
+
* fail the battery probe loudly.
|
|
32
|
+
*/
|
|
33
|
+
export class SteelSeriesPrimeMiniWirelessHidClient {
|
|
34
|
+
device;
|
|
35
|
+
wireless;
|
|
36
|
+
queue = Promise.resolve();
|
|
37
|
+
listenerAttached = false;
|
|
38
|
+
inputWaiters = new Set();
|
|
39
|
+
lastWritten = {
|
|
40
|
+
dpi: null,
|
|
41
|
+
pollingRateHz: null,
|
|
42
|
+
};
|
|
43
|
+
onInputReport = (event) => {
|
|
44
|
+
const payload = new Uint8Array(event.data.buffer.slice(event.data.byteOffset, event.data.byteOffset + event.data.byteLength));
|
|
45
|
+
for (const finish of [...this.inputWaiters])
|
|
46
|
+
finish(payload);
|
|
47
|
+
};
|
|
48
|
+
constructor(device) {
|
|
49
|
+
this.device = device;
|
|
50
|
+
this.wireless = STEELSERIES_PRODUCTS.get(device.productId)?.wireless === true
|
|
51
|
+
&& WIRELESS_MODE_PRODUCT_IDS.has(device.productId);
|
|
52
|
+
}
|
|
53
|
+
static isSupported(device) {
|
|
54
|
+
if (device.vendorId !== STEELSERIES_VENDOR_ID)
|
|
55
|
+
return false;
|
|
56
|
+
return STEELSERIES_PRODUCTS.get(device.productId)?.family === "prime-mini-wireless";
|
|
57
|
+
}
|
|
58
|
+
get pollIntervalMs() { return 30_000; }
|
|
59
|
+
get supportedPollingRates() { return [...PRIME_MINI_WIRELESS_POLLING_RATES]; }
|
|
60
|
+
getDpiOptions() { return steelseriesPrimeMiniWirelessDpiOptions(); }
|
|
61
|
+
async open() {
|
|
62
|
+
if (!this.device.opened)
|
|
63
|
+
await this.device.open();
|
|
64
|
+
if (!this.listenerAttached) {
|
|
65
|
+
this.device.addEventListener("inputreport", this.onInputReport);
|
|
66
|
+
this.listenerAttached = true;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async close() {
|
|
70
|
+
if (this.listenerAttached) {
|
|
71
|
+
this.device.removeEventListener("inputreport", this.onInputReport);
|
|
72
|
+
this.listenerAttached = false;
|
|
73
|
+
}
|
|
74
|
+
if (this.device.opened)
|
|
75
|
+
await this.device.close();
|
|
76
|
+
}
|
|
77
|
+
async readStatus() {
|
|
78
|
+
return await this.run(async () => {
|
|
79
|
+
await this.open();
|
|
80
|
+
const battery = await this.probeBattery();
|
|
81
|
+
const product = STEELSERIES_PRODUCTS.get(this.device.productId);
|
|
82
|
+
const name = this.device.productName?.trim() || `SteelSeries ${product?.model ?? "Prime Mini Wireless"}`;
|
|
83
|
+
return {
|
|
84
|
+
brand: "SteelSeries",
|
|
85
|
+
name,
|
|
86
|
+
ui: {
|
|
87
|
+
family: "steelseries-prime-mini-wireless",
|
|
88
|
+
settingsReady: true,
|
|
89
|
+
valuesVerified: false,
|
|
90
|
+
hideUnsupportedPollingRates: true,
|
|
91
|
+
hideProcessingCard: true,
|
|
92
|
+
pollingNote: "The Prime Mini Wireless cannot report its current DPI or polling rate; values shown are the last written by this app, or assumed defaults.",
|
|
93
|
+
defaultDisplayName: "SteelSeries Prime Mini Wireless",
|
|
94
|
+
},
|
|
95
|
+
batteryPercent: battery.level,
|
|
96
|
+
batteryState: battery.isCharging ? "Charging" : "Discharging",
|
|
97
|
+
dpi: this.lastWritten.dpi ?? DEFAULT_DPI,
|
|
98
|
+
pollingRateHz: this.lastWritten.pollingRateHz ?? DEFAULT_POLLING_HZ,
|
|
99
|
+
supportedPollingRates: this.supportedPollingRates,
|
|
100
|
+
activeProfile: null,
|
|
101
|
+
connectionType: this.wireless ? "Wireless" : "Wired",
|
|
102
|
+
liftOffDistance: null,
|
|
103
|
+
firmware: [],
|
|
104
|
+
};
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Replaces the mouse's DPI preset table with a single preset. The device
|
|
109
|
+
* does not expose a getter for DPI, so the existing presets cannot be read
|
|
110
|
+
* and preserved — record them in SteelSeries GG before testing.
|
|
111
|
+
*/
|
|
112
|
+
async setDpi(dpi) {
|
|
113
|
+
const report = steelseriesPrimeMiniWirelessEncodeDpiPresets([dpi], 0, this.wireless);
|
|
114
|
+
await this.run(async () => {
|
|
115
|
+
await this.open();
|
|
116
|
+
await this.write(report);
|
|
117
|
+
await this.delay(COMMAND_DELAY_MS);
|
|
118
|
+
await this.write(steelseriesPrimeMiniWirelessSaveCommand(this.wireless));
|
|
119
|
+
this.lastWritten.dpi = dpi;
|
|
120
|
+
});
|
|
121
|
+
return dpi;
|
|
122
|
+
}
|
|
123
|
+
async setPollingRate(pollingRateHz) {
|
|
124
|
+
const report = steelseriesPrimeMiniWirelessEncodePollingRate(pollingRateHz, this.wireless);
|
|
125
|
+
await this.run(async () => {
|
|
126
|
+
await this.open();
|
|
127
|
+
await this.write(report);
|
|
128
|
+
await this.delay(COMMAND_DELAY_MS);
|
|
129
|
+
await this.write(steelseriesPrimeMiniWirelessSaveCommand(this.wireless));
|
|
130
|
+
this.lastWritten.pollingRateHz = pollingRateHz;
|
|
131
|
+
});
|
|
132
|
+
return pollingRateHz;
|
|
133
|
+
}
|
|
134
|
+
async setColor(r, g, b) {
|
|
135
|
+
const report = steelseriesPrimeMiniWirelessEncodeColor(r, g, b, this.wireless);
|
|
136
|
+
await this.run(async () => {
|
|
137
|
+
await this.open();
|
|
138
|
+
await this.write(report);
|
|
139
|
+
await this.delay(COMMAND_DELAY_MS);
|
|
140
|
+
await this.write(steelseriesPrimeMiniWirelessSaveCommand(this.wireless));
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
async setSleepTimer(minutes) {
|
|
144
|
+
const report = steelseriesPrimeMiniWirelessEncodeSleepTimer(minutes, this.wireless);
|
|
145
|
+
await this.run(async () => {
|
|
146
|
+
await this.open();
|
|
147
|
+
await this.write(report);
|
|
148
|
+
await this.delay(COMMAND_DELAY_MS);
|
|
149
|
+
await this.write(steelseriesPrimeMiniWirelessSaveCommand(this.wireless));
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
async setDimTimer(seconds) {
|
|
153
|
+
const report = steelseriesPrimeMiniWirelessEncodeDimTimer(seconds, this.wireless);
|
|
154
|
+
await this.run(async () => {
|
|
155
|
+
await this.open();
|
|
156
|
+
await this.write(report);
|
|
157
|
+
await this.delay(COMMAND_DELAY_MS);
|
|
158
|
+
await this.write(steelseriesPrimeMiniWirelessSaveCommand(this.wireless));
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
async setDefaultLighting(mode) {
|
|
162
|
+
const report = steelseriesPrimeMiniWirelessEncodeDefaultLighting(mode, this.wireless);
|
|
163
|
+
await this.run(async () => {
|
|
164
|
+
await this.open();
|
|
165
|
+
await this.write(report);
|
|
166
|
+
await this.delay(COMMAND_DELAY_MS);
|
|
167
|
+
await this.write(steelseriesPrimeMiniWirelessSaveCommand(this.wireless));
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
async setButtonsMapping(mapping) {
|
|
171
|
+
const report = steelseriesPrimeMiniWirelessEncodeButtonsMapping(mapping, this.wireless);
|
|
172
|
+
await this.run(async () => {
|
|
173
|
+
await this.open();
|
|
174
|
+
await this.write(report);
|
|
175
|
+
await this.delay(COMMAND_DELAY_MS);
|
|
176
|
+
await this.write(steelseriesPrimeMiniWirelessSaveCommand(this.wireless));
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
/** `92`/`D2` — battery percentage and charging state. Doubles as the connectivity probe. */
|
|
180
|
+
async probeBattery() {
|
|
181
|
+
const payload = await this.awaitResponse(steelseriesPrimeMiniWirelessBatteryQuery(this.wireless));
|
|
182
|
+
if (!payload) {
|
|
183
|
+
throw new Error("The Prime Mini Wireless did not answer on this interface. Close SteelSeries GG (and the SteelSeriesEngine service); if it still does not answer, add the device again and choose another entry.");
|
|
184
|
+
}
|
|
185
|
+
return steelseriesPrimeMiniWirelessDecodeBattery(payload);
|
|
186
|
+
}
|
|
187
|
+
async awaitResponse(query) {
|
|
188
|
+
const response = new Promise((resolve) => {
|
|
189
|
+
let timer;
|
|
190
|
+
const finish = (payload) => {
|
|
191
|
+
clearTimeout(timer);
|
|
192
|
+
this.inputWaiters.delete(finish);
|
|
193
|
+
resolve(payload);
|
|
194
|
+
};
|
|
195
|
+
timer = setTimeout(() => finish(null), RESPONSE_TIMEOUT_MS);
|
|
196
|
+
this.inputWaiters.add(finish);
|
|
197
|
+
});
|
|
198
|
+
await this.write(query);
|
|
199
|
+
return await response;
|
|
200
|
+
}
|
|
201
|
+
async write(payload) {
|
|
202
|
+
await this.device.sendReport(PRIME_MINI_WIRELESS_REPORT_ID, payload.buffer);
|
|
203
|
+
}
|
|
204
|
+
delay(milliseconds) {
|
|
205
|
+
return new Promise((resolve) => setTimeout(resolve, milliseconds));
|
|
206
|
+
}
|
|
207
|
+
async run(operation) {
|
|
208
|
+
const result = this.queue.then(operation, operation);
|
|
209
|
+
this.queue = result.then(() => undefined, () => undefined);
|
|
210
|
+
return await result;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/** The 2.4 GHz dongle-mode PID — distinguishes which transform to apply from `wireless: true` in `devices.ts`. */
|
|
214
|
+
const WIRELESS_MODE_PRODUCT_IDS = new Set([0x1848]);
|
|
215
|
+
//# sourceMappingURL=prime-mini-wireless-hid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prime-mini-wireless-hid.js","sourceRoot":"","sources":["../../../src/drivers/steelseries/prime-mini-wireless-hid.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { MouseStatus } from "../mouse-types.js";
|
|
2
|
+
import { type PrimePlusButtonAction, type PrimePlusButtonName } from "@openmouse/protocol/steelseries";
|
|
3
|
+
/**
|
|
4
|
+
* SteelSeries Prime+ WebHID control (`1038:182C`).
|
|
5
|
+
*
|
|
6
|
+
* Like Aerox 3, the Prime+ has **no readable value at all** — no firmware
|
|
7
|
+
* query exists in `prime_plus.py`, so there is nothing to probe the device
|
|
8
|
+
* with. `readStatus` therefore treats a successful `open()` as the only
|
|
9
|
+
* available connectivity signal and reports the session's last-written
|
|
10
|
+
* values (or rivalcfg's documented defaults before any write) with
|
|
11
|
+
* `valuesVerified: false`, same honesty policy as Aerox 3 and Rival 3 Gen 1.
|
|
12
|
+
* Every setter follows its write with the save command so the change
|
|
13
|
+
* persists in the mouse's onboard memory, mirroring rivalcfg's CLI default.
|
|
14
|
+
*
|
|
15
|
+
* The config channel is hidapi interface 0, per `prime_plus.py`'s
|
|
16
|
+
* `"endpoint": 0` model entry; its WebHID collection shape has not been
|
|
17
|
+
* captured yet, so the picker offers every interface.
|
|
18
|
+
*
|
|
19
|
+
* See `../../steelseries/prime-plus.ts`'s doc comment for the full
|
|
20
|
+
* corroboration-gap disclosure (rivalcfg only — libratbag has no Prime/
|
|
21
|
+
* Prime+ support and OpenRGB's SteelSeries controller sources could not be
|
|
22
|
+
* located from this environment) and for why this device's protocol is not
|
|
23
|
+
* distinguishable from plain Prime's despite being its own module here.
|
|
24
|
+
*/
|
|
25
|
+
export declare class SteelSeriesPrimePlusHidClient {
|
|
26
|
+
readonly device: HIDDevice;
|
|
27
|
+
private queue;
|
|
28
|
+
private lastWritten;
|
|
29
|
+
constructor(device: HIDDevice);
|
|
30
|
+
static isSupported(device: HIDDevice): boolean;
|
|
31
|
+
get pollIntervalMs(): number;
|
|
32
|
+
get supportedPollingRates(): number[];
|
|
33
|
+
getDpiOptions(): number[];
|
|
34
|
+
open(): Promise<void>;
|
|
35
|
+
close(): Promise<void>;
|
|
36
|
+
readStatus(): Promise<MouseStatus>;
|
|
37
|
+
/**
|
|
38
|
+
* Replaces the mouse's DPI preset table with a single preset. The device
|
|
39
|
+
* is write-only, so the existing presets cannot be read and preserved —
|
|
40
|
+
* record them before testing.
|
|
41
|
+
*/
|
|
42
|
+
setDpi(dpi: number): Promise<number>;
|
|
43
|
+
setPollingRate(pollingRateHz: number): Promise<number>;
|
|
44
|
+
setColor(r: number, g: number, b: number): Promise<void>;
|
|
45
|
+
setLedBrightness(level: number): Promise<void>;
|
|
46
|
+
setButtonsMapping(mapping: Partial<Record<PrimePlusButtonName, PrimePlusButtonAction>>): Promise<void>;
|
|
47
|
+
private write;
|
|
48
|
+
private delay;
|
|
49
|
+
private run;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=prime-plus-hid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prime-plus-hid.d.ts","sourceRoot":"","sources":["../../../src/drivers/steelseries/prime-plus-hid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAYL,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AAQzC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,6BAA6B;IACxC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,WAAW,CAGjB;gBAEU,MAAM,EAAE,SAAS;IAI7B,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;IAM9C,IAAI,cAAc,IAAI,MAAM,CAAmB;IAE/C,IAAI,qBAAqB,IAAI,MAAM,EAAE,CAA0C;IAE/E,aAAa,IAAI,MAAM,EAAE;IAEnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IA6BxC;;;;OAIG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYpC,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYtD,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxD,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9C,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAU9F,KAAK;IAInB,OAAO,CAAC,KAAK;YAIC,GAAG;CAKlB"}
|