Socket
Socket
Sign inDemoInstall

gamepad-ts

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gamepad-ts - npm Package Compare versions

Comparing version 1.0.0 to 1.1.0

src/GenericController.d.ts

4

package.json
{
"name": "gamepad-ts",
"version": "1.0.0",
"version": "1.1.0",
"description": "gamepad contoller in typescript",

@@ -40,3 +40,3 @@ "main": "src/index.js",

},
"readme": "# gamepad-ts\r\n\r\nGamepad-ts is a heavily typed gamepad contol reciever.\r\n\r\nIt will detect and connect an USB contoller, and send corresponding events.\r\n\r\nThis code had been test with [DS4Windows](https://github.com/Ryochan7/DS4Windows)\r\n\r\n## usage\r\n\r\nOn creation you hae to choose the gamepad model you want to see.\r\n\r\n- it you choose `nintendo`, the controller will emit events the following events:\r\n\r\n```typescript\r\n LStick: (pos: [number, number]) => void; // Left stick moved event (x, y)\r\n RStick: (pos: [number, number]) => void; // Right stick moved event (x, y)\r\n dpad: (pos: [number, number]) => void; // Digital Pad change event (x, y)\r\n LStickBt: (pressed: boolean) => void; // Left stick press\r\n RStickBt: (pressed: boolean) => void; // Right stick press\r\n\r\n X: (pressed: boolean) => void; // nintendo / xbox X Button\r\n A: (pressed: boolean) => void; // nintendo / xbox A Button\r\n B: (pressed: boolean) => void; // nintendo / xbox B Button\r\n Y: (pressed: boolean) => void; // nintendo / xbox Y Button\r\n '+': (pressed: boolean) => void; // nintendo plus Button\r\n '-': (pressed: boolean) => void; // nintendo less Button\r\n L: (pressed: boolean) => void; // nintendo L Button\r\n R: (pressed: boolean) => void; // nintendo R Button\r\n ZL: (pressed: boolean) => void; // nintendo Left Z\r\n ZR: (pressed: boolean) => void; // nintendo Rigth Z\r\n```\r\n\r\n- it you choose `xbox`, the controller will emit events the following events:\r\n\r\n```typescript\r\n LStick: (pos: [number, number]) => void; // Left stick moved event (x, y)\r\n RStick: (pos: [number, number]) => void; // Right stick moved event (x, y)\r\n dpad: (pos: [number, number]) => void; // Digital Pad change event (x, y)\r\n LStickBt: (pressed: boolean) => void; // Left stick press\r\n RStickBt: (pressed: boolean) => void; // Right stick press\r\n\r\n X: (pressed: boolean) => void; // nintendo / xbox X Button\r\n A: (pressed: boolean) => void; // nintendo / xbox A Button\r\n B: (pressed: boolean) => void; // nintendo / xbox B Button\r\n Y: (pressed: boolean) => void; // nintendo / xbox Y Button\r\n start: (pressed: boolean) => void; // xbox start\r\n back: (pressed: boolean) => void; // xbox back\r\n LB: (pressed: boolean) => void; // xbox Left Bumper\r\n RB: (pressed: boolean) => void; // xbox Right Bumper\r\n LT: (pressed: boolean) => void; // xbox Left Trigger\r\n RT: (pressed: boolean) => void; // xbox Rigth trigger\r\n```\r\n\r\n- it you choose `playstation`, the controller will emit events the following events:\r\n\r\n```typescript\r\n LStick: (pos: [number, number]) => void; // Left stick moved event (x, y)\r\n RStick: (pos: [number, number]) => void; // Right stick moved event (x, y)\r\n dpad: (pos: [number, number]) => void; // Digital Pad change event (x, y)\r\n LStickBt: (pressed: boolean) => void; // Left stick press\r\n RStickBt: (pressed: boolean) => void; // Right stick press\r\n\r\n square: (pressed: boolean) => void; // Playastation Button\r\n cross: (pressed: boolean) => void; // Playastation Button\r\n circle: (pressed: boolean) => void; // Playastation Button\r\n triangle: (pressed: boolean) => void; // Playastation Button\r\n share: (pressed: boolean) => void; // Playstation share\r\n options: (pressed: boolean) => void; // Playstation options\r\n L1: (pressed: boolean) => void; // playstaton Left Button\r\n R1: (pressed: boolean) => void; // playstaton Right Button\r\n L2: (pressed: boolean) => void; // playstaton Left trigger\r\n R2: (pressed: boolean) => void; // playstaton Right trigger\r\n```\r\n\r\n- it you choose `generic`, the controller will emit events the following events:\r\n\r\n```typescript\r\n LStick: (pos: [number, number]) => void; // Left stick moved event (x, y)\r\n RStick: (pos: [number, number]) => void; // Right stick moved event (x, y)\r\n dpad: (pos: [number, number]) => void; // Digital Pad change event (x, y)\r\n LStickBt: (pressed: boolean) => void; // Left stick press\r\n RStickBt: (pressed: boolean) => void; // Right stick press\r\n\r\n BL: (pressed: boolean) => void; // Button left\r\n BD: (pressed: boolean) => void; // Button down\r\n BR: (pressed: boolean) => void; // Button Rigth\r\n BT: (pressed: boolean) => void; // Button Top\r\n BMR: (pressed: boolean) => void; // Button Middle Rigth\r\n BML: (pressed: boolean) => void; // Button Middle Left\r\n\r\n L1: (pressed: boolean) => void; // generic / playstaton Left Bumper\r\n R1: (pressed: boolean) => void; // generic / playstaton Right Bumper\r\n L2: (pressed: boolean) => void; // generic / playstaton Left trigger\r\n R2: (pressed: boolean) => void; // generic / playstaton Right trigger\r\n```\r\n\r\nNote:\r\n\r\n- `X` `Y` `A` `B` are differently mapped on Nintendo and XBox, So it's inportant to choose the correct mapping.\r\n- Analogic pad and digital pad values are all [0-255] value, so any resting pad value will be [128, 128]\r\n\r\n## usage code\r\n\r\n```typescript\r\nimport GamePadController from './src/index';\r\nconst ctrl = new GamePadController({brand: 'playStation'});\r\n/*\r\n * A,B,X,Y buttons\r\n */\r\nctrl.on('LStick', (pos) => console.log(`L: ${pos[0]}, ${pos[1]}`));\r\nctrl.on('RStick', (pos) => console.log(`R: ${pos[0]}, ${pos[1]}`));\r\nctrl.on('dpad', (pos) => console.log(`dPad: ${pos[0]}, ${pos[1]}`));\r\nctrl.on('square', (pressed: boolean) => console.log('square: ' + pressed));\r\nctrl.on('cross', (pressed: boolean) => console.log('cross: ' + pressed));\r\nctrl.on('circle', (pressed: boolean) => console.log('circle: ' + pressed));\r\nctrl.on('triangle', (pressed: boolean) => console.log('triangle: ' + pressed));\r\n/*\r\n * Setup\r\n */\r\nctrl.on('connected', () => console.log('Xbox controller connected'));\r\nctrl.on('error', (err) => console.error(err));\r\nctrl.start();\r\n```\r\n\r\n## TODO\r\n\r\n- add calibration code to add new devices.\r\n- add Gyroscope.\r\n"
"readme": "# gamepad-ts\r\n\r\nGamepad-ts is a heavily typed Typescript gamepad contol library.\r\n\r\nIt will detect and connect an USB contoller, and send corresponding events.\r\n\r\nThis code had been test with [DS4Windows](https://github.com/Ryochan7/DS4Windows)\r\n\r\n## usage\r\n\r\n- it you want to use your gamepad as a `nintendo` contoler:\r\n\r\n```typescript\r\nimport { NintendoController } from 'gamepad-ts'\r\n\r\nconst pad = new NintendoController();\r\n\r\npad.on('LStick', (pos: [number, number]) => {}); // Left stick moved event (x, y)\r\npad.on('RStick', (pos: [number, number]) => {}); // Right stick moved event (x, y)\r\npad.on('dpad', (pos: [number, number]) => {}); // Digital Pad change event (x, y)\r\npad.on('LStickBt', (pressed: boolean) => {}); // Left stick press\r\npad.on('RStickBt', (pressed: boolean) => {}); // Right stick press\r\npad.on('X', (pressed: boolean) => {}); // nintendo / xbox X Button\r\npad.on('A', (pressed: boolean) => {}); // nintendo / xbox A Button\r\npad.on('B', (pressed: boolean) => {}); // nintendo / xbox B Button\r\npad.on('Y', (pressed: boolean) => {}); // nintendo / xbox Y Button\r\npad.on('+', (pressed: boolean) => {}); // nintendo plus Button\r\npad.on('-', (pressed: boolean) => {}); // nintendo less Button\r\npad.on('L', (pressed: boolean) => {}); // nintendo L Button\r\npad.on('R', (pressed: boolean) => {}); // nintendo R Button\r\npad.on('ZL', (pressed: boolean) => {}); // nintendo Left Z\r\npad.on('ZR', (pressed: boolean) => {}); // nintendo Rigth Z\r\n\r\n```\r\n\r\n- it you want to use your game pad as a `xbox` contoler\"\r\n\r\n```typescript\r\nimport { XBoxController } from 'gamepad-ts'\r\n\r\nconst pad = new XBoxController();\r\n\r\npad.on('LStick', (pos: [number, number]) => {}); // Left stick moved event (x, y)\r\npad.on('RStick', (pos: [number, number]) => {}); // Right stick moved event (x, y)\r\npad.on('dpad', (pos: [number, number]) => {}); // Digital Pad change event (x, y)\r\npad.on('LStickBt', (pressed: boolean) => {}); // Left stick press\r\npad.on('RStickBt', (pressed: boolean) => {}); // Right stick press\r\npad.on('X', (pressed: boolean) => {}); // nintendo / xbox X Button\r\npad.on('A', (pressed: boolean) => {}); // nintendo / xbox A Button\r\npad.on('B', (pressed: boolean) => {}); // nintendo / xbox B Button\r\npad.on('Y', (pressed: boolean) => {}); // nintendo / xbox Y Button\r\npad.on('start', (pressed: boolean) => {}); // xbox start\r\npad.on('back', (pressed: boolean) => {}); // xbox back\r\npad.on('LB', (pressed: boolean) => {}); // xbox Left Bumper\r\npad.on('RB', (pressed: boolean) => {}); // xbox Right Bumper\r\npad.on('LT', (pressed: boolean) => {}); // xbox Left Trigger\r\npad.on('RT', (pressed: boolean) => {}); // xbox Rigth trigger\r\n```\r\n\r\n- it you want to use your game pad as a `playstation` contoler\"\r\n\r\n```typescript\r\nimport { PlayStationController } from 'gamepad-ts'\r\n\r\nconst pad = new PlayStationController();\r\n\r\npad.on('LStick', (pos: [number, number]) => {}); // Left stick moved event (x, y)\r\npad.on('RStick', (pos: [number, number]) => {}); // Right stick moved event (x, y)\r\npad.on('dpad', (pos: [number, number]) => {}); // Digital Pad change event (x, y)\r\npad.on('LStickBt', (pressed: boolean) => {}); // Left stick press\r\npad.on('RStickBt', (pressed: boolean) => {}); // Right stick press\r\npad.on('square', (pressed: boolean) => {}); // Playastation Button\r\npad.on('cross', (pressed: boolean) => {}); // Playastation Button\r\npad.on('circle', (pressed: boolean) => {}); // Playastation Button\r\npad.on('triangle', (pressed: boolean) => {}); // Playastation Button\r\npad.on('share', (pressed: boolean) => {}); // Playstation share\r\npad.on('options', (pressed: boolean) => {}); // Playstation options\r\npad.on('L1', (pressed: boolean) => {}); // playstaton Left Button\r\npad.on('R1', (pressed: boolean) => {}); // playstaton Right Button\r\npad.on('L2', (pressed: boolean) => {}); // playstaton Left trigger\r\npad.on('R2', (pressed: boolean) => {}); // playstaton Right trigger\r\n```\r\n\r\n- it you want to use your game pad as a `generic` contoler\"\r\n\r\n```typescript\r\nimport { GenericController } from 'gamepad-ts'\r\n\r\nconst pad = new GenericController();\r\n\r\npad.on('LStick', (pos: [number, number]) => {}); // Left stick moved event (x, y)\r\npad.on('RStick', (pos: [number, number]) => {}); // Right stick moved event (x, y)\r\npad.on('dpad', (pos: [number, number]) => {}); // Digital Pad change event (x, y)\r\npad.on('LStickBt', (pressed: boolean) => {}); // Left stick press\r\npad.on('RStickBt', (pressed: boolean) => {}); // Right stick press\r\npad.on('BL', (pressed: boolean) => {}); // Button left\r\npad.on('BD', (pressed: boolean) => {}); // Button down\r\npad.on('BR', (pressed: boolean) => {}); // Button Rigth\r\npad.on('BT', (pressed: boolean) => {}); // Button Top\r\npad.on('BMR', (pressed: boolean) => {}); // Button Middle Rigth\r\npad.on('BML', (pressed: boolean) => {}); // Button Middle Left\r\npad.on('L1', (pressed: boolean) => {}); // generic / playstaton Left Bumper\r\npad.on('R1', (pressed: boolean) => {}); // generic / playstaton Right Bumper\r\npad.on('L2', (pressed: boolean) => {}); // generic / playstaton Left trigger\r\npad.on('R2', (pressed: boolean) => {}); // generic / playstaton Right trigger\r\n```\r\n\r\nNote:\r\n\r\n- `X` `Y` `A` `B` are differently mapped on Nintendo and XBox, So it's inportant to choose the correct mapping.\r\n- Analogic pad and digital pad values are all [0-255] value, so any resting pad value will be [128, 128]\r\n\r\n## usage code\r\n\r\n```typescript\r\nimport PlayStationController from './src/index';\r\nconst ctrl = new PlayStationController();\r\n/*\r\n * A,B,X,Y buttons\r\n */\r\nctrl.on('LStick', (pos) => console.log(`L: ${pos[0]}, ${pos[1]}`));\r\nctrl.on('RStick', (pos) => console.log(`R: ${pos[0]}, ${pos[1]}`));\r\nctrl.on('dpad', (pos) => console.log(`dPad: ${pos[0]}, ${pos[1]}`));\r\nctrl.on('square', (pressed: boolean) => console.log('square: ' + pressed));\r\nctrl.on('cross', (pressed: boolean) => console.log('cross: ' + pressed));\r\nctrl.on('circle', (pressed: boolean) => console.log('circle: ' + pressed));\r\nctrl.on('triangle', (pressed: boolean) => console.log('triangle: ' + pressed));\r\n/*\r\n * Setup\r\n */\r\nctrl.on('connected', () => console.log('Xbox controller connected'));\r\nctrl.on('error', (err) => console.error(err));\r\nctrl.start();\r\n```\r\n\r\n## TODO\r\n\r\n- add calibration code to add new devices.\r\n- add Gyroscope.\r\n"
}
# gamepad-ts
Gamepad-ts is a heavily typed gamepad contol reciever.
Gamepad-ts is a heavily typed Typescript gamepad contol library.

@@ -11,87 +11,97 @@ It will detect and connect an USB contoller, and send corresponding events.

On creation you hae to choose the gamepad model you want to see.
- it you want to use your gamepad as a `nintendo` contoler:
- it you choose `nintendo`, the controller will emit events the following events:
```typescript
LStick: (pos: [number, number]) => void; // Left stick moved event (x, y)
RStick: (pos: [number, number]) => void; // Right stick moved event (x, y)
dpad: (pos: [number, number]) => void; // Digital Pad change event (x, y)
LStickBt: (pressed: boolean) => void; // Left stick press
RStickBt: (pressed: boolean) => void; // Right stick press
import { NintendoController } from 'gamepad-ts'
X: (pressed: boolean) => void; // nintendo / xbox X Button
A: (pressed: boolean) => void; // nintendo / xbox A Button
B: (pressed: boolean) => void; // nintendo / xbox B Button
Y: (pressed: boolean) => void; // nintendo / xbox Y Button
'+': (pressed: boolean) => void; // nintendo plus Button
'-': (pressed: boolean) => void; // nintendo less Button
L: (pressed: boolean) => void; // nintendo L Button
R: (pressed: boolean) => void; // nintendo R Button
ZL: (pressed: boolean) => void; // nintendo Left Z
ZR: (pressed: boolean) => void; // nintendo Rigth Z
const pad = new NintendoController();
pad.on('LStick', (pos: [number, number]) => {}); // Left stick moved event (x, y)
pad.on('RStick', (pos: [number, number]) => {}); // Right stick moved event (x, y)
pad.on('dpad', (pos: [number, number]) => {}); // Digital Pad change event (x, y)
pad.on('LStickBt', (pressed: boolean) => {}); // Left stick press
pad.on('RStickBt', (pressed: boolean) => {}); // Right stick press
pad.on('X', (pressed: boolean) => {}); // nintendo / xbox X Button
pad.on('A', (pressed: boolean) => {}); // nintendo / xbox A Button
pad.on('B', (pressed: boolean) => {}); // nintendo / xbox B Button
pad.on('Y', (pressed: boolean) => {}); // nintendo / xbox Y Button
pad.on('+', (pressed: boolean) => {}); // nintendo plus Button
pad.on('-', (pressed: boolean) => {}); // nintendo less Button
pad.on('L', (pressed: boolean) => {}); // nintendo L Button
pad.on('R', (pressed: boolean) => {}); // nintendo R Button
pad.on('ZL', (pressed: boolean) => {}); // nintendo Left Z
pad.on('ZR', (pressed: boolean) => {}); // nintendo Rigth Z
```
- it you choose `xbox`, the controller will emit events the following events:
- it you want to use your game pad as a `xbox` contoler"
```typescript
LStick: (pos: [number, number]) => void; // Left stick moved event (x, y)
RStick: (pos: [number, number]) => void; // Right stick moved event (x, y)
dpad: (pos: [number, number]) => void; // Digital Pad change event (x, y)
LStickBt: (pressed: boolean) => void; // Left stick press
RStickBt: (pressed: boolean) => void; // Right stick press
import { XBoxController } from 'gamepad-ts'
X: (pressed: boolean) => void; // nintendo / xbox X Button
A: (pressed: boolean) => void; // nintendo / xbox A Button
B: (pressed: boolean) => void; // nintendo / xbox B Button
Y: (pressed: boolean) => void; // nintendo / xbox Y Button
start: (pressed: boolean) => void; // xbox start
back: (pressed: boolean) => void; // xbox back
LB: (pressed: boolean) => void; // xbox Left Bumper
RB: (pressed: boolean) => void; // xbox Right Bumper
LT: (pressed: boolean) => void; // xbox Left Trigger
RT: (pressed: boolean) => void; // xbox Rigth trigger
const pad = new XBoxController();
pad.on('LStick', (pos: [number, number]) => {}); // Left stick moved event (x, y)
pad.on('RStick', (pos: [number, number]) => {}); // Right stick moved event (x, y)
pad.on('dpad', (pos: [number, number]) => {}); // Digital Pad change event (x, y)
pad.on('LStickBt', (pressed: boolean) => {}); // Left stick press
pad.on('RStickBt', (pressed: boolean) => {}); // Right stick press
pad.on('X', (pressed: boolean) => {}); // nintendo / xbox X Button
pad.on('A', (pressed: boolean) => {}); // nintendo / xbox A Button
pad.on('B', (pressed: boolean) => {}); // nintendo / xbox B Button
pad.on('Y', (pressed: boolean) => {}); // nintendo / xbox Y Button
pad.on('start', (pressed: boolean) => {}); // xbox start
pad.on('back', (pressed: boolean) => {}); // xbox back
pad.on('LB', (pressed: boolean) => {}); // xbox Left Bumper
pad.on('RB', (pressed: boolean) => {}); // xbox Right Bumper
pad.on('LT', (pressed: boolean) => {}); // xbox Left Trigger
pad.on('RT', (pressed: boolean) => {}); // xbox Rigth trigger
```
- it you choose `playstation`, the controller will emit events the following events:
- it you want to use your game pad as a `playstation` contoler"
```typescript
LStick: (pos: [number, number]) => void; // Left stick moved event (x, y)
RStick: (pos: [number, number]) => void; // Right stick moved event (x, y)
dpad: (pos: [number, number]) => void; // Digital Pad change event (x, y)
LStickBt: (pressed: boolean) => void; // Left stick press
RStickBt: (pressed: boolean) => void; // Right stick press
import { PlayStationController } from 'gamepad-ts'
square: (pressed: boolean) => void; // Playastation Button
cross: (pressed: boolean) => void; // Playastation Button
circle: (pressed: boolean) => void; // Playastation Button
triangle: (pressed: boolean) => void; // Playastation Button
share: (pressed: boolean) => void; // Playstation share
options: (pressed: boolean) => void; // Playstation options
L1: (pressed: boolean) => void; // playstaton Left Button
R1: (pressed: boolean) => void; // playstaton Right Button
L2: (pressed: boolean) => void; // playstaton Left trigger
R2: (pressed: boolean) => void; // playstaton Right trigger
const pad = new PlayStationController();
pad.on('LStick', (pos: [number, number]) => {}); // Left stick moved event (x, y)
pad.on('RStick', (pos: [number, number]) => {}); // Right stick moved event (x, y)
pad.on('dpad', (pos: [number, number]) => {}); // Digital Pad change event (x, y)
pad.on('LStickBt', (pressed: boolean) => {}); // Left stick press
pad.on('RStickBt', (pressed: boolean) => {}); // Right stick press
pad.on('square', (pressed: boolean) => {}); // Playastation Button
pad.on('cross', (pressed: boolean) => {}); // Playastation Button
pad.on('circle', (pressed: boolean) => {}); // Playastation Button
pad.on('triangle', (pressed: boolean) => {}); // Playastation Button
pad.on('share', (pressed: boolean) => {}); // Playstation share
pad.on('options', (pressed: boolean) => {}); // Playstation options
pad.on('L1', (pressed: boolean) => {}); // playstaton Left Button
pad.on('R1', (pressed: boolean) => {}); // playstaton Right Button
pad.on('L2', (pressed: boolean) => {}); // playstaton Left trigger
pad.on('R2', (pressed: boolean) => {}); // playstaton Right trigger
```
- it you choose `generic`, the controller will emit events the following events:
- it you want to use your game pad as a `generic` contoler"
```typescript
LStick: (pos: [number, number]) => void; // Left stick moved event (x, y)
RStick: (pos: [number, number]) => void; // Right stick moved event (x, y)
dpad: (pos: [number, number]) => void; // Digital Pad change event (x, y)
LStickBt: (pressed: boolean) => void; // Left stick press
RStickBt: (pressed: boolean) => void; // Right stick press
import { GenericController } from 'gamepad-ts'
BL: (pressed: boolean) => void; // Button left
BD: (pressed: boolean) => void; // Button down
BR: (pressed: boolean) => void; // Button Rigth
BT: (pressed: boolean) => void; // Button Top
BMR: (pressed: boolean) => void; // Button Middle Rigth
BML: (pressed: boolean) => void; // Button Middle Left
const pad = new GenericController();
L1: (pressed: boolean) => void; // generic / playstaton Left Bumper
R1: (pressed: boolean) => void; // generic / playstaton Right Bumper
L2: (pressed: boolean) => void; // generic / playstaton Left trigger
R2: (pressed: boolean) => void; // generic / playstaton Right trigger
pad.on('LStick', (pos: [number, number]) => {}); // Left stick moved event (x, y)
pad.on('RStick', (pos: [number, number]) => {}); // Right stick moved event (x, y)
pad.on('dpad', (pos: [number, number]) => {}); // Digital Pad change event (x, y)
pad.on('LStickBt', (pressed: boolean) => {}); // Left stick press
pad.on('RStickBt', (pressed: boolean) => {}); // Right stick press
pad.on('BL', (pressed: boolean) => {}); // Button left
pad.on('BD', (pressed: boolean) => {}); // Button down
pad.on('BR', (pressed: boolean) => {}); // Button Rigth
pad.on('BT', (pressed: boolean) => {}); // Button Top
pad.on('BMR', (pressed: boolean) => {}); // Button Middle Rigth
pad.on('BML', (pressed: boolean) => {}); // Button Middle Left
pad.on('L1', (pressed: boolean) => {}); // generic / playstaton Left Bumper
pad.on('R1', (pressed: boolean) => {}); // generic / playstaton Right Bumper
pad.on('L2', (pressed: boolean) => {}); // generic / playstaton Left trigger
pad.on('R2', (pressed: boolean) => {}); // generic / playstaton Right trigger
```

@@ -107,4 +117,4 @@

```typescript
import GamePadController from './src/index';
const ctrl = new GamePadController({brand: 'playStation'});
import PlayStationController from './src/index';
const ctrl = new PlayStationController();
/*

@@ -111,0 +121,0 @@ * A,B,X,Y buttons

/// <reference types="node" />
import EventEmitter from 'events';
import { ContollerBrand, JoyPadMapping } from './data';
interface IEmissions {
error: (data: Error) => void;
scan: (sns: Array<string>) => void;
LStick: (pos: [number, number]) => void;
RStick: (pos: [number, number]) => void;
dpad: (pos: [number, number]) => void;
LStickBt: (pressed: boolean) => void;
RStickBt: (pressed: boolean) => void;
BL: (pressed: boolean) => void;
BD: (pressed: boolean) => void;
BR: (pressed: boolean) => void;
BT: (pressed: boolean) => void;
BMR: (pressed: boolean) => void;
BML: (pressed: boolean) => void;
L1: (pressed: boolean) => void;
R1: (pressed: boolean) => void;
L2: (pressed: boolean) => void;
R2: (pressed: boolean) => void;
X: (pressed: boolean) => void;
A: (pressed: boolean) => void;
B: (pressed: boolean) => void;
Y: (pressed: boolean) => void;
start: (pressed: boolean) => void;
back: (pressed: boolean) => void;
LB: (pressed: boolean) => void;
RB: (pressed: boolean) => void;
LT: (pressed: boolean) => void;
RT: (pressed: boolean) => void;
L: (pressed: boolean) => void;
R: (pressed: boolean) => void;
ZL: (pressed: boolean) => void;
ZR: (pressed: boolean) => void;
'+': (pressed: boolean) => void;
'-': (pressed: boolean) => void;
square: (pressed: boolean) => void;
cross: (pressed: boolean) => void;
circle: (pressed: boolean) => void;
triangle: (pressed: boolean) => void;
share: (pressed: boolean) => void;
options: (pressed: boolean) => void;
connected: () => void;
export interface GamePadOptions {
mapping?: JoyPadMapping;
serialNumber?: string;
product?: RegExp;
path?: RegExp;
vendorId?: number;
productId?: number;
}

@@ -50,2 +16,6 @@ export default class GamePadController extends EventEmitter {

private mapping;
private product?;
private path?;
private vendorId?;
private productId?;
private LStick;

@@ -55,10 +25,10 @@ private RStick;

private buttonStats;
on: <K extends keyof IEmissions>(event: K, listener: IEmissions[K]) => this;
off: <K extends keyof IEmissions>(event: K, listener: IEmissions[K]) => this;
once: <K extends keyof IEmissions>(event: K, listener: IEmissions[K]) => this;
emit: <K extends keyof IEmissions>(event: K, ...args: Parameters<IEmissions[K]>) => boolean;
constructor(options?: {
brand?: ContollerBrand;
mapping?: JoyPadMapping;
serialNumber?: string;
mapping?: JoyPadMapping;
product?: RegExp;
path?: RegExp;
vendorId?: number;
productId?: number;
});

@@ -68,2 +38,1 @@ start(): Promise<void>;

}
export {};

@@ -27,14 +27,11 @@ "use strict";

this.dpadPos = [0x80, 0x80]; // X, Y
// static 12 flags array
this.buttonStats = [!!0, !!0, !!0, !!0, !!0, !!0, !!0, !!0, !!0, !!0, !!0, !!0];
this.on = (event, listener) => super.on(event, listener);
this.off = (event, listener) => super.off(event, listener);
this.once = (event, listener) => super.once(event, listener);
this.emit = (event, ...args) => super.emit(event, ...args);
options = options || {};
if (options.serialNumber) {
this.serialNumber = options.serialNumber.toUpperCase();
}
this.serialNumber = (options.serialNumber || '').toUpperCase();
this.product = options.product;
this.path = options.path;
this.vendorId = options.vendorId;
this.productId = options.productId;
this.brand = options.brand || 'xbox';
this.mapping = options.mapping || data_1.dualShock;
this.buttonStats = new Array(this.mapping.buttons.length).fill(false);
}

@@ -48,5 +45,12 @@ start() {

devices = devices.filter(d => d.serialNumber && d.serialNumber.includes(this.serialNumber));
else
devices = devices.filter(d => d.product && d.product.toLowerCase().includes('controller'));
this.emit('scan', devices.map(d => d.serialNumber));
// devices = devices.filter(d => d.product && d.product.toLowerCase().includes('controller'));
if (this.product)
devices = devices.filter(d => d.product && this.product.test(d.product));
if (this.path)
devices = devices.filter(d => d.path && this.path.test(d.path));
if (this.vendorId)
devices = devices.filter(d => d.vendorId && d.vendorId === this.vendorId);
if (this.productId)
devices = devices.filter(d => d.productId && d.productId === this.productId);
this.emit('scan', devices);
if (devices.length == 1) {

@@ -53,0 +57,0 @@ const d = devices[0];

@@ -1,3 +0,5 @@

export { default as GamePadController } from './GamePadController';
export { default as default } from './GamePadController';
export { default as GenericController } from './GenericController';
export { default as NintendoController } from './NintendoController';
export { default as PlayStationController } from './PlayStationController';
export { default as XBoxController } from './XBoxController';
export { ContollerBrand, ButtonsNames, ALL_BUTTONS, JoyPadMapping, dualShock } from './data';

@@ -6,7 +6,11 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.dualShock = exports.ALL_BUTTONS = exports.default = exports.GamePadController = void 0;
var GamePadController_1 = require("./GamePadController");
Object.defineProperty(exports, "GamePadController", { enumerable: true, get: function () { return __importDefault(GamePadController_1).default; } });
var GamePadController_2 = require("./GamePadController");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(GamePadController_2).default; } });
exports.dualShock = exports.ALL_BUTTONS = exports.XBoxController = exports.PlayStationController = exports.NintendoController = exports.GenericController = void 0;
var GenericController_1 = require("./GenericController");
Object.defineProperty(exports, "GenericController", { enumerable: true, get: function () { return __importDefault(GenericController_1).default; } });
var NintendoController_1 = require("./NintendoController");
Object.defineProperty(exports, "NintendoController", { enumerable: true, get: function () { return __importDefault(NintendoController_1).default; } });
var PlayStationController_1 = require("./PlayStationController");
Object.defineProperty(exports, "PlayStationController", { enumerable: true, get: function () { return __importDefault(PlayStationController_1).default; } });
var XBoxController_1 = require("./XBoxController");
Object.defineProperty(exports, "XBoxController", { enumerable: true, get: function () { return __importDefault(XBoxController_1).default; } });
var data_1 = require("./data");

@@ -13,0 +17,0 @@ Object.defineProperty(exports, "ALL_BUTTONS", { enumerable: true, get: function () { return data_1.ALL_BUTTONS; } });

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc