dualsense-ts 6.2.0 → 6.4.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.
Files changed (79) hide show
  1. package/LINUX_HID.md +85 -0
  2. package/README.md +83 -12
  3. package/dist/dualsense.d.ts +28 -8
  4. package/dist/dualsense.d.ts.map +1 -1
  5. package/dist/dualsense.js +57 -17
  6. package/dist/dualsense.js.map +1 -1
  7. package/dist/hid/bt_checksum.d.ts +7 -0
  8. package/dist/hid/bt_checksum.d.ts.map +1 -1
  9. package/dist/hid/bt_checksum.js +33 -1
  10. package/dist/hid/bt_checksum.js.map +1 -1
  11. package/dist/hid/dualsense_hid.d.ts +77 -0
  12. package/dist/hid/dualsense_hid.d.ts.map +1 -1
  13. package/dist/hid/dualsense_hid.js +193 -0
  14. package/dist/hid/dualsense_hid.js.map +1 -1
  15. package/dist/hid/factory_info.d.ts +53 -0
  16. package/dist/hid/factory_info.d.ts.map +1 -0
  17. package/dist/hid/factory_info.js +166 -0
  18. package/dist/hid/factory_info.js.map +1 -0
  19. package/dist/hid/firmware_info.d.ts +46 -0
  20. package/dist/hid/firmware_info.d.ts.map +1 -0
  21. package/dist/hid/firmware_info.js +109 -0
  22. package/dist/hid/firmware_info.js.map +1 -0
  23. package/dist/hid/hid_provider.d.ts +12 -0
  24. package/dist/hid/hid_provider.d.ts.map +1 -1
  25. package/dist/hid/hid_provider.js +13 -0
  26. package/dist/hid/hid_provider.js.map +1 -1
  27. package/dist/hid/index.d.ts +3 -0
  28. package/dist/hid/index.d.ts.map +1 -1
  29. package/dist/hid/index.js +3 -0
  30. package/dist/hid/index.js.map +1 -1
  31. package/dist/hid/node_hid_provider.d.ts +2 -0
  32. package/dist/hid/node_hid_provider.d.ts.map +1 -1
  33. package/dist/hid/node_hid_provider.js +14 -0
  34. package/dist/hid/node_hid_provider.js.map +1 -1
  35. package/dist/hid/pairing_info.d.ts +9 -0
  36. package/dist/hid/pairing_info.d.ts.map +1 -0
  37. package/dist/hid/pairing_info.js +33 -0
  38. package/dist/hid/pairing_info.js.map +1 -0
  39. package/dist/hid/web_hid_provider.d.ts +14 -0
  40. package/dist/hid/web_hid_provider.d.ts.map +1 -1
  41. package/dist/hid/web_hid_provider.js +79 -8
  42. package/dist/hid/web_hid_provider.js.map +1 -1
  43. package/dist/id.d.ts +4 -0
  44. package/dist/id.d.ts.map +1 -1
  45. package/dist/manager.d.ts +57 -4
  46. package/dist/manager.d.ts.map +1 -1
  47. package/dist/manager.js +248 -66
  48. package/dist/manager.js.map +1 -1
  49. package/nodehid_example/debug.ts +43 -13
  50. package/nodehid_example/single.ts +29 -0
  51. package/package.json +1 -1
  52. package/src/dualsense.ts +73 -23
  53. package/src/hid/bt_checksum.ts +39 -0
  54. package/src/hid/dualsense_hid.ts +230 -0
  55. package/src/hid/factory_info.ts +206 -0
  56. package/src/hid/firmware_info.ts +157 -0
  57. package/src/hid/hid_provider.ts +22 -0
  58. package/src/hid/index.ts +3 -0
  59. package/src/hid/node_hid_provider.ts +14 -0
  60. package/src/hid/pairing_info.ts +33 -0
  61. package/src/hid/web_hid_provider.ts +87 -8
  62. package/src/id.ts +5 -0
  63. package/src/manager.ts +285 -71
  64. package/webhid_example/build/asset-manifest.json +3 -3
  65. package/webhid_example/build/index.html +1 -1
  66. package/webhid_example/build/static/js/main.1c1a2c23.js +3 -0
  67. package/webhid_example/build/static/js/main.1c1a2c23.js.map +1 -0
  68. package/webhid_example/src/App.tsx +7 -1
  69. package/webhid_example/src/hud/AudioIndicator.tsx +116 -0
  70. package/webhid_example/src/hud/BatteryIndicator.tsx +4 -2
  71. package/webhid_example/src/hud/ColorIndicator.tsx +72 -0
  72. package/webhid_example/src/hud/ControllerConnection.tsx +29 -2
  73. package/webhid_example/src/hud/Debugger.tsx +31 -1
  74. package/webhid_example/src/hud/LightbarFadeButtons.tsx +2 -2
  75. package/webhid_example/src/hud/MuteLedControls.tsx +3 -2
  76. package/webhid_example/src/hud/index.tsx +2 -0
  77. package/webhid_example/build/static/js/main.2ac31d24.js +0 -3
  78. package/webhid_example/build/static/js/main.2ac31d24.js.map +0 -1
  79. /package/webhid_example/build/static/js/{main.2ac31d24.js.LICENSE.txt → main.1c1a2c23.js.LICENSE.txt} +0 -0
@@ -0,0 +1,46 @@
1
+ import { HIDProvider } from "./hid_provider";
2
+ /** Parsed firmware version in major.minor.patch format */
3
+ export interface FirmwareVersion {
4
+ major: number;
5
+ minor: number;
6
+ patch: number;
7
+ }
8
+ /** Firmware and hardware information from Feature Report 0x20 */
9
+ export interface FirmwareInfo {
10
+ /** Firmware build date (e.g. "Apr 14 2023") */
11
+ buildDate: string;
12
+ /** Firmware build time (e.g. "12:34:56") */
13
+ buildTime: string;
14
+ /** Firmware type (2 or 3 indicates production firmware) */
15
+ firmwareType: number;
16
+ /** Software series identifier */
17
+ softwareSeries: number;
18
+ /** Hardware info word (lower 16 bits used for feature gating) */
19
+ hardwareInfo: number;
20
+ /** Main firmware version */
21
+ mainFirmwareVersion: FirmwareVersion;
22
+ /** Raw uint32 main firmware version (used for feature gating) */
23
+ mainFirmwareVersionRaw: number;
24
+ /** Device info (raw hex string) */
25
+ deviceInfo: string;
26
+ /** Update version (formatted as HH.LL hex) */
27
+ updateVersion: string;
28
+ /** Update image info */
29
+ updateImageInfo: number;
30
+ /** SBL (second bootloader) firmware version */
31
+ sblFirmwareVersion: FirmwareVersion;
32
+ /** DSP firmware version (formatted as HHHH_LLLL hex) */
33
+ dspFirmwareVersion: string;
34
+ /** Spider DSP firmware version */
35
+ spiderDspFirmwareVersion: FirmwareVersion;
36
+ }
37
+ /** Default FirmwareInfo used when Feature Report 0x20 could not be read */
38
+ export declare const DefaultFirmwareInfo: FirmwareInfo;
39
+ /** Format a FirmwareVersion as "major.minor.patch" */
40
+ export declare function formatFirmwareVersion(v: FirmwareVersion): string;
41
+ /**
42
+ * Read and parse Feature Report 0x20 from a connected controller.
43
+ * Returns undefined if the report cannot be read.
44
+ */
45
+ export declare function readFirmwareInfo(provider: HIDProvider): Promise<FirmwareInfo | undefined>;
46
+ //# sourceMappingURL=firmware_info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firmware_info.d.ts","sourceRoot":"","sources":["../../src/hid/firmware_info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,0DAA0D;AAC1D,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iEAAiE;AACjE,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,mBAAmB,EAAE,eAAe,CAAC;IACrC,iEAAiE;IACjE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,wBAAwB;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,kBAAkB,EAAE,eAAe,CAAC;IACpC,wDAAwD;IACxD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kCAAkC;IAClC,wBAAwB,EAAE,eAAe,CAAC;CAC3C;AAKD,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,EAAE,YAcjC,CAAC;AAEF,sDAAsD;AACtD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAEhE;AA+DD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAyBnC"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readFirmwareInfo = exports.formatFirmwareVersion = exports.DefaultFirmwareInfo = void 0;
4
+ /** A zeroed firmware version */
5
+ const UnknownVersion = { major: 0, minor: 0, patch: 0 };
6
+ /** Default FirmwareInfo used when Feature Report 0x20 could not be read */
7
+ exports.DefaultFirmwareInfo = {
8
+ buildDate: "unknown",
9
+ buildTime: "unknown",
10
+ firmwareType: 0,
11
+ softwareSeries: 0,
12
+ hardwareInfo: 0,
13
+ mainFirmwareVersion: UnknownVersion,
14
+ mainFirmwareVersionRaw: 0,
15
+ deviceInfo: "unknown",
16
+ updateVersion: "00.00",
17
+ updateImageInfo: 0,
18
+ sblFirmwareVersion: UnknownVersion,
19
+ dspFirmwareVersion: "0000_0000",
20
+ spiderDspFirmwareVersion: UnknownVersion,
21
+ };
22
+ /** Format a FirmwareVersion as "major.minor.patch" */
23
+ function formatFirmwareVersion(v) {
24
+ return `${v.major}.${v.minor}.${v.patch}`;
25
+ }
26
+ exports.formatFirmwareVersion = formatFirmwareVersion;
27
+ /** Feature report ID for firmware information */
28
+ const REPORT_ID = 0x20;
29
+ /** Expected report length (report ID + 63 bytes of data) */
30
+ const REPORT_LENGTH = 64;
31
+ /** Parse a uint32 version into major.minor.patch */
32
+ function parseVersion(ver) {
33
+ return {
34
+ major: (ver >>> 24) & 0xff,
35
+ minor: (ver >>> 16) & 0xff,
36
+ patch: ver & 0xffff,
37
+ };
38
+ }
39
+ /** Format a uint16 as HH.LL hex */
40
+ function formatUpdateVersion(ver) {
41
+ const hi = ((ver >>> 8) & 0xff).toString(16).padStart(2, "0");
42
+ const lo = (ver & 0xff).toString(16).padStart(2, "0");
43
+ return `${hi}.${lo}`;
44
+ }
45
+ /** Format a uint32 as HHHH_LLLL hex */
46
+ function formatDspVersion(ver) {
47
+ const hi = ((ver >>> 16) & 0xffff).toString(16).padStart(4, "0");
48
+ const lo = (ver & 0xffff).toString(16).padStart(4, "0");
49
+ return `${hi}_${lo}`;
50
+ }
51
+ /** Read a null-terminated ASCII string from a buffer */
52
+ function readString(data, offset, length) {
53
+ let str = "";
54
+ for (let i = 0; i < length; i++) {
55
+ const byte = data[offset + i];
56
+ if (byte === 0)
57
+ break;
58
+ str += String.fromCharCode(byte);
59
+ }
60
+ return str;
61
+ }
62
+ /** Read a little-endian uint16 from a buffer */
63
+ function readUint16LE(data, offset) {
64
+ return data[offset] | (data[offset + 1] << 8);
65
+ }
66
+ /** Read a little-endian uint32 from a buffer */
67
+ function readUint32LE(data, offset) {
68
+ return (data[offset] |
69
+ (data[offset + 1] << 8) |
70
+ (data[offset + 2] << 16) |
71
+ ((data[offset + 3] << 24) >>> 0));
72
+ }
73
+ /** Convert bytes to a hex string */
74
+ function toHex(data, offset, length) {
75
+ return Array.from(data.slice(offset, offset + length))
76
+ .map((b) => b.toString(16).padStart(2, "0"))
77
+ .join("");
78
+ }
79
+ /**
80
+ * Read and parse Feature Report 0x20 from a connected controller.
81
+ * Returns undefined if the report cannot be read.
82
+ */
83
+ async function readFirmwareInfo(provider) {
84
+ try {
85
+ const data = await provider.readFeatureReport(REPORT_ID, REPORT_LENGTH);
86
+ // Offsets are from byte 1 (after the report ID byte)
87
+ const base = 1;
88
+ return {
89
+ buildDate: readString(data, base, 11),
90
+ buildTime: readString(data, base + 11, 8),
91
+ firmwareType: readUint16LE(data, base + 19),
92
+ softwareSeries: readUint16LE(data, base + 21),
93
+ hardwareInfo: readUint32LE(data, base + 23),
94
+ mainFirmwareVersion: parseVersion(readUint32LE(data, base + 27)),
95
+ mainFirmwareVersionRaw: readUint32LE(data, base + 27),
96
+ deviceInfo: toHex(data, base + 31, 12),
97
+ updateVersion: formatUpdateVersion(readUint16LE(data, base + 43)),
98
+ updateImageInfo: data[base + 45],
99
+ sblFirmwareVersion: parseVersion(readUint32LE(data, base + 47)),
100
+ dspFirmwareVersion: formatDspVersion(readUint32LE(data, base + 51)),
101
+ spiderDspFirmwareVersion: parseVersion(readUint32LE(data, base + 55)),
102
+ };
103
+ }
104
+ catch {
105
+ return undefined;
106
+ }
107
+ }
108
+ exports.readFirmwareInfo = readFirmwareInfo;
109
+ //# sourceMappingURL=firmware_info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firmware_info.js","sourceRoot":"","sources":["../../src/hid/firmware_info.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,8 @@ export interface DualsenseHIDState {
63
63
  [InputId.BatteryLevel]: number;
64
64
  [InputId.BatteryStatus]: ChargeStatus;
65
65
  [InputId.MuteLed]: boolean;
66
+ [InputId.Microphone]: boolean;
67
+ [InputId.Headphone]: boolean;
66
68
  }
67
69
  /** Default values for all inputs */
68
70
  export declare const DefaultDualsenseHIDState: DualsenseHIDState;
@@ -91,6 +93,10 @@ export declare abstract class HIDProvider {
91
93
  onData: (state: DualsenseHIDState) => void;
92
94
  /** Callback to use for Error events */
93
95
  onError: (error: Error) => void;
96
+ /** Callback fired the moment a device is fully attached and ready for I/O */
97
+ onConnect: () => void;
98
+ /** Callback fired the moment a device detaches (cleanly or via error) */
99
+ onDisconnect: () => void;
94
100
  /** Unique identifier for the connected device (path or serial) */
95
101
  deviceId?: string;
96
102
  /** Hardware serial number of the connected device */
@@ -111,6 +117,10 @@ export declare abstract class HIDProvider {
111
117
  abstract process(input: unknown): DualsenseHIDState;
112
118
  /** Write to the HID device */
113
119
  abstract write(data: Uint8Array): Promise<void>;
120
+ /** Read a feature report from the device */
121
+ abstract readFeatureReport(reportId: number, length?: number): Promise<Uint8Array>;
122
+ /** Send a feature report to the device */
123
+ abstract sendFeatureReport(reportId: number, data: Uint8Array): Promise<void>;
114
124
  /** If true, gyroscope, touchpad, accelerometer are disabled */
115
125
  limited?: boolean;
116
126
  /**
@@ -171,6 +181,8 @@ export declare abstract class HIDProvider {
171
181
  TouchY1: number;
172
182
  Status: boolean;
173
183
  MuteLed: boolean;
184
+ Microphone: boolean;
185
+ Headphone: boolean;
174
186
  BatteryLevel: number;
175
187
  BatteryStatus: ChargeStatus;
176
188
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hid_provider.d.ts","sourceRoot":"","sources":["../../src/hid/hid_provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hid_provider.d.ts","sourceRoot":"","sources":["../../src/hid/hid_provider.ts"],"names":[],"mappings":"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"}
@@ -89,6 +89,8 @@ exports.DefaultDualsenseHIDState = {
89
89
  ["BatteryLevel" /* InputId.BatteryLevel */]: 0,
90
90
  ["BatteryStatus" /* InputId.BatteryStatus */]: battery_state_1.ChargeStatus.Discharging,
91
91
  ["MuteLed" /* InputId.MuteLed */]: false,
92
+ ["Microphone" /* InputId.Microphone */]: false,
93
+ ["Headphone" /* InputId.Headphone */]: false,
92
94
  };
93
95
  /** Supports a connection to a physical or virtual Dualsense device */
94
96
  class HIDProvider {
@@ -97,6 +99,10 @@ class HIDProvider {
97
99
  this.onData = () => { };
98
100
  /** Callback to use for Error events */
99
101
  this.onError = () => { };
102
+ /** Callback fired the moment a device is fully attached and ready for I/O */
103
+ this.onConnect = () => { };
104
+ /** Callback fired the moment a device detaches (cleanly or via error) */
105
+ this.onDisconnect = () => { };
100
106
  }
101
107
  /**
102
108
  * Sselects the correct method for reading the report.
@@ -121,6 +127,7 @@ class HIDProvider {
121
127
  * Reset the HIDProvider state when the device is disconnected
122
128
  */
123
129
  reset() {
130
+ const wasAttached = this.device !== undefined;
124
131
  if (this.deviceId) {
125
132
  HIDProvider.claimedDevices.delete(this.deviceId);
126
133
  }
@@ -131,6 +138,8 @@ class HIDProvider {
131
138
  this.deviceId = undefined;
132
139
  this.serialNumber = undefined;
133
140
  this.onData(exports.DefaultDualsenseHIDState);
141
+ if (wasAttached)
142
+ this.onDisconnect();
134
143
  }
135
144
  /**
136
145
  * Process a bluetooth input report of type 01.
@@ -230,6 +239,8 @@ class HIDProvider {
230
239
  ["TouchY1" /* InputId.TouchY1 */]: mapAxis(buffer.readUint16LE(40) >> 4, 1080),
231
240
  ["Status" /* InputId.Status */]: (buffer.readUint8(55) & 8) > 0,
232
241
  ["MuteLed" /* InputId.MuteLed */]: (buffer.readUint8(55) & 4) > 0,
242
+ ["Microphone" /* InputId.Microphone */]: (buffer.readUint8(55) & 2) > 0,
243
+ ["Headphone" /* InputId.Headphone */]: (buffer.readUint8(55) & 1) > 0,
233
244
  ["BatteryLevel" /* InputId.BatteryLevel */]: mapBatteryLevel(buffer.readUint8(54)),
234
245
  ["BatteryStatus" /* InputId.BatteryStatus */]: (buffer.readUint8(54) >> 4),
235
246
  };
@@ -293,6 +304,8 @@ class HIDProvider {
293
304
  // 12 reserved bytes
294
305
  ["Status" /* InputId.Status */]: (buffer.readUint8(54) & 8) > 0,
295
306
  ["MuteLed" /* InputId.MuteLed */]: (buffer.readUint8(54) & 4) > 0,
307
+ ["Microphone" /* InputId.Microphone */]: (buffer.readUint8(54) & 2) > 0,
308
+ ["Headphone" /* InputId.Headphone */]: (buffer.readUint8(54) & 1) > 0,
296
309
  ["BatteryLevel" /* InputId.BatteryLevel */]: mapBatteryLevel(buffer.readUint8(53)),
297
310
  ["BatteryStatus" /* InputId.BatteryStatus */]: (buffer.readUint8(53) >> 4),
298
311
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hid_provider.js","sourceRoot":"","sources":["../../src/hid/hid_provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hid_provider.js","sourceRoot":"","sources":["../../src/hid/hid_provider.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,11 @@ export * from "./bt_checksum";
6
6
  export * from "./byte_array";
7
7
  export * from "./command";
8
8
  export * from "./dualsense_hid";
9
+ export * from "./factory_info";
10
+ export * from "./firmware_info";
9
11
  export * from "./hid_provider";
10
12
  export * from "./node_hid_provider";
13
+ export * from "./pairing_info";
11
14
  export * from "./platform_hid_provider";
12
15
  export * from "./web_hid_provider";
13
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hid/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hid/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC"}
package/dist/hid/index.js CHANGED
@@ -22,8 +22,11 @@ __exportStar(require("./bt_checksum"), exports);
22
22
  __exportStar(require("./byte_array"), exports);
23
23
  __exportStar(require("./command"), exports);
24
24
  __exportStar(require("./dualsense_hid"), exports);
25
+ __exportStar(require("./factory_info"), exports);
26
+ __exportStar(require("./firmware_info"), exports);
25
27
  __exportStar(require("./hid_provider"), exports);
26
28
  __exportStar(require("./node_hid_provider"), exports);
29
+ __exportStar(require("./pairing_info"), exports);
27
30
  __exportStar(require("./platform_hid_provider"), exports);
28
31
  __exportStar(require("./web_hid_provider"), exports);
29
32
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hid/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,kDAAgC;AAChC,gDAA8B;AAC9B,+CAA6B;AAC7B,4CAA0B;AAC1B,kDAAgC;AAChC,iDAA+B;AAC/B,sDAAoC;AACpC,0DAAwC;AACxC,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hid/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,kDAAgC;AAChC,gDAA8B;AAC9B,+CAA6B;AAC7B,4CAA0B;AAC1B,kDAAgC;AAChC,iDAA+B;AAC/B,kDAAgC;AAChC,iDAA+B;AAC/B,sDAAoC;AACpC,iDAA+B;AAC/B,0DAAwC;AACxC,qDAAmC"}
@@ -22,6 +22,8 @@ export declare class NodeHIDProvider extends HIDProvider {
22
22
  static enumerate(): Promise<DualsenseDeviceInfo[]>;
23
23
  connect(): Promise<void>;
24
24
  write(data: Uint8Array): Promise<void>;
25
+ readFeatureReport(reportId: number, length: number): Promise<Uint8Array>;
26
+ sendFeatureReport(_reportId: number, data: Uint8Array): Promise<void>;
25
27
  get connected(): boolean;
26
28
  disconnect(): void;
27
29
  process(buffer: Buffer): DualsenseHIDState;
@@ -1 +1 @@
1
- {"version":3,"file":"node_hid_provider.d.ts","sourceRoot":"","sources":["../../src/hid/node_hid_provider.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,GAAG,EAAU,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErF,MAAM,WAAW,sBAAsB;IACrC,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACvC,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEvB,OAAO,CAAC,UAAU,CAAS;IAC3B,mFAAmF;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;gBAEjB,OAAO,GAAE,sBAA2B;IAMhD,+CAA+C;WAClC,SAAS,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAsBlD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA6F9B,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,UAAU,IAAI,IAAI;IAQlB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB;CAY3C"}
1
+ {"version":3,"file":"node_hid_provider.d.ts","sourceRoot":"","sources":["../../src/hid/node_hid_provider.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,GAAG,EAAU,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErF,MAAM,WAAW,sBAAsB;IACrC,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACvC,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEvB,OAAO,CAAC,UAAU,CAAS;IAC3B,mFAAmF;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;gBAEjB,OAAO,GAAE,sBAA2B;IAMhD,+CAA+C;WAClC,SAAS,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAsBlD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8F9B,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAMxE,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrE,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,UAAU,IAAI,IAAI;IAQlB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB;CAY3C"}
@@ -106,6 +106,7 @@ class NodeHIDProvider extends hid_provider_1.HIDProvider {
106
106
  this.onError(err);
107
107
  });
108
108
  this.device = device;
109
+ this.onConnect();
109
110
  }
110
111
  catch (err) {
111
112
  this.onError(err instanceof Error ? err : new Error(String(err)));
@@ -120,6 +121,19 @@ class NodeHIDProvider extends hid_provider_1.HIDProvider {
120
121
  this.device.write(Array.from(data));
121
122
  return Promise.resolve();
122
123
  }
124
+ readFeatureReport(reportId, length) {
125
+ if (!this.device)
126
+ return Promise.reject(new Error("No device connected"));
127
+ const buf = this.device.getFeatureReport(reportId, length);
128
+ return Promise.resolve(new Uint8Array(buf));
129
+ }
130
+ sendFeatureReport(_reportId, data) {
131
+ if (!this.device)
132
+ return Promise.resolve();
133
+ // node-hid sendFeatureReport expects the report ID as the first byte of the buffer
134
+ this.device.sendFeatureReport(Array.from(data));
135
+ return Promise.resolve();
136
+ }
123
137
  get connected() {
124
138
  return this.device !== undefined;
125
139
  }
@@ -1 +1 @@
1
- {"version":3,"file":"node_hid_provider.js","sourceRoot":"","sources":["../../src/hid/node_hid_provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node_hid_provider.js","sourceRoot":"","sources":["../../src/hid/node_hid_provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { HIDProvider } from "./hid_provider";
2
+ /**
3
+ * Read the controller's Bluetooth MAC address from Feature Report 0x09.
4
+ * Works over both USB and Bluetooth on all platforms.
5
+ * Returns the MAC as a colon-separated hex string (e.g. "AA:BB:CC:DD:EE:FF"),
6
+ * or undefined if the report cannot be read.
7
+ */
8
+ export declare function readMacAddress(provider: HIDProvider): Promise<string | undefined>;
9
+ //# sourceMappingURL=pairing_info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pairing_info.d.ts","sourceRoot":"","sources":["../../src/hid/pairing_info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAO7C;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiB7B"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readMacAddress = void 0;
4
+ /** Feature report ID for pairing info */
5
+ const REPORT_ID = 0x09;
6
+ /** Expected report length (report ID + 19 bytes) */
7
+ const REPORT_LENGTH = 20;
8
+ /**
9
+ * Read the controller's Bluetooth MAC address from Feature Report 0x09.
10
+ * Works over both USB and Bluetooth on all platforms.
11
+ * Returns the MAC as a colon-separated hex string (e.g. "AA:BB:CC:DD:EE:FF"),
12
+ * or undefined if the report cannot be read.
13
+ */
14
+ async function readMacAddress(provider) {
15
+ try {
16
+ const data = await provider.readFeatureReport(REPORT_ID, REPORT_LENGTH);
17
+ // Bytes 1–6 contain the MAC in little-endian order
18
+ const mac = [];
19
+ for (let i = 6; i >= 1; i--) {
20
+ mac.push(data[i].toString(16).padStart(2, "0"));
21
+ }
22
+ const result = mac.join(":");
23
+ // Reject all-zero MACs (no pairing info available)
24
+ if (result === "00:00:00:00:00:00")
25
+ return undefined;
26
+ return result;
27
+ }
28
+ catch {
29
+ return undefined;
30
+ }
31
+ }
32
+ exports.readMacAddress = readMacAddress;
33
+ //# sourceMappingURL=pairing_info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pairing_info.js","sourceRoot":"","sources":["../../src/hid/pairing_info.ts"],"names":[],"mappings":";;;AAEA,yCAAyC;AACzC,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,oDAAoD;AACpD,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAClC,QAAqB;IAErB,IAAI;QACF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAExE,mDAAmD;QACnD,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;SACjD;QAED,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,mDAAmD;QACnD,IAAI,MAAM,KAAK,mBAAmB;YAAE,OAAO,SAAS,CAAC;QACrD,OAAO,MAAM,CAAC;KACf;IAAC,MAAM;QACN,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAnBD,wCAmBC"}
@@ -21,6 +21,16 @@ export declare class WebHIDProvider extends HIDProvider {
21
21
  /** Derive a stable identity string for a WebHID device */
22
22
  private static deviceKey;
23
23
  attach(device: HIDDevice): void;
24
+ /**
25
+ * Detach the current HIDDevice (if any) and attach a different one in place.
26
+ * Used by the manager to transplant a freshly-discovered device into an
27
+ * existing slot's provider after identity matching, so the consumer's
28
+ * Dualsense reference survives reconnection.
29
+ *
30
+ * The new device must already be open (or openable) — we close the old one,
31
+ * release its claim, and run the standard attach() flow on the new one.
32
+ */
33
+ replaceDevice(device: HIDDevice): void;
24
34
  /**
25
35
  * You need to get HID device permissions from an interactive
26
36
  * component, like a button. This returns a callback for triggering
@@ -38,6 +48,10 @@ export declare class WebHIDProvider extends HIDProvider {
38
48
  connect(): void;
39
49
  get connected(): boolean;
40
50
  disconnect(): void;
51
+ readFeatureReport(reportId: number): Promise<Uint8Array>;
52
+ sendFeatureReport(reportId: number, data: Uint8Array): Promise<void>;
53
+ /** Query the HID descriptor for the expected payload length of a feature report */
54
+ private getFeatureReportLength;
41
55
  write(data: Uint8Array): Promise<void>;
42
56
  process({ reportId, buffer, }: {
43
57
  reportId: number;
@@ -1 +1 @@
1
- {"version":3,"file":"web_hid_provider.d.ts","sourceRoot":"","sources":["../../src/hid/web_hid_provider.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,iFAAiF;AACjF,MAAM,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;AAE/D,qBAAa,cAAe,SAAQ,WAAW;IACtC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAEzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAY;gBAE9B,OAAO,GAAE,qBAA0B;IAuB/C;;;;OAIG;IACH,oBAAoB,IAAI,IAAI;IAmC5B,0DAA0D;IAC1D,OAAO,CAAC,MAAM,CAAC,SAAS;IAWxB,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IA8B/B;;;;OAIG;IACH,UAAU,IAAI,MAAM,OAAO,CAAC,OAAO,CAAC;IAwBpC;;;;OAIG;IACH,MAAM,CAAC,eAAe,CACpB,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC/B,MAAM,OAAO,CAAC,IAAI,CAAC;IAqBtB,+CAA+C;WAClC,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAS9C,OAAO,IAAI,IAAI;IAIf,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,UAAU,IAAI,IAAI;IAQZ,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5C,OAAO,CAAC,EACN,QAAQ,EACR,MAAM,GACP,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,QAAQ,CAAC;KAClB,GAAG,iBAAiB;CAgBtB"}
1
+ {"version":3,"file":"web_hid_provider.d.ts","sourceRoot":"","sources":["../../src/hid/web_hid_provider.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGhE,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,iFAAiF;AACjF,MAAM,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;AAE/D,qBAAa,cAAe,SAAQ,WAAW;IACtC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAEzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAY;gBAE9B,OAAO,GAAE,qBAA0B;IAwB/C;;;;OAIG;IACH,oBAAoB,IAAI,IAAI;IAmC5B,0DAA0D;IAC1D,OAAO,CAAC,MAAM,CAAC,SAAS;IAWxB,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IA2B/B;;;;;;;;OAQG;IACH,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IActC;;;;OAIG;IACH,UAAU,IAAI,MAAM,OAAO,CAAC,OAAO,CAAC;IAwBpC;;;;OAIG;IACH,MAAM,CAAC,eAAe,CACpB,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC/B,MAAM,OAAO,CAAC,IAAI,CAAC;IAqBtB,+CAA+C;WAClC,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAS9C,OAAO,IAAI,IAAI;IAIf,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,UAAU,IAAI,IAAI;IAcZ,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAMxD,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B1E,mFAAmF;IACnF,OAAO,CAAC,sBAAsB;IAcxB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5C,OAAO,CAAC,EACN,QAAQ,EACR,MAAM,GACP,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,QAAQ,CAAC;KAClB,GAAG,iBAAiB;CAgBtB"}