@kelnishi/satmouse-client 0.16.1 → 0.17.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/README.md +43 -10
- package/dist/{connection-DXjjuaLv.d.cts → connection-DcA50IC2.d.cts} +1 -1
- package/dist/{connection-DXjjuaLv.d.ts → connection-DcA50IC2.d.ts} +1 -1
- package/dist/core/index.d.cts +2 -2
- package/dist/core/index.d.ts +2 -2
- package/dist/elements/index.d.cts +1 -1
- package/dist/elements/index.d.ts +1 -1
- package/dist/react/index.cjs +24 -19
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.js +24 -19
- package/dist/react/index.js.map +1 -1
- package/dist/utils/index.cjs +24 -19
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.cts +8 -4
- package/dist/utils/index.d.ts +8 -4
- package/dist/utils/index.js +24 -19
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/react/index.d.cts +0 -292
- package/dist/react/index.d.ts +0 -292
package/dist/react/index.js
CHANGED
|
@@ -596,8 +596,9 @@ var DEFAULT_CONFIG = {
|
|
|
596
596
|
dominant: false,
|
|
597
597
|
lockPosition: false,
|
|
598
598
|
lockRotation: false,
|
|
599
|
-
devices: {
|
|
600
|
-
|
|
599
|
+
devices: {},
|
|
600
|
+
deviceClasses: {
|
|
601
|
+
spacemouse: {
|
|
601
602
|
routes: [
|
|
602
603
|
{ source: "tx", target: "tx" },
|
|
603
604
|
{ source: "ty", target: "ty", flip: true },
|
|
@@ -606,17 +607,6 @@ var DEFAULT_CONFIG = {
|
|
|
606
607
|
{ source: "ry", target: "ry", flip: true },
|
|
607
608
|
{ source: "rz", target: "rz", flip: true }
|
|
608
609
|
]
|
|
609
|
-
},
|
|
610
|
-
// PlayStation: L2 (ty) → TY, R2 (ry) → TY flipped (push-pull)
|
|
611
|
-
"hid-54c-*": {
|
|
612
|
-
routes: [
|
|
613
|
-
{ source: "tx", target: "tx" },
|
|
614
|
-
{ source: "tz", target: "tz" },
|
|
615
|
-
{ source: "rz", target: "rz" },
|
|
616
|
-
{ source: "rx", target: "rx" },
|
|
617
|
-
{ source: "ty", target: "ty" },
|
|
618
|
-
{ source: "ry", target: "ty", flip: true }
|
|
619
|
-
]
|
|
620
610
|
}
|
|
621
611
|
}
|
|
622
612
|
};
|
|
@@ -626,16 +616,22 @@ function mergeConfig(base, partial) {
|
|
|
626
616
|
...partial,
|
|
627
617
|
routes: partial.routes ?? [...base.routes],
|
|
628
618
|
buttonRoutes: partial.buttonRoutes ?? [...base.buttonRoutes],
|
|
629
|
-
devices: { ...base.devices }
|
|
619
|
+
devices: { ...base.devices },
|
|
620
|
+
deviceClasses: { ...base.deviceClasses }
|
|
630
621
|
};
|
|
631
622
|
if (partial.devices) {
|
|
632
623
|
for (const [key, devCfg] of Object.entries(partial.devices)) {
|
|
633
624
|
merged.devices[key] = { ...merged.devices[key], ...devCfg };
|
|
634
625
|
}
|
|
635
626
|
}
|
|
627
|
+
if (partial.deviceClasses) {
|
|
628
|
+
for (const [key, classCfg] of Object.entries(partial.deviceClasses)) {
|
|
629
|
+
if (classCfg) merged.deviceClasses[key] = { ...merged.deviceClasses[key], ...classCfg };
|
|
630
|
+
}
|
|
631
|
+
}
|
|
636
632
|
return merged;
|
|
637
633
|
}
|
|
638
|
-
function resolveDeviceConfig(config, deviceId) {
|
|
634
|
+
function resolveDeviceConfig(config, deviceId, deviceClass) {
|
|
639
635
|
let deviceOverride;
|
|
640
636
|
if (config.devices[deviceId]) {
|
|
641
637
|
deviceOverride = config.devices[deviceId];
|
|
@@ -647,6 +643,9 @@ function resolveDeviceConfig(config, deviceId) {
|
|
|
647
643
|
}
|
|
648
644
|
}
|
|
649
645
|
}
|
|
646
|
+
if (!deviceOverride && deviceClass && config.deviceClasses[deviceClass]) {
|
|
647
|
+
deviceOverride = config.deviceClasses[deviceClass];
|
|
648
|
+
}
|
|
650
649
|
if (!deviceOverride) return config;
|
|
651
650
|
return {
|
|
652
651
|
...config,
|
|
@@ -762,7 +761,8 @@ var InputManager = class extends TypedEmitter {
|
|
|
762
761
|
}));
|
|
763
762
|
}
|
|
764
763
|
getDeviceConfig(deviceId) {
|
|
765
|
-
const
|
|
764
|
+
const device = this.knownDevices.get(deviceId);
|
|
765
|
+
const resolved = resolveDeviceConfig(this._config, deviceId, device?.deviceClass);
|
|
766
766
|
return {
|
|
767
767
|
routes: resolved.routes,
|
|
768
768
|
buttonRoutes: resolved.buttonRoutes,
|
|
@@ -866,7 +866,8 @@ var InputManager = class extends TypedEmitter {
|
|
|
866
866
|
}
|
|
867
867
|
/** Per-device: deadZone → dominant → routes (flip + scale + remap in one pass) */
|
|
868
868
|
processPerDevice(raw, deviceId) {
|
|
869
|
-
const
|
|
869
|
+
const device = this.knownDevices.get(deviceId);
|
|
870
|
+
const cfg = resolveDeviceConfig(this._config, deviceId, device?.deviceClass);
|
|
870
871
|
let data = raw;
|
|
871
872
|
if (cfg.deadZone > 0) {
|
|
872
873
|
const dz = (v) => Math.abs(v) < cfg.deadZone ? 0 : v;
|
|
@@ -892,12 +893,12 @@ var InputManager = class extends TypedEmitter {
|
|
|
892
893
|
else r[max.k] = data.rotation[max.k];
|
|
893
894
|
data = { ...data, translation: t, rotation: r };
|
|
894
895
|
}
|
|
895
|
-
const device = this.knownDevices.get(deviceId);
|
|
896
896
|
const deviceRoutes = this.resolveRoutes(deviceId, device);
|
|
897
897
|
data = applyRoutes(data, deviceRoutes, cfg.translateScale, cfg.rotateScale, cfg.wScale);
|
|
898
898
|
return data;
|
|
899
899
|
}
|
|
900
|
-
/** Get the effective routes for a device:
|
|
900
|
+
/** Get the effective routes for a device:
|
|
901
|
+
* device ID override > pattern match > deviceClass > device axes metadata > global default */
|
|
901
902
|
resolveRoutes(deviceId, device) {
|
|
902
903
|
const devCfg = this._config.devices[deviceId];
|
|
903
904
|
if (devCfg?.routes && Array.isArray(devCfg.routes)) return devCfg.routes;
|
|
@@ -906,6 +907,10 @@ var InputManager = class extends TypedEmitter {
|
|
|
906
907
|
if (cfg.routes && Array.isArray(cfg.routes)) return cfg.routes;
|
|
907
908
|
}
|
|
908
909
|
}
|
|
910
|
+
if (device?.deviceClass) {
|
|
911
|
+
const classCfg = this._config.deviceClasses[device.deviceClass];
|
|
912
|
+
if (classCfg?.routes && Array.isArray(classCfg.routes)) return classCfg.routes;
|
|
913
|
+
}
|
|
909
914
|
if (device?.axes) return buildRoutes(device.axes);
|
|
910
915
|
return DEFAULT_ROUTES;
|
|
911
916
|
}
|