@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 @@
|
|
|
1
|
+
{"version":3,"file":"hid.js","sourceRoot":"","sources":["../../../src/drivers/attackshark/hid.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { MouseStatus } from "../mouse-types.ts";
|
|
2
|
+
import { type CorsairLiftName } from "@openmouse/protocol/corsair";
|
|
3
|
+
export declare class CorsairHidClient {
|
|
4
|
+
readonly canDisableSleep = false;
|
|
5
|
+
readonly device: HIDDevice;
|
|
6
|
+
private queue;
|
|
7
|
+
constructor(device: HIDDevice);
|
|
8
|
+
/**
|
|
9
|
+
* Corsair VID, a catalogued product id, and the usage-4 config collection
|
|
10
|
+
* with a feature report on id 0. MI_00 exposes an 0xffc2 collection too
|
|
11
|
+
* (usage 3, input report 14 only) that must not be claimed.
|
|
12
|
+
*/
|
|
13
|
+
static isSupported(device: HIDDevice): boolean;
|
|
14
|
+
get pollIntervalMs(): number;
|
|
15
|
+
getDpiOptions(): number[];
|
|
16
|
+
getSupportedPollingRates(): number[];
|
|
17
|
+
open(): Promise<void>;
|
|
18
|
+
close(): Promise<void>;
|
|
19
|
+
startNotifications(_onChange?: () => void): Promise<boolean>;
|
|
20
|
+
readStatus(): Promise<MouseStatus>;
|
|
21
|
+
/** Rewrites the value of whichever slot is currently selected (Sniper included). */
|
|
22
|
+
setDpi(dpi: number, dpiY?: number): Promise<number>;
|
|
23
|
+
/** `stage` indexes the numbered stages (slots d1+), 0-based, like `dpiStages`. */
|
|
24
|
+
setDpiStageValue(stage: number, dpi: number): Promise<number>;
|
|
25
|
+
setDpiStageColor(stage: number, color: string): Promise<string>;
|
|
26
|
+
/**
|
|
27
|
+
* Enables slots d1..d`count` and disables the rest. The mask is written
|
|
28
|
+
* first: the mouse ignores a stage write to a slot that is not enabled
|
|
29
|
+
* (verified on fw 3.41 — the read-back stays zero). Newly enabled slots that
|
|
30
|
+
* hold 0 DPI are then seeded from the last previously enabled stage, since an
|
|
31
|
+
* enabled 0-DPI stage would freeze the cursor. The Sniper bit is preserved.
|
|
32
|
+
*/
|
|
33
|
+
setDpiStageCount(count: number): Promise<number>;
|
|
34
|
+
setActiveDpiStage(stage: number): Promise<number>;
|
|
35
|
+
setLiftOffDistance(value: CorsairLiftName): Promise<CorsairLiftName>;
|
|
36
|
+
setAngleSnapping(enabled: boolean): Promise<boolean>;
|
|
37
|
+
private readStatusDirect;
|
|
38
|
+
/** Mask → current stage → each enabled stage. Any failure aborts the whole DPI read. */
|
|
39
|
+
private readDpi;
|
|
40
|
+
/** Resolves a 0-based numbered-stage index to its slot and current contents. */
|
|
41
|
+
private numberedSlot;
|
|
42
|
+
/**
|
|
43
|
+
* Writes one slot and reads it back. RGB must always be sent — a stage write
|
|
44
|
+
* without it clears the stage colour — so the current colour is read first
|
|
45
|
+
* when the caller has not supplied one.
|
|
46
|
+
*/
|
|
47
|
+
private writeSlot;
|
|
48
|
+
private selectSlot;
|
|
49
|
+
private assertDpi;
|
|
50
|
+
/**
|
|
51
|
+
* One GET exchange: send, wait, receive, and require the echo. Chrome hands
|
|
52
|
+
* back the feature buffer without a report-id prefix for id 0; a 65-byte
|
|
53
|
+
* reply with a leading zero is tolerated by stripping it.
|
|
54
|
+
*/
|
|
55
|
+
private request;
|
|
56
|
+
/** A SET (or the first half of a GET): send, then leave the device its settle time. */
|
|
57
|
+
private send;
|
|
58
|
+
/** Wraps a transfer so a refused report reads as a fix, not a bare Chrome error. */
|
|
59
|
+
private transfer;
|
|
60
|
+
private run;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Chrome reports a refused feature-report transfer as a `NotAllowedError`
|
|
64
|
+
* whose message is only "Failed to write the feature report." Verified on
|
|
65
|
+
* hardware: that is what MI_00's usage-3 collection answers (it has no feature
|
|
66
|
+
* report), while the usage-4 interface keeps working with iCUE running. So the
|
|
67
|
+
* likely fix is picking the other interface; closing iCUE is the fallback.
|
|
68
|
+
*/
|
|
69
|
+
export declare function corsairTransferError(error: unknown): Error;
|
|
70
|
+
//# sourceMappingURL=hid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hid.d.ts","sourceRoot":"","sources":["../../../src/drivers/corsair/hid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAUL,KAAK,eAAe,EAWrB,MAAM,6BAA6B,CAAC;AAiDrC,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,eAAe,SAAS;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAuC;gBAExC,MAAM,EAAE,SAAS;IAI7B;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;IAK9C,IAAI,cAAc,IAAI,MAAM,CAAmB;IAE/C,aAAa,IAAI,MAAM,EAAE;IAOzB,wBAAwB,IAAI,MAAM,EAAE;IAE9B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAE5D,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAYxC,oFAAoF;IAC9E,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAW9D,kFAAkF;IAC5E,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY7D,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrE;;;;;;OAMG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgChD,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYjD,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAepE,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAc5C,gBAAgB;IAiE9B,wFAAwF;YAC1E,OAAO;IAWrB,gFAAgF;YAClE,YAAY;IAa1B;;;;OAIG;YACW,SAAS;YAaT,UAAU;IAOxB,OAAO,CAAC,SAAS;IAWjB;;;;OAIG;YACW,OAAO;IAYrB,uFAAuF;YACzE,IAAI;IAKlB,oFAAoF;YACtE,QAAQ;YAQR,GAAG;CAKlB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAU1D"}
|
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
import { CORSAIR_CONFIG_USAGE, CORSAIR_LIFT_LEVELS, CORSAIR_PRODUCTS, CORSAIR_REPORT_ID, CORSAIR_SNIPER_STAGE, CORSAIR_USAGE_PAGE, CORSAIR_VENDOR_ID, corsairDecode, corsairDevice, corsairEnabledStages, corsairEncode, corsairFormatVersion, corsairIsEcho, corsairLiftName, corsairParseRgbHex, corsairRgbHex, } from "@openmouse/protocol/corsair";
|
|
2
|
+
/**
|
|
3
|
+
* Corsair NIGHTSWORD RGB — WebHID client (phase 2: live reads and writes).
|
|
4
|
+
*
|
|
5
|
+
* Talks to the config interface (usage page 0xffc2, usage 4) through 64-byte
|
|
6
|
+
* feature reports on report id 0. Every GET is send → short wait → receive,
|
|
7
|
+
* and the reply must echo the request's first four bytes; a stale buffer from
|
|
8
|
+
* the previous GET fails that check and the request is retried. A SET gets no
|
|
9
|
+
* reply at all, so every setter confirms with the matching GET. All traffic
|
|
10
|
+
* goes through one queue because the device has a single reply buffer.
|
|
11
|
+
*
|
|
12
|
+
* Slot d0 is iCUE's held-button Sniper stage and is left alone; the stage
|
|
13
|
+
* editor works on slots d1–d5, numbered the way iCUE numbers them. Every
|
|
14
|
+
* write addresses the live profile (byte 3 = 0), which the mouse forgets on
|
|
15
|
+
* a power cycle — the onboard profile needs Corsair's file-based format and is
|
|
16
|
+
* out of scope.
|
|
17
|
+
*
|
|
18
|
+
* Reads past identity are best-effort: if the DPI fields cannot be read the
|
|
19
|
+
* status still identifies the mouse with `ui.settingsReady = false`.
|
|
20
|
+
*
|
|
21
|
+
* iCUE's service keeps this interface open too. Reads and writes have been
|
|
22
|
+
* observed to coexist with it (shared mode, iCUE actively re-applying its
|
|
23
|
+
* profile). If Chrome ever refuses a transfer with a bare `NotAllowedError`,
|
|
24
|
+
* that is mapped to guidance; the more common cause of that error is being
|
|
25
|
+
* granted MI_00's usage-3 collection, which `isSupported()` now rejects.
|
|
26
|
+
*/
|
|
27
|
+
const PRODUCT_IDS = new Set(CORSAIR_PRODUCTS.keys());
|
|
28
|
+
/** Gap between sendFeatureReport and receiveFeatureReport; ~20 ms was reliable on fw 3.41. */
|
|
29
|
+
const REPLY_DELAY_MS = 20;
|
|
30
|
+
const REQUEST_ATTEMPTS = 3;
|
|
31
|
+
const SUPPORTED_POLLING_RATES = [1000, 500, 250, 125];
|
|
32
|
+
const LIFT_NAMES = ["Low", "Medium", "High"];
|
|
33
|
+
/**
|
|
34
|
+
* The sensor accepts any integer DPI, but the shared picker and stage editor
|
|
35
|
+
* work from an explicit option list, and 18,000 entries is too many for a
|
|
36
|
+
* dropdown. 50-DPI steps cover every preset iCUE ships with.
|
|
37
|
+
*/
|
|
38
|
+
const DPI_MIN = 100;
|
|
39
|
+
const DPI_OPTION_STEP = 50;
|
|
40
|
+
export class CorsairHidClient {
|
|
41
|
+
canDisableSleep = false;
|
|
42
|
+
device;
|
|
43
|
+
queue = Promise.resolve();
|
|
44
|
+
constructor(device) {
|
|
45
|
+
this.device = device;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Corsair VID, a catalogued product id, and the usage-4 config collection
|
|
49
|
+
* with a feature report on id 0. MI_00 exposes an 0xffc2 collection too
|
|
50
|
+
* (usage 3, input report 14 only) that must not be claimed.
|
|
51
|
+
*/
|
|
52
|
+
static isSupported(device) {
|
|
53
|
+
if (device.vendorId !== CORSAIR_VENDOR_ID || !PRODUCT_IDS.has(device.productId))
|
|
54
|
+
return false;
|
|
55
|
+
return hasConfigCollection(device.collections);
|
|
56
|
+
}
|
|
57
|
+
get pollIntervalMs() { return 30_000; }
|
|
58
|
+
getDpiOptions() {
|
|
59
|
+
const { dpiMax } = corsairDevice(this.device.productId);
|
|
60
|
+
const options = [];
|
|
61
|
+
for (let dpi = DPI_MIN; dpi <= dpiMax; dpi += DPI_OPTION_STEP)
|
|
62
|
+
options.push(dpi);
|
|
63
|
+
return options;
|
|
64
|
+
}
|
|
65
|
+
getSupportedPollingRates() { return [...SUPPORTED_POLLING_RATES]; }
|
|
66
|
+
async open() {
|
|
67
|
+
if (!this.device.opened)
|
|
68
|
+
await this.device.open();
|
|
69
|
+
}
|
|
70
|
+
async close() {
|
|
71
|
+
if (this.device.opened)
|
|
72
|
+
await this.device.close();
|
|
73
|
+
}
|
|
74
|
+
async startNotifications(_onChange) { return false; }
|
|
75
|
+
async readStatus() {
|
|
76
|
+
return await this.run(async () => {
|
|
77
|
+
await this.open();
|
|
78
|
+
return await this.readStatusDirect();
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
// ---------------------------------------------------------------------------
|
|
82
|
+
// Setters. Each one reads what it needs, writes the live profile, and
|
|
83
|
+
// confirms with the matching GET because a SET never answers.
|
|
84
|
+
// ---------------------------------------------------------------------------
|
|
85
|
+
/** Rewrites the value of whichever slot is currently selected (Sniper included). */
|
|
86
|
+
async setDpi(dpi, dpiY = dpi) {
|
|
87
|
+
this.assertDpi(dpi);
|
|
88
|
+
this.assertDpi(dpiY);
|
|
89
|
+
return await this.run(async () => {
|
|
90
|
+
await this.open();
|
|
91
|
+
const current = corsairDecode.dpiStage(await this.request(corsairEncode.dpiStage()));
|
|
92
|
+
const confirmed = await this.writeSlot(current.stage, dpi, dpiY);
|
|
93
|
+
return confirmed.x;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/** `stage` indexes the numbered stages (slots d1+), 0-based, like `dpiStages`. */
|
|
97
|
+
async setDpiStageValue(stage, dpi) {
|
|
98
|
+
this.assertDpi(dpi);
|
|
99
|
+
return await this.run(async () => {
|
|
100
|
+
await this.open();
|
|
101
|
+
const { slot, entry } = await this.numberedSlot(stage);
|
|
102
|
+
// A Y that already differs is a separate-axis setting the shared editor
|
|
103
|
+
// cannot show; changing X must not silently flatten it.
|
|
104
|
+
const y = entry.y === entry.x ? dpi : entry.y;
|
|
105
|
+
return (await this.writeSlot(slot, dpi, y, entry.rgb)).x;
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
async setDpiStageColor(stage, color) {
|
|
109
|
+
const rgb = corsairParseRgbHex(color);
|
|
110
|
+
return await this.run(async () => {
|
|
111
|
+
await this.open();
|
|
112
|
+
const { slot, entry } = await this.numberedSlot(stage);
|
|
113
|
+
const confirmed = await this.writeSlot(slot, entry.x, entry.y, rgb);
|
|
114
|
+
return corsairRgbHex(confirmed.rgb);
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Enables slots d1..d`count` and disables the rest. The mask is written
|
|
119
|
+
* first: the mouse ignores a stage write to a slot that is not enabled
|
|
120
|
+
* (verified on fw 3.41 — the read-back stays zero). Newly enabled slots that
|
|
121
|
+
* hold 0 DPI are then seeded from the last previously enabled stage, since an
|
|
122
|
+
* enabled 0-DPI stage would freeze the cursor. The Sniper bit is preserved.
|
|
123
|
+
*/
|
|
124
|
+
async setDpiStageCount(count) {
|
|
125
|
+
const { stages } = corsairDevice(this.device.productId);
|
|
126
|
+
const maxNumbered = stages - 1;
|
|
127
|
+
if (!Number.isInteger(count) || count < 1 || count > maxNumbered) {
|
|
128
|
+
throw new Error(`This mouse holds between 1 and ${maxNumbered} DPI stages.`);
|
|
129
|
+
}
|
|
130
|
+
return await this.run(async () => {
|
|
131
|
+
await this.open();
|
|
132
|
+
const state = await this.readDpi();
|
|
133
|
+
const numbered = numberedSlots(state.mask, stages);
|
|
134
|
+
const template = numbered.length > 0 ? state.stages.get(numbered[numbered.length - 1]) : undefined;
|
|
135
|
+
const sniperBit = state.mask & (1 << CORSAIR_SNIPER_STAGE);
|
|
136
|
+
const wanted = sniperBit | (((1 << count) - 1) << 1);
|
|
137
|
+
await this.send(corsairEncode.setDpiMask(wanted));
|
|
138
|
+
const confirmed = corsairDecode.dpiMask(await this.request(corsairEncode.dpiMask()));
|
|
139
|
+
const enabled = numberedSlots(confirmed, stages).length;
|
|
140
|
+
if (enabled !== count)
|
|
141
|
+
throw new Error(`The mouse kept ${enabled} DPI stages instead of ${count}.`);
|
|
142
|
+
for (let slot = 1; slot <= count; slot += 1) {
|
|
143
|
+
if (numbered.includes(slot))
|
|
144
|
+
continue;
|
|
145
|
+
const existing = corsairDecode.stage(await this.request(corsairEncode.stage(slot)));
|
|
146
|
+
if (existing.x > 0 && existing.y > 0)
|
|
147
|
+
continue;
|
|
148
|
+
const seed = template ?? { x: 800, y: 800, rgb: [0x00, 0xbf, 0xff] };
|
|
149
|
+
await this.writeSlot(slot, seed.x, seed.y, seed.rgb);
|
|
150
|
+
}
|
|
151
|
+
// Keep the selection inside the enabled range.
|
|
152
|
+
if (state.current.stage > count)
|
|
153
|
+
await this.selectSlot(count);
|
|
154
|
+
return enabled;
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
async setActiveDpiStage(stage) {
|
|
158
|
+
return await this.run(async () => {
|
|
159
|
+
await this.open();
|
|
160
|
+
const state = await this.readDpi();
|
|
161
|
+
const numbered = numberedSlots(state.mask, corsairDevice(this.device.productId).stages);
|
|
162
|
+
const slot = numbered[stage];
|
|
163
|
+
if (slot === undefined)
|
|
164
|
+
throw new Error(`This mouse does not have a DPI stage ${stage + 1}.`);
|
|
165
|
+
const confirmed = await this.selectSlot(slot);
|
|
166
|
+
return numbered.indexOf(confirmed);
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
async setLiftOffDistance(value) {
|
|
170
|
+
const raw = CORSAIR_LIFT_LEVELS[value];
|
|
171
|
+
if (raw === undefined)
|
|
172
|
+
throw new Error("Lift-off distance must be Low, Medium, or High.");
|
|
173
|
+
return await this.run(async () => {
|
|
174
|
+
await this.open();
|
|
175
|
+
await this.send(corsairEncode.setLift(raw));
|
|
176
|
+
const confirmed = corsairDecode.lift(await this.request(corsairEncode.lift()));
|
|
177
|
+
const name = corsairLiftName(confirmed);
|
|
178
|
+
if (confirmed !== raw || name === null) {
|
|
179
|
+
throw new Error(`The mouse kept lift-off height ${confirmed} instead of ${raw}.`);
|
|
180
|
+
}
|
|
181
|
+
return name;
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
async setAngleSnapping(enabled) {
|
|
185
|
+
return await this.run(async () => {
|
|
186
|
+
await this.open();
|
|
187
|
+
await this.send(corsairEncode.setSnap(enabled));
|
|
188
|
+
const confirmed = corsairDecode.snap(await this.request(corsairEncode.snap()));
|
|
189
|
+
if (confirmed !== enabled)
|
|
190
|
+
throw new Error(`The mouse kept angle snapping ${confirmed ? "on" : "off"}.`);
|
|
191
|
+
return confirmed;
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
// ---------------------------------------------------------------------------
|
|
195
|
+
// Reads
|
|
196
|
+
// ---------------------------------------------------------------------------
|
|
197
|
+
async readStatusDirect() {
|
|
198
|
+
const definition = corsairDevice(this.device.productId);
|
|
199
|
+
const ident = corsairDecode.ident(await this.request(corsairEncode.ident()));
|
|
200
|
+
const dpi = await this.readDpi().catch(() => null);
|
|
201
|
+
const lift = dpi ? await this.request(corsairEncode.lift()).then(corsairDecode.lift, () => null) : null;
|
|
202
|
+
const snap = dpi ? await this.request(corsairEncode.snap()).then(corsairDecode.snap, () => null) : null;
|
|
203
|
+
const enabled = dpi ? corsairEnabledStages(dpi.mask, definition.stages) : [];
|
|
204
|
+
// Slot 0 is the held-button Sniper stage; the numbered stages iCUE shows are slots 1+.
|
|
205
|
+
const numbered = enabled.filter((slot) => slot !== CORSAIR_SNIPER_STAGE);
|
|
206
|
+
const stageList = numbered.map((slot) => dpi.stages.get(slot)).filter((stage) => !!stage);
|
|
207
|
+
const activeIndex = dpi ? numbered.indexOf(dpi.current.stage) : -1;
|
|
208
|
+
const displayName = `Corsair ${definition.name}`;
|
|
209
|
+
return {
|
|
210
|
+
brand: "Corsair",
|
|
211
|
+
name: definition.name,
|
|
212
|
+
batteryPercent: null,
|
|
213
|
+
batteryState: "Unknown",
|
|
214
|
+
dpi: dpi?.current.x ?? 0,
|
|
215
|
+
dpiY: dpi?.current.y ?? 0,
|
|
216
|
+
supportsSeparateDpiAxes: true,
|
|
217
|
+
pollingRateHz: ident.pollingRateHz,
|
|
218
|
+
supportedPollingRates: [...SUPPORTED_POLLING_RATES],
|
|
219
|
+
activeProfile: null,
|
|
220
|
+
connectionType: "Wired",
|
|
221
|
+
connectionDetail: "USB",
|
|
222
|
+
dpiStages: stageList.map((stage) => stage.x),
|
|
223
|
+
dpiStageColors: stageList.map((stage) => corsairRgbHex(stage.rgb)),
|
|
224
|
+
activeDpiStage: activeIndex >= 0 ? activeIndex : undefined,
|
|
225
|
+
liftOffDistance: lift === null ? null : corsairLiftName(lift),
|
|
226
|
+
supportedLiftOffDistances: [...LIFT_NAMES],
|
|
227
|
+
angleSnapping: snap,
|
|
228
|
+
motionSync: null,
|
|
229
|
+
rippleControl: null,
|
|
230
|
+
firmware: firmwareLines(ident, dpi, enabled, lift),
|
|
231
|
+
ui: {
|
|
232
|
+
family: "corsair",
|
|
233
|
+
settingsReady: dpi !== null,
|
|
234
|
+
valuesVerified: dpi !== null,
|
|
235
|
+
pollingReadOnly: true,
|
|
236
|
+
hideUnsupportedPollingRates: true,
|
|
237
|
+
hideMotionSync: true,
|
|
238
|
+
hideRippleControl: true,
|
|
239
|
+
hideSleepCard: true,
|
|
240
|
+
hideSignalCard: true,
|
|
241
|
+
showAdvancedSection: true,
|
|
242
|
+
pollingNote: "Changing the polling rate makes the mouse re-enumerate; use iCUE for that until reconnect handling lands.",
|
|
243
|
+
statusNote: dpi
|
|
244
|
+
? "Changes apply to the live profile and are lost when the mouse loses power; the Sniper stage is left untouched."
|
|
245
|
+
: "Identified the mouse but its DPI settings could not be read. Unplug and reconnect the mouse, then add it again.",
|
|
246
|
+
defaultDisplayName: displayName,
|
|
247
|
+
dpiStageEditor: dpi
|
|
248
|
+
? {
|
|
249
|
+
maxStages: definition.stages - 1,
|
|
250
|
+
countEditable: true,
|
|
251
|
+
minDpi: DPI_MIN,
|
|
252
|
+
maxDpi: definition.dpiMax,
|
|
253
|
+
stepDpi: DPI_OPTION_STEP,
|
|
254
|
+
}
|
|
255
|
+
: undefined,
|
|
256
|
+
},
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
/** Mask → current stage → each enabled stage. Any failure aborts the whole DPI read. */
|
|
260
|
+
async readDpi() {
|
|
261
|
+
const definition = corsairDevice(this.device.productId);
|
|
262
|
+
const mask = corsairDecode.dpiMask(await this.request(corsairEncode.dpiMask()));
|
|
263
|
+
const current = corsairDecode.dpiStage(await this.request(corsairEncode.dpiStage()));
|
|
264
|
+
const stages = new Map();
|
|
265
|
+
for (const stage of corsairEnabledStages(mask, definition.stages)) {
|
|
266
|
+
stages.set(stage, corsairDecode.stage(await this.request(corsairEncode.stage(stage))));
|
|
267
|
+
}
|
|
268
|
+
return { mask, current, stages };
|
|
269
|
+
}
|
|
270
|
+
/** Resolves a 0-based numbered-stage index to its slot and current contents. */
|
|
271
|
+
async numberedSlot(stage) {
|
|
272
|
+
const mask = corsairDecode.dpiMask(await this.request(corsairEncode.dpiMask()));
|
|
273
|
+
const numbered = numberedSlots(mask, corsairDevice(this.device.productId).stages);
|
|
274
|
+
const slot = numbered[stage];
|
|
275
|
+
if (slot === undefined)
|
|
276
|
+
throw new Error(`This mouse does not have a DPI stage ${stage + 1}.`);
|
|
277
|
+
const entry = corsairDecode.stage(await this.request(corsairEncode.stage(slot)));
|
|
278
|
+
return { slot, entry };
|
|
279
|
+
}
|
|
280
|
+
// ---------------------------------------------------------------------------
|
|
281
|
+
// Writes
|
|
282
|
+
// ---------------------------------------------------------------------------
|
|
283
|
+
/**
|
|
284
|
+
* Writes one slot and reads it back. RGB must always be sent — a stage write
|
|
285
|
+
* without it clears the stage colour — so the current colour is read first
|
|
286
|
+
* when the caller has not supplied one.
|
|
287
|
+
*/
|
|
288
|
+
async writeSlot(slot, x, y, rgb) {
|
|
289
|
+
const color = rgb ?? corsairDecode.stage(await this.request(corsairEncode.stage(slot))).rgb;
|
|
290
|
+
await this.send(corsairEncode.setStageDpi(slot, x, y, color));
|
|
291
|
+
const confirmed = corsairDecode.stage(await this.request(corsairEncode.stage(slot)));
|
|
292
|
+
if (confirmed.x !== x || confirmed.y !== y) {
|
|
293
|
+
throw new Error(`The mouse kept ${confirmed.x.toLocaleString()} DPI on stage ${slot} instead of ${x.toLocaleString()}.`);
|
|
294
|
+
}
|
|
295
|
+
if (confirmed.rgb.some((channel, index) => channel !== color[index])) {
|
|
296
|
+
throw new Error(`The mouse kept colour ${corsairRgbHex(confirmed.rgb)} on stage ${slot} instead of ${corsairRgbHex(color)}.`);
|
|
297
|
+
}
|
|
298
|
+
return confirmed;
|
|
299
|
+
}
|
|
300
|
+
async selectSlot(slot) {
|
|
301
|
+
await this.send(corsairEncode.setStage(slot));
|
|
302
|
+
const confirmed = corsairDecode.dpiStage(await this.request(corsairEncode.dpiStage()));
|
|
303
|
+
if (confirmed.stage !== slot)
|
|
304
|
+
throw new Error(`The mouse stayed on DPI slot ${confirmed.stage} instead of ${slot}.`);
|
|
305
|
+
return confirmed.stage;
|
|
306
|
+
}
|
|
307
|
+
assertDpi(dpi) {
|
|
308
|
+
const { dpiMax } = corsairDevice(this.device.productId);
|
|
309
|
+
if (!Number.isInteger(dpi) || dpi < DPI_MIN || dpi > dpiMax) {
|
|
310
|
+
throw new Error(`Corsair DPI must be ${DPI_MIN}–${dpiMax.toLocaleString()}.`);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
// ---------------------------------------------------------------------------
|
|
314
|
+
// Transport
|
|
315
|
+
// ---------------------------------------------------------------------------
|
|
316
|
+
/**
|
|
317
|
+
* One GET exchange: send, wait, receive, and require the echo. Chrome hands
|
|
318
|
+
* back the feature buffer without a report-id prefix for id 0; a 65-byte
|
|
319
|
+
* reply with a leading zero is tolerated by stripping it.
|
|
320
|
+
*/
|
|
321
|
+
async request(packet) {
|
|
322
|
+
for (let attempt = 0; attempt < REQUEST_ATTEMPTS; attempt += 1) {
|
|
323
|
+
await this.send(packet);
|
|
324
|
+
const view = await this.transfer(() => this.device.receiveFeatureReport(CORSAIR_REPORT_ID));
|
|
325
|
+
const reply = stripReportId(new Uint8Array(view.buffer.slice(view.byteOffset, view.byteOffset + view.byteLength)), packet);
|
|
326
|
+
if (corsairIsEcho(packet, reply))
|
|
327
|
+
return reply;
|
|
328
|
+
}
|
|
329
|
+
throw new Error(`The Corsair mouse did not answer command 0x${packet[1].toString(16).padStart(2, "0")}/0x${packet[2].toString(16).padStart(2, "0")}.`);
|
|
330
|
+
}
|
|
331
|
+
/** A SET (or the first half of a GET): send, then leave the device its settle time. */
|
|
332
|
+
async send(packet) {
|
|
333
|
+
await this.transfer(() => this.device.sendFeatureReport(CORSAIR_REPORT_ID, buffer(packet)));
|
|
334
|
+
await delay(REPLY_DELAY_MS);
|
|
335
|
+
}
|
|
336
|
+
/** Wraps a transfer so a refused report reads as a fix, not a bare Chrome error. */
|
|
337
|
+
async transfer(operation) {
|
|
338
|
+
try {
|
|
339
|
+
return await operation();
|
|
340
|
+
}
|
|
341
|
+
catch (error) {
|
|
342
|
+
throw corsairTransferError(error);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
async run(operation) {
|
|
346
|
+
const result = this.queue.then(operation, operation);
|
|
347
|
+
this.queue = result.then(() => undefined, () => undefined);
|
|
348
|
+
return await result;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Chrome reports a refused feature-report transfer as a `NotAllowedError`
|
|
353
|
+
* whose message is only "Failed to write the feature report." Verified on
|
|
354
|
+
* hardware: that is what MI_00's usage-3 collection answers (it has no feature
|
|
355
|
+
* report), while the usage-4 interface keeps working with iCUE running. So the
|
|
356
|
+
* likely fix is picking the other interface; closing iCUE is the fallback.
|
|
357
|
+
*/
|
|
358
|
+
export function corsairTransferError(error) {
|
|
359
|
+
const name = error instanceof Error ? error.name : "";
|
|
360
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
361
|
+
if (name !== "NotAllowedError")
|
|
362
|
+
return error instanceof Error ? error : new Error(detail);
|
|
363
|
+
return new Error("Chrome refused the Corsair mouse's feature report. Remove the device and add it again, choosing the "
|
|
364
|
+
+ "entry that lists usage 4 (the config interface). If that entry was already selected, close iCUE "
|
|
365
|
+
+ "and stop the \"Corsair Service\" Windows service, then reconnect. "
|
|
366
|
+
+ `(${detail})`);
|
|
367
|
+
}
|
|
368
|
+
/** Enabled slots other than the Sniper slot, in slot order. */
|
|
369
|
+
function numberedSlots(mask, stages) {
|
|
370
|
+
return corsairEnabledStages(mask, stages).filter((slot) => slot !== CORSAIR_SNIPER_STAGE);
|
|
371
|
+
}
|
|
372
|
+
function firmwareLines(ident, dpi, enabled, lift) {
|
|
373
|
+
const lines = [
|
|
374
|
+
`Firmware ${corsairFormatVersion(ident.firmware)}`,
|
|
375
|
+
`Bootloader ${corsairFormatVersion(ident.bootloader)}`,
|
|
376
|
+
];
|
|
377
|
+
if (dpi) {
|
|
378
|
+
const describe = (slot) => {
|
|
379
|
+
const stage = dpi.stages.get(slot);
|
|
380
|
+
if (!stage)
|
|
381
|
+
return "?";
|
|
382
|
+
const value = stage.x === stage.y ? `${stage.x}` : `${stage.x}×${stage.y}`;
|
|
383
|
+
return `${value} ${corsairRgbHex(stage.rgb)}`;
|
|
384
|
+
};
|
|
385
|
+
const sniper = enabled.includes(CORSAIR_SNIPER_STAGE) ? [`Sniper ${describe(CORSAIR_SNIPER_STAGE)}`] : [];
|
|
386
|
+
const stages = enabled
|
|
387
|
+
.filter((slot) => slot !== CORSAIR_SNIPER_STAGE)
|
|
388
|
+
.map((slot) => `${slot}: ${describe(slot)}`);
|
|
389
|
+
lines.push(...sniper);
|
|
390
|
+
if (stages.length > 0)
|
|
391
|
+
lines.push(`DPI stages ${stages.join(", ")}`);
|
|
392
|
+
}
|
|
393
|
+
if (lift !== null)
|
|
394
|
+
lines.push(`Lift-off height ${lift}`);
|
|
395
|
+
return lines;
|
|
396
|
+
}
|
|
397
|
+
function hasConfigCollection(items) {
|
|
398
|
+
return items.some((collection) => (collection.usagePage === CORSAIR_USAGE_PAGE
|
|
399
|
+
&& collection.usage === CORSAIR_CONFIG_USAGE
|
|
400
|
+
&& collection.featureReports.some((report) => report.reportId === CORSAIR_REPORT_ID))
|
|
401
|
+
|| hasConfigCollection(collection.children));
|
|
402
|
+
}
|
|
403
|
+
function stripReportId(reply, request) {
|
|
404
|
+
if (reply.length === 65 && reply[0] === CORSAIR_REPORT_ID && reply[1] === request[0])
|
|
405
|
+
return reply.subarray(1);
|
|
406
|
+
return reply;
|
|
407
|
+
}
|
|
408
|
+
function buffer(payload) {
|
|
409
|
+
return new Uint8Array(payload).buffer;
|
|
410
|
+
}
|
|
411
|
+
function delay(ms) {
|
|
412
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
413
|
+
}
|
|
414
|
+
//# sourceMappingURL=hid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hid.js","sourceRoot":"","sources":["../../../src/drivers/corsair/hid.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { MouseStatus } from "../mouse-types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Dareu's Jm channel uses report 8 directly through both the wired mouse and
|
|
4
|
+
* the TM265 2.4 GHz receiver. Writes are exactly the vendor panel's bounded
|
|
5
|
+
* memory records and are followed by a fresh read before being reported done.
|
|
6
|
+
*/
|
|
7
|
+
export declare class DareuHidClient {
|
|
8
|
+
readonly device: HIDDevice;
|
|
9
|
+
private waiter;
|
|
10
|
+
private queue;
|
|
11
|
+
private readonly onInputReport;
|
|
12
|
+
constructor(device: HIDDevice);
|
|
13
|
+
static isSupported(device: HIDDevice): boolean;
|
|
14
|
+
isWirelessPath(): boolean;
|
|
15
|
+
getSleepOptions(): number[];
|
|
16
|
+
getDpiOptions(): number[];
|
|
17
|
+
open(): Promise<void>;
|
|
18
|
+
close(): Promise<void>;
|
|
19
|
+
readStatus(): Promise<MouseStatus>;
|
|
20
|
+
setPollingRate(rate: number): Promise<number>;
|
|
21
|
+
setDpi(dpi: number, dpiY?: number): Promise<number>;
|
|
22
|
+
setDpiAxes(x: number, y: number): Promise<{
|
|
23
|
+
x: number;
|
|
24
|
+
y: number;
|
|
25
|
+
}>;
|
|
26
|
+
setDpiStageValue(stage: number, dpi: number): Promise<number>;
|
|
27
|
+
setDpiStageCount(count: number): Promise<number>;
|
|
28
|
+
setActiveDpiStage(stage: number): Promise<number>;
|
|
29
|
+
setProfile(profile: number): Promise<void>;
|
|
30
|
+
setDpiLighting(mode: number, brightness: number, speed: number): Promise<void>;
|
|
31
|
+
setDpiLedSleepTimeout(seconds: number): Promise<number>;
|
|
32
|
+
setSleepTimeout(seconds: number): Promise<number>;
|
|
33
|
+
setButtonMapping(button: string, action: string): Promise<void>;
|
|
34
|
+
private readBattery;
|
|
35
|
+
private readActiveProfile;
|
|
36
|
+
private readMouseFirmware;
|
|
37
|
+
private readReceiverFirmware;
|
|
38
|
+
private readDpiConfig;
|
|
39
|
+
private readPollingRate;
|
|
40
|
+
private readDpiLighting;
|
|
41
|
+
private readDpiLedSleepTimeout;
|
|
42
|
+
private readSleepTimeout;
|
|
43
|
+
private readButtons;
|
|
44
|
+
private writeDpiStage;
|
|
45
|
+
private ensureActive;
|
|
46
|
+
private readBuffer;
|
|
47
|
+
private writeBuffer;
|
|
48
|
+
private exchange;
|
|
49
|
+
private serialized;
|
|
50
|
+
private failWaiter;
|
|
51
|
+
private assertStage;
|
|
52
|
+
private transport;
|
|
53
|
+
private range;
|
|
54
|
+
private formatFirmware;
|
|
55
|
+
private batteryState;
|
|
56
|
+
private static flattenCollections;
|
|
57
|
+
private static reportLength;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=hid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hid.d.ts","sourceRoot":"","sources":["../../../src/drivers/dareu/hid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA4DrD;;;;GAIG;AACH,qBAAa,cAAc;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,OAAO,CAAC,MAAM,CAKE;IAChB,OAAO,CAAC,KAAK,CAAoC;IAEjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAQ5B;gBAEU,MAAM,EAAE,SAAS;IAI7B,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;IAa9C,cAAc,IAAI,OAAO;IAIzB,eAAe,IAAI,MAAM,EAAE;IAI3B,aAAa,IAAI,MAAM,EAAE;IAMnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IA0ElC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAa7C,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhD,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAYnE,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY7D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAehD,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYjD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1C,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB9E,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYvD,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBjD,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAcvD,WAAW;YAMX,iBAAiB;YAMjB,iBAAiB;YAMjB,oBAAoB;YAMpB,aAAa;YAqBb,eAAe;YAQf,eAAe;YAMf,sBAAsB;YAQtB,gBAAgB;YAahB,WAAW;YAYX,aAAa;YASb,YAAY;YAKZ,UAAU;YAYV,WAAW;YAQX,QAAQ;IAkBtB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAIjC,OAAO,CAAC,MAAM,CAAC,YAAY;CAG5B"}
|