dualsense-ts
Version:
The natural interface for your DualSense Classic and DualSense Access controllers, with Typescript
49 lines • 2.12 kB
TypeScript
import { AccessHIDProvider, AccessHIDState } from "./access_hid_provider";
export interface AccessWebHIDProviderOptions {
/** Attach to this specific HIDDevice instead of discovering one */
device?: HIDDevice;
}
/** Callback invoked for each device selected via the WebHID permission dialog */
export type AccessWebHIDDeviceCallback = (device: HIDDevice) => void;
export declare class AccessWebHIDProvider extends AccessHIDProvider {
device?: HIDDevice;
wireless?: boolean;
buffer?: DataView;
private readonly targetDevice?;
constructor(options?: AccessWebHIDProviderOptions);
/**
* Detect USB vs BT by checking for Feature Report 0x63 in the HID descriptor.
* Present in BT descriptor, absent in USB.
*/
detectConnectionType(): void;
/** Derive a stable identity string for a WebHID device */
private static deviceKey;
attach(device: HIDDevice): void;
/**
* Detach the current HIDDevice and attach a different one in place.
* Used by the manager to transplant a freshly-discovered device.
*/
replaceDevice(device: HIDDevice): void;
/**
* Returns a callback for triggering the WebHID permissions request
* filtered to Access controllers.
*/
getRequest(): () => Promise<unknown>;
/** Request permission for multiple Access devices at once */
static getMultiRequest(onDevice: AccessWebHIDDeviceCallback, onError?: (error: Error) => void): () => Promise<void>;
/** List already-permitted Access devices */
static enumerate(): Promise<HIDDevice[]>;
connect(): void;
get connected(): boolean;
disconnect(): void;
readFeatureReport(reportId: number): Promise<Uint8Array>;
sendFeatureReport(reportId: number, data: Uint8Array): Promise<void>;
/** Query the HID descriptor for the expected payload length of a feature report */
private getFeatureReportLength;
write(data: Uint8Array): Promise<void>;
process({ reportId, buffer, }: {
reportId: number;
buffer: DataView;
}): AccessHIDState;
}
//# sourceMappingURL=access_web_hid_provider.d.ts.map