dualsense-ts 6.9.10 → 6.11.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 (41) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +18 -0
  3. package/dist/dualsense.d.ts +7 -1
  4. package/dist/dualsense.d.ts.map +1 -1
  5. package/dist/dualsense.js +60 -45
  6. package/dist/dualsense.js.map +1 -1
  7. package/dist/elements/audio.js +9 -9
  8. package/dist/elements/audio.js.map +1 -1
  9. package/dist/elements/index.d.ts +1 -0
  10. package/dist/elements/index.d.ts.map +1 -1
  11. package/dist/elements/index.js +1 -0
  12. package/dist/elements/index.js.map +1 -1
  13. package/dist/elements/power_save.d.ts +56 -0
  14. package/dist/elements/power_save.d.ts.map +1 -0
  15. package/dist/elements/power_save.js +102 -0
  16. package/dist/elements/power_save.js.map +1 -0
  17. package/dist/hid/byte_array.d.ts +1 -0
  18. package/dist/hid/byte_array.d.ts.map +1 -1
  19. package/dist/hid/command.d.ts +1 -1
  20. package/dist/hid/command.d.ts.map +1 -1
  21. package/dist/hid/command.js +41 -1
  22. package/dist/hid/command.js.map +1 -1
  23. package/dist/hid/dualsense_hid.js +16 -16
  24. package/dist/hid/dualsense_hid.js.map +1 -1
  25. package/dist/hid/hid_provider.d.ts +2 -0
  26. package/dist/hid/hid_provider.d.ts.map +1 -1
  27. package/dist/hid/hid_provider.js +167 -164
  28. package/dist/hid/hid_provider.js.map +1 -1
  29. package/dist/hid/node_hid_provider.d.ts.map +1 -1
  30. package/dist/hid/node_hid_provider.js +5 -35
  31. package/dist/hid/node_hid_provider.js.map +1 -1
  32. package/dist/hid/web_hid_provider.d.ts.map +1 -1
  33. package/dist/hid/web_hid_provider.js +5 -0
  34. package/dist/hid/web_hid_provider.js.map +1 -1
  35. package/dist/id.d.ts +2 -0
  36. package/dist/id.d.ts.map +1 -1
  37. package/dist/id.js +58 -0
  38. package/dist/id.js.map +1 -1
  39. package/dist/input.js +5 -2
  40. package/dist/input.js.map +1 -1
  41. package/package.json +4 -3
package/CHANGELOG.md CHANGED
@@ -2,6 +2,25 @@
2
2
 
3
3
  All notable changes to `dualsense-ts` are documented here. This project uses [Semantic Versioning](https://semver.org/).
4
4
 
5
+ ## [6.11.0] - 2026-04-13
6
+
7
+ ### Added
8
+
9
+ - **Power save control**: `controller.powerSave` allows selectively disabling touch, motion, haptics, or audio processing on the controller to conserve battery. Supports individual property setters, bulk `set()`, and `reset()`
10
+
11
+ ## [6.10.0] - 2026-04-13
12
+
13
+ ### Added
14
+
15
+ - **Sensor timestamp**: `controller.sensorTimestamp` exposes the 32-bit monotonic microsecond counter from each input report, enabling precise time deltas for gyroscope integration and frame-rate-independent motion processing
16
+ - `ByteArray.readUint32LE` for reading 32-bit little-endian values from HID reports
17
+
18
+ ### Changed
19
+
20
+ - **TypeScript 6.0**: upgraded from 5.8; migrated to `module: "Node16"` / `moduleResolution: "Node16"` with explicit `types` declarations and `isolatedModules: true`
21
+ - **ESLint 10**: upgraded from 9; added `@eslint/js` as explicit dependency (unbundled in ESLint 10)
22
+ - Bumped CI actions: `actions/checkout` v6, `actions/setup-node` v6, `actions/download-artifact` v8, `dependabot/fetch-metadata` v3
23
+
5
24
  ## [6.9.10] - 2026-04-13
6
25
 
7
26
  ### Fixed
package/README.md CHANGED
@@ -17,6 +17,7 @@ Check out the **[interactive docs](https://nsfm.github.io/dualsense-ts/)**! Conn
17
17
  - **[Battery status](https://nsfm.github.io/dualsense-ts/inputs/battery)** including level and charging state
18
18
  - **[Audio controls](https://nsfm.github.io/dualsense-ts/outputs/audio)** for speaker, headphone, and microphone volume, routing, and muting
19
19
  - **Peripheral status** for connected headphones and microphone
20
+ - **[Power save](https://nsfm.github.io/dualsense-ts/outputs/power-save)** flags for per-subsystem muting (haptic mute confirmed; subsystem disable flags advisory)
20
21
  - **[Firmware info](https://nsfm.github.io/dualsense-ts/status)** checks providing controller color, hardware/software versions, and more
21
22
 
22
23
  ## [Getting started](https://nsfm.github.io/dualsense-ts/getting-started)
@@ -457,6 +458,23 @@ console.log(`Serial: ${fi.serialNumber}`);
457
458
 
458
459
  The `firmwareInfo` property includes build date/time, firmware versions, hardware info, and device info. The `factoryInfo` property includes the controller's body color, board revision, and serial number.
459
460
 
461
+ #### [Power Save](https://nsfm.github.io/dualsense-ts/outputs/power-save)
462
+
463
+ The output report exposes per-subsystem power save flags. The **mute flags** (haptic mute, and per-channel audio mutes on `Audio`) have confirmed observable effects. The **disable flags** (touch, motion, haptics, audio) are valid protocol bits but have no confirmed observable impact in our testing - they may affect internal power draw without changing host-visible behavior.
464
+
465
+ ```typescript
466
+ // Mute haptic output (confirmed working)
467
+ controller.powerSave.hapticsMuted = true;
468
+
469
+ // Send disable flags (advisory — no confirmed observable effect)
470
+ controller.powerSave.set({ motion: false, touch: false });
471
+
472
+ // Re-enable everything
473
+ controller.powerSave.reset();
474
+ ```
475
+
476
+ See the [Power Save docs](https://nsfm.github.io/dualsense-ts/outputs/power-save) for the full API and hardware notes.
477
+
460
478
  ## [Using `dualsense-ts` with React](https://nsfm.github.io/dualsense-ts/react)
461
479
 
462
480
  The library's event-driven API maps naturally to React. Create a singleton instance at module scope, expose it through a context, and use a lightweight hook to subscribe components to input changes:
@@ -1,4 +1,4 @@
1
- import { Momentary, Dpad, DpadParams, Mute, Unisense, UnisenseParams, Touchpad, Gyroscope, GyroscopeParams, Accelerometer, AccelerometerParams, Battery, BatteryParams, Lightbar, PlayerLeds, Audio } from "./elements";
1
+ import { Momentary, Dpad, DpadParams, Mute, Unisense, UnisenseParams, Touchpad, Gyroscope, GyroscopeParams, Accelerometer, AccelerometerParams, Battery, BatteryParams, Lightbar, PlayerLeds, Audio, PowerSaveControl } from "./elements";
2
2
  import { Input, InputParams } from "./input";
3
3
  import { DualsenseHID, FirmwareInfo, FactoryInfo, DualsenseColor } from "./hid";
4
4
  import { Intensity } from "./math";
@@ -80,6 +80,12 @@ export declare class Dualsense extends Input<Dualsense> {
80
80
  readonly playerLeds: PlayerLeds;
81
81
  /** Audio volume, routing, and microphone controls */
82
82
  readonly audio: Audio;
83
+ /** Per-subsystem power save controls (disable touch, motion, haptics, audio) */
84
+ readonly powerSave: PowerSaveControl;
85
+ /** Monotonic sensor timestamp in microseconds from the controller's clock.
86
+ * Updated with each input report — useful for correlating motion sensor
87
+ * readings with other inputs across frames. Wraps at 2^32 (~71.6 minutes). */
88
+ sensorTimestamp: number;
83
89
  /** Active interval timers, cleared on dispose */
84
90
  private readonly timers;
85
91
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"dualsense.d.ts","sourceRoot":"","sources":["../src/dualsense.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dualsense.d.ts","sourceRoot":"","sources":["../src/dualsense.ts"],"names":[],"mappings":"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"}
package/dist/dualsense.js CHANGED
@@ -48,6 +48,12 @@ class Dualsense extends input_1.Input {
48
48
  this.playerLeds = new elements_1.PlayerLeds();
49
49
  /** Audio volume, routing, and microphone controls */
50
50
  this.audio = new elements_1.Audio();
51
+ /** Per-subsystem power save controls (disable touch, motion, haptics, audio) */
52
+ this.powerSave = new elements_1.PowerSaveControl();
53
+ /** Monotonic sensor timestamp in microseconds from the controller's clock.
54
+ * Updated with each input report — useful for correlating motion sensor
55
+ * readings with other inputs across frames. Wraps at 2^32 (~71.6 minutes). */
56
+ this.sensorTimestamp = 0;
51
57
  /** Active interval timers, cleared on dispose */
52
58
  this.timers = [];
53
59
  /**
@@ -167,6 +173,7 @@ class Dualsense extends input_1.Input {
167
173
  // are only sent once the user explicitly changes a setting.
168
174
  const initialAudioKey = this.audio.toKey();
169
175
  const audioMemo = { key: initialAudioKey, userChanged: false };
176
+ const powerSaveMemo = { key: "" };
170
177
  // Mirror transport-level connect/disconnect into the connection Momentary,
171
178
  // and invalidate output memos on rising-edge connect so the output loop
172
179
  // re-pushes desired state to the new device.
@@ -178,6 +185,7 @@ class Dualsense extends input_1.Input {
178
185
  lightbarMemo.key = "";
179
186
  playerLedsMemo.key = "";
180
187
  muteLedMemo.mode = undefined;
188
+ powerSaveMemo.key = "";
181
189
  if (audioMemo.userChanged)
182
190
  audioMemo.key = "";
183
191
  }
@@ -268,10 +276,16 @@ class Dualsense extends input_1.Input {
268
276
  this.hid.setSpeakerVolume(this.audio.speakerVolumeRaw);
269
277
  this.hid.setMicrophoneVolume(this.audio.microphoneVolumeRaw);
270
278
  this.hid.setAudioFlags(this.audio.audioFlags);
271
- this.hid.setPowerSave(this.audio.powerSaveFlags);
272
279
  this.hid.setSpeakerPreamp(this.audio.preampGain, this.audio.beamForming);
273
280
  audioMemo.key = audioKey;
274
281
  }
282
+ // Power save byte 10 combines audio mute flags with subsystem disable flags.
283
+ // Send when either source changes.
284
+ const psKey = `${this.audio.powerSaveFlags}|${this.powerSave.toKey()}`;
285
+ if (psKey !== powerSaveMemo.key) {
286
+ this.hid.setPowerSave(this.audio.powerSaveFlags | this.powerSave.flags);
287
+ powerSaveMemo.key = psKey;
288
+ }
275
289
  }, 1000 / 30));
276
290
  }
277
291
  /** Stop all internal timers and release resources. */
@@ -310,53 +324,54 @@ class Dualsense extends input_1.Input {
310
324
  }
311
325
  /** Distributes HID event values to the controller's public inputs. */
312
326
  processHID(state) {
313
- this.ps[input_1.InputSet](state["Playstation" /* InputId.Playstation */]);
314
- this.options[input_1.InputSet](state["Options" /* InputId.Options */]);
315
- this.create[input_1.InputSet](state["Create" /* InputId.Create */]);
316
- this.mute[input_1.InputSet](state["Mute" /* InputId.Mute */]);
317
- this.mute.status[input_1.InputSet](state["MuteLed" /* InputId.MuteLed */]);
318
- this.microphone[input_1.InputSet](state["Microphone" /* InputId.Microphone */]);
319
- this.headphone[input_1.InputSet](state["Headphone" /* InputId.Headphone */]);
320
- this.triangle[input_1.InputSet](state["Triangle" /* InputId.Triangle */]);
321
- this.circle[input_1.InputSet](state["Circle" /* InputId.Circle */]);
322
- this.cross[input_1.InputSet](state["Cross" /* InputId.Cross */]);
323
- this.square[input_1.InputSet](state["Square" /* InputId.Square */]);
324
- this.dpad.up[input_1.InputSet](state["Up" /* InputId.Up */]);
325
- this.dpad.down[input_1.InputSet](state["Down" /* InputId.Down */]);
326
- this.dpad.right[input_1.InputSet](state["Right" /* InputId.Right */]);
327
- this.dpad.left[input_1.InputSet](state["Left" /* InputId.Left */]);
328
- this.touchpad.button[input_1.InputSet](state["TouchButton" /* InputId.TouchButton */]);
329
- this.touchpad.left.x[input_1.InputSet](state["TouchX0" /* InputId.TouchX0 */]);
330
- this.touchpad.left.y[input_1.InputSet](state["TouchY0" /* InputId.TouchY0 */]);
331
- this.touchpad.left.contact[input_1.InputSet](state["TouchContact0" /* InputId.TouchContact0 */]);
332
- this.touchpad.left.tracker[input_1.InputSet](state["TouchId0" /* InputId.TouchId0 */]);
333
- this.touchpad.right.x[input_1.InputSet](state["TouchX1" /* InputId.TouchX1 */]);
334
- this.touchpad.right.y[input_1.InputSet](state["TouchY1" /* InputId.TouchY1 */]);
335
- this.touchpad.right.contact[input_1.InputSet](state["TouchContact1" /* InputId.TouchContact1 */]);
336
- this.touchpad.right.tracker[input_1.InputSet](state["TouchId1" /* InputId.TouchId1 */]);
337
- this.left.analog.x[input_1.InputSet](state["LX" /* InputId.LeftAnalogX */]);
338
- this.left.analog.y[input_1.InputSet](state["LY" /* InputId.LeftAnalogY */]);
339
- this.left.analog.button[input_1.InputSet](state["L3" /* InputId.LeftAnalogButton */]);
340
- this.left.bumper[input_1.InputSet](state["L1" /* InputId.LeftBumper */]);
341
- this.left.trigger[input_1.InputSet](state["L2" /* InputId.LeftTrigger */]);
342
- this.left.trigger.button[input_1.InputSet](state["L2Button" /* InputId.LeftTriggerButton */]);
343
- this.right.analog.x[input_1.InputSet](state["RX" /* InputId.RightAnalogX */]);
344
- this.right.analog.y[input_1.InputSet](state["RY" /* InputId.RightAnalogY */]);
345
- this.right.analog.button[input_1.InputSet](state["R3" /* InputId.RightAnalogButton */]);
346
- this.right.bumper[input_1.InputSet](state["R1" /* InputId.RightBumper */]);
347
- this.right.trigger[input_1.InputSet](state["R2" /* InputId.RightTrigger */]);
348
- this.right.trigger.button[input_1.InputSet](state["R2Button" /* InputId.RightTriggerButton */]);
349
- this.gyroscope.x[input_1.InputSet](state["GyroX" /* InputId.GyroX */]);
350
- this.gyroscope.y[input_1.InputSet](state["GyroY" /* InputId.GyroY */]);
351
- this.gyroscope.z[input_1.InputSet](state["GyroZ" /* InputId.GyroZ */]);
352
- this.accelerometer.x[input_1.InputSet](state["AccelX" /* InputId.AccelX */]);
353
- this.accelerometer.y[input_1.InputSet](state["AccelY" /* InputId.AccelY */]);
354
- this.accelerometer.z[input_1.InputSet](state["AccelZ" /* InputId.AccelZ */]);
355
- const level = state["BatteryLevel" /* InputId.BatteryLevel */];
327
+ this.ps[input_1.InputSet](state[hid_1.InputId.Playstation]);
328
+ this.options[input_1.InputSet](state[hid_1.InputId.Options]);
329
+ this.create[input_1.InputSet](state[hid_1.InputId.Create]);
330
+ this.mute[input_1.InputSet](state[hid_1.InputId.Mute]);
331
+ this.mute.status[input_1.InputSet](state[hid_1.InputId.MuteLed]);
332
+ this.microphone[input_1.InputSet](state[hid_1.InputId.Microphone]);
333
+ this.headphone[input_1.InputSet](state[hid_1.InputId.Headphone]);
334
+ this.triangle[input_1.InputSet](state[hid_1.InputId.Triangle]);
335
+ this.circle[input_1.InputSet](state[hid_1.InputId.Circle]);
336
+ this.cross[input_1.InputSet](state[hid_1.InputId.Cross]);
337
+ this.square[input_1.InputSet](state[hid_1.InputId.Square]);
338
+ this.dpad.up[input_1.InputSet](state[hid_1.InputId.Up]);
339
+ this.dpad.down[input_1.InputSet](state[hid_1.InputId.Down]);
340
+ this.dpad.right[input_1.InputSet](state[hid_1.InputId.Right]);
341
+ this.dpad.left[input_1.InputSet](state[hid_1.InputId.Left]);
342
+ this.touchpad.button[input_1.InputSet](state[hid_1.InputId.TouchButton]);
343
+ this.touchpad.left.x[input_1.InputSet](state[hid_1.InputId.TouchX0]);
344
+ this.touchpad.left.y[input_1.InputSet](state[hid_1.InputId.TouchY0]);
345
+ this.touchpad.left.contact[input_1.InputSet](state[hid_1.InputId.TouchContact0]);
346
+ this.touchpad.left.tracker[input_1.InputSet](state[hid_1.InputId.TouchId0]);
347
+ this.touchpad.right.x[input_1.InputSet](state[hid_1.InputId.TouchX1]);
348
+ this.touchpad.right.y[input_1.InputSet](state[hid_1.InputId.TouchY1]);
349
+ this.touchpad.right.contact[input_1.InputSet](state[hid_1.InputId.TouchContact1]);
350
+ this.touchpad.right.tracker[input_1.InputSet](state[hid_1.InputId.TouchId1]);
351
+ this.left.analog.x[input_1.InputSet](state[hid_1.InputId.LeftAnalogX]);
352
+ this.left.analog.y[input_1.InputSet](state[hid_1.InputId.LeftAnalogY]);
353
+ this.left.analog.button[input_1.InputSet](state[hid_1.InputId.LeftAnalogButton]);
354
+ this.left.bumper[input_1.InputSet](state[hid_1.InputId.LeftBumper]);
355
+ this.left.trigger[input_1.InputSet](state[hid_1.InputId.LeftTrigger]);
356
+ this.left.trigger.button[input_1.InputSet](state[hid_1.InputId.LeftTriggerButton]);
357
+ this.right.analog.x[input_1.InputSet](state[hid_1.InputId.RightAnalogX]);
358
+ this.right.analog.y[input_1.InputSet](state[hid_1.InputId.RightAnalogY]);
359
+ this.right.analog.button[input_1.InputSet](state[hid_1.InputId.RightAnalogButton]);
360
+ this.right.bumper[input_1.InputSet](state[hid_1.InputId.RightBumper]);
361
+ this.right.trigger[input_1.InputSet](state[hid_1.InputId.RightTrigger]);
362
+ this.right.trigger.button[input_1.InputSet](state[hid_1.InputId.RightTriggerButton]);
363
+ this.sensorTimestamp = state[hid_1.InputId.SensorTimestamp];
364
+ this.gyroscope.x[input_1.InputSet](state[hid_1.InputId.GyroX]);
365
+ this.gyroscope.y[input_1.InputSet](state[hid_1.InputId.GyroY]);
366
+ this.gyroscope.z[input_1.InputSet](state[hid_1.InputId.GyroZ]);
367
+ this.accelerometer.x[input_1.InputSet](state[hid_1.InputId.AccelX]);
368
+ this.accelerometer.y[input_1.InputSet](state[hid_1.InputId.AccelY]);
369
+ this.accelerometer.z[input_1.InputSet](state[hid_1.InputId.AccelZ]);
370
+ const level = state[hid_1.InputId.BatteryLevel];
356
371
  if (level > this.pendingBattery.peakLevel) {
357
372
  this.pendingBattery.peakLevel = level;
358
373
  }
359
- this.pendingBattery.status = state["BatteryStatus" /* InputId.BatteryStatus */];
374
+ this.pendingBattery.status = state[hid_1.InputId.BatteryStatus];
360
375
  }
361
376
  }
362
377
  exports.Dualsense = Dualsense;
@@ -1 +1 @@
1
- {"version":3,"file":"dualsense.js","sourceRoot":"","sources":["../src/dualsense.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dualsense.js","sourceRoot":"","sources":["../src/dualsense.ts"],"names":[],"mappings":"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"}
@@ -86,35 +86,35 @@ class Audio {
86
86
  /** Mute the speaker */
87
87
  muteSpeaker(muted = true) {
88
88
  if (muted)
89
- this._muteMask |= 32 /* PowerSave.MuteSpeaker */;
89
+ this._muteMask |= command_1.PowerSave.MuteSpeaker;
90
90
  else
91
- this._muteMask &= ~32 /* PowerSave.MuteSpeaker */;
91
+ this._muteMask &= ~command_1.PowerSave.MuteSpeaker;
92
92
  }
93
93
  /** Mute the headphone output */
94
94
  muteHeadphone(muted = true) {
95
95
  if (muted)
96
- this._muteMask |= 64 /* PowerSave.MuteHeadphone */;
96
+ this._muteMask |= command_1.PowerSave.MuteHeadphone;
97
97
  else
98
- this._muteMask &= ~64 /* PowerSave.MuteHeadphone */;
98
+ this._muteMask &= ~command_1.PowerSave.MuteHeadphone;
99
99
  }
100
100
  /** Mute the microphone */
101
101
  muteMicrophone(muted = true) {
102
102
  if (muted)
103
- this._muteMask |= 16 /* PowerSave.MuteMicrophone */;
103
+ this._muteMask |= command_1.PowerSave.MuteMicrophone;
104
104
  else
105
- this._muteMask &= ~16 /* PowerSave.MuteMicrophone */;
105
+ this._muteMask &= ~command_1.PowerSave.MuteMicrophone;
106
106
  }
107
107
  /** Whether the speaker is muted */
108
108
  get speakerMuted() {
109
- return (this._muteMask & 32 /* PowerSave.MuteSpeaker */) !== 0;
109
+ return (this._muteMask & command_1.PowerSave.MuteSpeaker) !== 0;
110
110
  }
111
111
  /** Whether headphone output is muted */
112
112
  get headphoneMuted() {
113
- return (this._muteMask & 64 /* PowerSave.MuteHeadphone */) !== 0;
113
+ return (this._muteMask & command_1.PowerSave.MuteHeadphone) !== 0;
114
114
  }
115
115
  /** Whether the microphone is muted */
116
116
  get microphoneMuted() {
117
- return (this._muteMask & 16 /* PowerSave.MuteMicrophone */) !== 0;
117
+ return (this._muteMask & command_1.PowerSave.MuteMicrophone) !== 0;
118
118
  }
119
119
  // --- Output loop helpers ---
120
120
  /** Raw headphone volume byte (0x00–0x7F) */
@@ -1 +1 @@
1
- {"version":3,"file":"audio.js","sourceRoot":"","sources":["../../src/elements/audio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audio.js","sourceRoot":"","sources":["../../src/elements/audio.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export * from "./momentary";
14
14
  export * from "./motion";
15
15
  export * from "./mute";
16
16
  export * from "./player_leds";
17
+ export * from "./power_save";
17
18
  export * from "./touch";
18
19
  export * from "./touchpad";
19
20
  export * from "./trigger";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/elements/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/elements/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
@@ -30,6 +30,7 @@ __exportStar(require("./momentary"), exports);
30
30
  __exportStar(require("./motion"), exports);
31
31
  __exportStar(require("./mute"), exports);
32
32
  __exportStar(require("./player_leds"), exports);
33
+ __exportStar(require("./power_save"), exports);
33
34
  __exportStar(require("./touch"), exports);
34
35
  __exportStar(require("./touchpad"), exports);
35
36
  __exportStar(require("./trigger"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/elements/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,kDAAgC;AAChC,2CAAyB;AACzB,0CAAwB;AACxB,yCAAuB;AACvB,4CAA0B;AAC1B,yCAAuB;AACvB,8CAA4B;AAC5B,8CAA4B;AAC5B,6CAA2B;AAC3B,8CAA4B;AAC5B,2CAAyB;AACzB,yCAAuB;AACvB,gDAA8B;AAC9B,0CAAwB;AACxB,6CAA2B;AAC3B,4CAA0B;AAC1B,qDAAmC;AACnC,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/elements/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,kDAAgC;AAChC,2CAAyB;AACzB,0CAAwB;AACxB,yCAAuB;AACvB,4CAA0B;AAC1B,yCAAuB;AACvB,8CAA4B;AAC5B,8CAA4B;AAC5B,6CAA2B;AAC3B,8CAA4B;AAC5B,2CAAyB;AACzB,yCAAuB;AACvB,gDAA8B;AAC9B,+CAA6B;AAC7B,0CAAwB;AACxB,6CAA2B;AAC3B,4CAA0B;AAC1B,qDAAmC;AACnC,6CAA2B"}
@@ -0,0 +1,56 @@
1
+ /** Options for bulk-setting power save subsystem states */
2
+ export interface PowerSaveOptions {
3
+ /** Enable or disable touch processing (default: enabled) */
4
+ touch?: boolean;
5
+ /** Enable or disable motion sensor (IMU) processing (default: enabled) */
6
+ motion?: boolean;
7
+ /** Enable or disable the haptic processor (default: enabled) */
8
+ haptics?: boolean;
9
+ /** Enable or disable the audio processor (default: enabled) */
10
+ audio?: boolean;
11
+ /** Mute or unmute haptic output without disabling the processor (default: unmuted) */
12
+ muteHaptics?: boolean;
13
+ }
14
+ /**
15
+ * Controls per-subsystem power save flags on the DualSense controller.
16
+ *
17
+ * Disabling a subsystem tells the controller to stop processing that input
18
+ * or output entirely, conserving battery. This is distinct from the
19
+ * per-channel audio mutes on {@link Audio}, which silence individual
20
+ * outputs without powering down the processor.
21
+ *
22
+ * All subsystems are enabled by default.
23
+ */
24
+ export declare class PowerSaveControl {
25
+ /** Bitfield of active PowerSave disable/mute flags */
26
+ private _mask;
27
+ /** Whether touch processing is enabled */
28
+ get touch(): boolean;
29
+ /** Enable or disable touch processing */
30
+ set touch(enabled: boolean);
31
+ /** Whether motion sensor (IMU) processing is enabled */
32
+ get motion(): boolean;
33
+ /** Enable or disable motion sensor processing */
34
+ set motion(enabled: boolean);
35
+ /** Whether the haptic processor is enabled */
36
+ get haptics(): boolean;
37
+ /** Enable or disable the haptic processor */
38
+ set haptics(enabled: boolean);
39
+ /** Whether the audio processor is enabled */
40
+ get audio(): boolean;
41
+ /** Enable or disable the audio processor */
42
+ set audio(enabled: boolean);
43
+ /** Whether haptic output is muted (processor still runs) */
44
+ get hapticsMuted(): boolean;
45
+ /** Mute or unmute haptic output without disabling the processor */
46
+ set hapticsMuted(muted: boolean);
47
+ /** Set multiple subsystem states at once */
48
+ set(options: PowerSaveOptions): void;
49
+ /** Reset all subsystems to their default (enabled/unmuted) state */
50
+ reset(): void;
51
+ /** Raw power save flags byte for the output loop */
52
+ get flags(): number;
53
+ /** Change-detection key for the output loop */
54
+ toKey(): string;
55
+ }
56
+ //# sourceMappingURL=power_save.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"power_save.d.ts","sourceRoot":"","sources":["../../src/elements/power_save.ts"],"names":[],"mappings":"AAEA,2DAA2D;AAC3D,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sFAAsF;IACtF,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,qBAAa,gBAAgB;IAC3B,sDAAsD;IACtD,OAAO,CAAC,KAAK,CAAK;IAElB,0CAA0C;IAC1C,IAAW,KAAK,IAAI,OAAO,CAE1B;IAED,yCAAyC;IACzC,IAAW,KAAK,CAAC,OAAO,EAAE,OAAO,EAGhC;IAED,wDAAwD;IACxD,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED,iDAAiD;IACjD,IAAW,MAAM,CAAC,OAAO,EAAE,OAAO,EAGjC;IAED,8CAA8C;IAC9C,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,6CAA6C;IAC7C,IAAW,OAAO,CAAC,OAAO,EAAE,OAAO,EAGlC;IAED,6CAA6C;IAC7C,IAAW,KAAK,IAAI,OAAO,CAE1B;IAED,4CAA4C;IAC5C,IAAW,KAAK,CAAC,OAAO,EAAE,OAAO,EAGhC;IAED,4DAA4D;IAC5D,IAAW,YAAY,IAAI,OAAO,CAEjC;IAED,mEAAmE;IACnE,IAAW,YAAY,CAAC,KAAK,EAAE,OAAO,EAGrC;IAED,4CAA4C;IACrC,GAAG,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAQ3C,oEAAoE;IAC7D,KAAK,IAAI,IAAI;IAIpB,oDAAoD;IACpD,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,+CAA+C;IACxC,KAAK,IAAI,MAAM;CAGvB"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PowerSaveControl = void 0;
4
+ const command_1 = require("../hid/command");
5
+ /**
6
+ * Controls per-subsystem power save flags on the DualSense controller.
7
+ *
8
+ * Disabling a subsystem tells the controller to stop processing that input
9
+ * or output entirely, conserving battery. This is distinct from the
10
+ * per-channel audio mutes on {@link Audio}, which silence individual
11
+ * outputs without powering down the processor.
12
+ *
13
+ * All subsystems are enabled by default.
14
+ */
15
+ class PowerSaveControl {
16
+ constructor() {
17
+ /** Bitfield of active PowerSave disable/mute flags */
18
+ this._mask = 0;
19
+ }
20
+ /** Whether touch processing is enabled */
21
+ get touch() {
22
+ return (this._mask & command_1.PowerSave.DisableTouch) === 0;
23
+ }
24
+ /** Enable or disable touch processing */
25
+ set touch(enabled) {
26
+ if (enabled)
27
+ this._mask &= ~command_1.PowerSave.DisableTouch;
28
+ else
29
+ this._mask |= command_1.PowerSave.DisableTouch;
30
+ }
31
+ /** Whether motion sensor (IMU) processing is enabled */
32
+ get motion() {
33
+ return (this._mask & command_1.PowerSave.DisableMotion) === 0;
34
+ }
35
+ /** Enable or disable motion sensor processing */
36
+ set motion(enabled) {
37
+ if (enabled)
38
+ this._mask &= ~command_1.PowerSave.DisableMotion;
39
+ else
40
+ this._mask |= command_1.PowerSave.DisableMotion;
41
+ }
42
+ /** Whether the haptic processor is enabled */
43
+ get haptics() {
44
+ return (this._mask & command_1.PowerSave.DisableHaptics) === 0;
45
+ }
46
+ /** Enable or disable the haptic processor */
47
+ set haptics(enabled) {
48
+ if (enabled)
49
+ this._mask &= ~command_1.PowerSave.DisableHaptics;
50
+ else
51
+ this._mask |= command_1.PowerSave.DisableHaptics;
52
+ }
53
+ /** Whether the audio processor is enabled */
54
+ get audio() {
55
+ return (this._mask & command_1.PowerSave.DisableAudio) === 0;
56
+ }
57
+ /** Enable or disable the audio processor */
58
+ set audio(enabled) {
59
+ if (enabled)
60
+ this._mask &= ~command_1.PowerSave.DisableAudio;
61
+ else
62
+ this._mask |= command_1.PowerSave.DisableAudio;
63
+ }
64
+ /** Whether haptic output is muted (processor still runs) */
65
+ get hapticsMuted() {
66
+ return (this._mask & command_1.PowerSave.MuteHaptics) !== 0;
67
+ }
68
+ /** Mute or unmute haptic output without disabling the processor */
69
+ set hapticsMuted(muted) {
70
+ if (muted)
71
+ this._mask |= command_1.PowerSave.MuteHaptics;
72
+ else
73
+ this._mask &= ~command_1.PowerSave.MuteHaptics;
74
+ }
75
+ /** Set multiple subsystem states at once */
76
+ set(options) {
77
+ if (options.touch !== undefined)
78
+ this.touch = options.touch;
79
+ if (options.motion !== undefined)
80
+ this.motion = options.motion;
81
+ if (options.haptics !== undefined)
82
+ this.haptics = options.haptics;
83
+ if (options.audio !== undefined)
84
+ this.audio = options.audio;
85
+ if (options.muteHaptics !== undefined)
86
+ this.hapticsMuted = options.muteHaptics;
87
+ }
88
+ /** Reset all subsystems to their default (enabled/unmuted) state */
89
+ reset() {
90
+ this._mask = 0;
91
+ }
92
+ /** Raw power save flags byte for the output loop */
93
+ get flags() {
94
+ return this._mask;
95
+ }
96
+ /** Change-detection key for the output loop */
97
+ toKey() {
98
+ return String(this._mask);
99
+ }
100
+ }
101
+ exports.PowerSaveControl = PowerSaveControl;
102
+ //# sourceMappingURL=power_save.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"power_save.js","sourceRoot":"","sources":["../../src/elements/power_save.ts"],"names":[],"mappings":";;;AAAA,4CAA2C;AAgB3C;;;;;;;;;GASG;AACH,MAAa,gBAAgB;IAA7B;QACE,sDAAsD;QAC9C,UAAK,GAAG,CAAC,CAAC;IAgFpB,CAAC;IA9EC,0CAA0C;IAC1C,IAAW,KAAK;QACd,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,mBAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,yCAAyC;IACzC,IAAW,KAAK,CAAC,OAAgB;QAC/B,IAAI,OAAO;YAAE,IAAI,CAAC,KAAK,IAAI,CAAC,mBAAS,CAAC,YAAY,CAAC;;YAC9C,IAAI,CAAC,KAAK,IAAI,mBAAS,CAAC,YAAY,CAAC;IAC5C,CAAC;IAED,wDAAwD;IACxD,IAAW,MAAM;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,mBAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,iDAAiD;IACjD,IAAW,MAAM,CAAC,OAAgB;QAChC,IAAI,OAAO;YAAE,IAAI,CAAC,KAAK,IAAI,CAAC,mBAAS,CAAC,aAAa,CAAC;;YAC/C,IAAI,CAAC,KAAK,IAAI,mBAAS,CAAC,aAAa,CAAC;IAC7C,CAAC;IAED,8CAA8C;IAC9C,IAAW,OAAO;QAChB,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,mBAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAED,6CAA6C;IAC7C,IAAW,OAAO,CAAC,OAAgB;QACjC,IAAI,OAAO;YAAE,IAAI,CAAC,KAAK,IAAI,CAAC,mBAAS,CAAC,cAAc,CAAC;;YAChD,IAAI,CAAC,KAAK,IAAI,mBAAS,CAAC,cAAc,CAAC;IAC9C,CAAC;IAED,6CAA6C;IAC7C,IAAW,KAAK;QACd,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,mBAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,4CAA4C;IAC5C,IAAW,KAAK,CAAC,OAAgB;QAC/B,IAAI,OAAO;YAAE,IAAI,CAAC,KAAK,IAAI,CAAC,mBAAS,CAAC,YAAY,CAAC;;YAC9C,IAAI,CAAC,KAAK,IAAI,mBAAS,CAAC,YAAY,CAAC;IAC5C,CAAC;IAED,4DAA4D;IAC5D,IAAW,YAAY;QACrB,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,mBAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,mEAAmE;IACnE,IAAW,YAAY,CAAC,KAAc;QACpC,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,IAAI,mBAAS,CAAC,WAAW,CAAC;;YAC1C,IAAI,CAAC,KAAK,IAAI,CAAC,mBAAS,CAAC,WAAW,CAAC;IAC5C,CAAC;IAED,4CAA4C;IACrC,GAAG,CAAC,OAAyB;QAClC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5D,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/D,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAClE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5D,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IACjF,CAAC;IAED,oEAAoE;IAC7D,KAAK;QACV,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,oDAAoD;IACpD,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,+CAA+C;IACxC,KAAK;QACV,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;CACF;AAlFD,4CAkFC"}
@@ -5,5 +5,6 @@ export interface ByteArray {
5
5
  length: number;
6
6
  readUint8(offset: number): number;
7
7
  readUint16LE(offset: number): number;
8
+ readUint32LE(offset: number): number;
8
9
  }
9
10
  //# sourceMappingURL=byte_array.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"byte_array.d.ts","sourceRoot":"","sources":["../../src/hid/byte_array.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACxC"}
1
+ {"version":3,"file":"byte_array.d.ts","sourceRoot":"","sources":["../../src/hid/byte_array.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACxC"}
@@ -59,7 +59,7 @@ export declare enum MicMode {
59
59
  ASR = 128
60
60
  }
61
61
  /** Power save control — per-subsystem mute/disable flags (byte 10) */
62
- export declare const enum PowerSave {
62
+ export declare enum PowerSave {
63
63
  DisableTouch = 1,
64
64
  DisableMotion = 2,
65
65
  DisableHaptics = 4,