ns-joycon
Version:
Extract data from connected Jon-Con of Nintendo Switch.
90 lines (89 loc) • 2.18 kB
TypeScript
/// <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 {};