dualsense-ts
Version:
The natural interface for your DualSense and DualSense Access controllers, with Typescript
49 lines • 1.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Battery = exports.BatteryStatus = exports.BatteryLevel = void 0;
const input_1 = require("../input");
const battery_state_1 = require("../hid/battery_state");
/** Tracks the controller's battery charge level as a 0–1 intensity */
class BatteryLevel extends input_1.Input {
constructor() {
super(...arguments);
this.state = 0;
}
get active() {
return this.state > 0;
}
}
exports.BatteryLevel = BatteryLevel;
/** Tracks the controller's charging status */
class BatteryStatus extends input_1.Input {
constructor() {
super(...arguments);
this.state = battery_state_1.ChargeStatus.Discharging;
}
get active() {
return this.state === battery_state_1.ChargeStatus.Charging;
}
}
exports.BatteryStatus = BatteryStatus;
/** Groups battery level and charging status */
class Battery extends input_1.Input {
get active() {
return this.level.active || this.status.active;
}
constructor(params = {}) {
super(params);
this.state = this;
this.level = new BatteryLevel({
icon: "🔋",
name: "BatteryLevel",
...(params.level ?? {}),
});
this.status = new BatteryStatus({
icon: "🔌",
name: "BatteryStatus",
...(params.status ?? {}),
});
}
}
exports.Battery = Battery;
//# sourceMappingURL=battery.js.map