UNPKG

ns-joycon

Version:

Extract data from connected Jon-Con of Nintendo Switch.

90 lines (89 loc) 2.18 kB
/// <reference types="node" /> interface IPacketBuffer { _raw: Buffer; _hex: String | String[]; } export declare type BatteryLevel = 'full' | 'medium' | 'low' | 'critical' | 'empty' | 'charging'; interface IBatteryLevel extends IPacketBuffer { level: BatteryLevel; } interface IButtonStatus extends IPacketBuffer { y: Boolean; x: Boolean; b: Boolean; a: Boolean; r: Boolean; zr: Boolean; down: Boolean; up: Boolean; right: Boolean; left: Boolean; l: Boolean; zl: Boolean; sr: Boolean; sl: Boolean; minus: Boolean; plus: Boolean; rightStick: Boolean; leftStick: Boolean; home: Boolean; caputure: Boolean; chargingGrip: Boolean; } interface IAnalogStick extends IPacketBuffer { horizontal: number; vertical: number; } interface IStandardInputReport { inputReportID: IPacketBuffer; timer: IPacketBuffer; batteryLevel: IBatteryLevel; connectionInfo: IPacketBuffer; buttonStatus: IButtonStatus; analogStickLeft: IAnalogStick; analogStickRight: IAnalogStick; vibrator: IPacketBuffer; } export declare type Accelerometer = { x: IPacketBuffer & { acc: number; }; y: IPacketBuffer & { acc: number; }; z: IPacketBuffer & { acc: number; }; }; export declare type Gyroscope = Array<IPacketBuffer & { dps: number; rps: number; }>; export interface IInputReport0x21 extends IStandardInputReport { ack: IPacketBuffer; subcommandID: IPacketBuffer; subcommandReplyData: IPacketBuffer; } export interface IInputReport0x30 extends IStandardInputReport { accelerometers: Accelerometer[]; gyroscopes: Gyroscope[]; actualAccelerometer: { acc: { x: number; y: number; z: number; }; }; actualGyroscope: { dps: number[]; rps: number[]; }; } export interface IInputReport0x3f { inputReportID: IPacketBuffer; buttonStatus: IPacketBuffer; analogStick: IPacketBuffer; filter: IPacketBuffer; } export declare type InputReport = IInputReport0x3f | IInputReport0x21 | IInputReport0x30; export {};