UNPKG

dualsense-ts

Version:

The natural interface for your DualSense Classic and DualSense Access controllers, with Typescript

49 lines 2.12 kB
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