CTRLLR

API Reference

Auto-generated from @ctrllr/types and @ctrllr/sdk source definitions.


@ctrllr/sdk

Classes

Controller

Defined in: sdk/src/Controller.ts:14

Represents a connected mobile controller. Manages input state and emits events for state changes.

Extends

Constructors

Constructor

new Controller(index): Controller

Defined in: sdk/src/Controller.ts:30

Parameters
index

number

Returns

Controller

Overrides

EventEmitter.constructor

Properties

index

readonly index: number

Defined in: sdk/src/Controller.ts:16

Unique index for this controller (0, 1, 2, ...)

userId

userId: string | null = null

Defined in: sdk/src/Controller.ts:19

User ID from the mobile controller app

username

username: string | null = null

Defined in: sdk/src/Controller.ts:22

Username from the mobile controller app

Accessors

connected
Get Signature

get connected(): boolean

Defined in: sdk/src/Controller.ts:46

Whether this controller is connected

Returns

boolean

state
Get Signature

get state(): Readonly<ControllerState>

Defined in: sdk/src/Controller.ts:39

Get the current controller state (read-only)

Returns

Readonly<ControllerState>

Methods

_setDisconnected()

_setDisconnected(): void

Defined in: sdk/src/Controller.ts:116

Internal

Mark this controller as disconnected

Called by CtrllrManager when connection is lost

Returns

void

_updateState()

_updateState(newState): void

Defined in: sdk/src/Controller.ts:56

Internal

Update the controller state from incoming data. Performs edge detection and emits appropriate events.

Called by CtrllrManager when data arrives from WebRTC

Parameters
newState

Partial<ControllerState>

Returns

void

addEventListener()

addEventListener<K>(event, listener): this

Defined in: sdk/src/EventEmitter.ts:28

Alias for on - matches DOM API

Type Parameters
K

K extends keyof ControllerEvents

Parameters
event

K

listener

EventListener<ControllerEvents[K]>

Returns

this

Inherited from

EventEmitter.addEventListener

emit()

protected emit<K>(event, data): boolean

Defined in: sdk/src/EventEmitter.ts:70

Emit an event to all listeners

Type Parameters
K

K extends keyof ControllerEvents

Parameters
event

K

data

ControllerEvents[K]

Returns

boolean

Inherited from

EventEmitter.emit

getInput()

getInput<K>(inputName): Readonly<ControllerState[K]>

Defined in: sdk/src/Controller.ts:124

Get a specific input state. Returns InputState for aimable inputs or ButtonState for toggle buttons.

Type Parameters
K

K extends InputName

Parameters
inputName

K

Returns

Readonly<ControllerState[K]>

isAnyButtonPressed()

isAnyButtonPressed(): boolean

Defined in: sdk/src/Controller.ts:131

Check if any button is currently pressed (aimable buttons + toggle buttons)

Returns

boolean

listenerCount()

listenerCount<K>(event): number

Defined in: sdk/src/EventEmitter.ts:96

Get the number of listeners for an event

Type Parameters
K

K extends keyof ControllerEvents

Parameters
event

K

Returns

number

Inherited from

EventEmitter.listenerCount

off()

off<K>(event, listener): this

Defined in: sdk/src/EventEmitter.ts:38

Remove an event listener

Type Parameters
K

K extends keyof ControllerEvents

Parameters
event

K

listener

EventListener<ControllerEvents[K]>

Returns

this

Inherited from

EventEmitter.off

on()

on<K>(event, listener): this

Defined in: sdk/src/EventEmitter.ts:17

Add an event listener

Type Parameters
K

K extends keyof ControllerEvents

Parameters
event

K

listener

EventListener<ControllerEvents[K]>

Returns

this

Inherited from

EventEmitter.on

once()

once<K>(event, listener): this

Defined in: sdk/src/EventEmitter.ts:59

Add a one-time event listener

Type Parameters
K

K extends keyof ControllerEvents

Parameters
event

K

listener

EventListener<ControllerEvents[K]>

Returns

this

Inherited from

EventEmitter.once

removeAllListeners()

removeAllListeners<K>(event?): this

Defined in: sdk/src/EventEmitter.ts:84

Remove all listeners for an event, or all events if no event specified

Type Parameters
K

K extends keyof ControllerEvents

Parameters
event?

K

Returns

this

Inherited from

EventEmitter.removeAllListeners

removeEventListener()

removeEventListener<K>(event, listener): this

Defined in: sdk/src/EventEmitter.ts:49

Alias for off - matches DOM API

Type Parameters
K

K extends keyof ControllerEvents

Parameters
event

K

listener

EventListener<ControllerEvents[K]>

Returns

this

Inherited from

EventEmitter.removeEventListener


CtrllrManager

Defined in: sdk/src/CtrllrManager.ts:25

Main manager for CTRLLR controllers. Handles connections, manages controller instances, and proxies events.

Extends

Constructors

Constructor

new CtrllrManager(options): CtrllrManager

Defined in: sdk/src/CtrllrManager.ts:50

Parameters
options

CtrllrManagerOptions

Returns

CtrllrManager

Overrides

EventEmitter.constructor

Properties

controllers

readonly controllers: Map<number, Controller>

Defined in: sdk/src/CtrllrManager.ts:27

Map of connected controllers by index

Accessors

connected
Get Signature

get connected(): boolean

Defined in: sdk/src/CtrllrManager.ts:74

Convenience getter — true when signaling transport is up.

Returns

boolean

connectionStatus
Get Signature

get connectionStatus(): ConnectionStatus

Defined in: sdk/src/CtrllrManager.ts:67

Current signaling connection lifecycle status.

Returns

ConnectionStatus

socketId
Get Signature

get socketId(): string | null

Defined in: sdk/src/CtrllrManager.ts:82

Get the socket ID from the signaling adapter. Used for QR code generation.

Returns

string | null

Methods

addEventListener()

addEventListener<K>(event, listener): this

Defined in: sdk/src/EventEmitter.ts:28

Alias for on - matches DOM API

Type Parameters
K

K extends keyof ManagerEvents

Parameters
event

K

listener

EventListener<ManagerEvents[K]>

Returns

this

Inherited from

EventEmitter.addEventListener

connect()

connect(): Promise<void>

Defined in: sdk/src/CtrllrManager.ts:100

Connect to the signaling server. Idempotent: resolves immediately if already connected; concurrent calls share the same in-flight promise.

Returns

Promise<void>

disconnect()

disconnect(): void

Defined in: sdk/src/CtrllrManager.ts:130

Disconnect from the signaling server and clean up.

Returns

void

emit()

protected emit<K>(event, data): boolean

Defined in: sdk/src/EventEmitter.ts:70

Emit an event to all listeners

Type Parameters
K

K extends keyof ManagerEvents

Parameters
event

K

data

ManagerEvents[K]

Returns

boolean

Inherited from

EventEmitter.emit

getController()

getController(index): Controller | undefined

Defined in: sdk/src/CtrllrManager.ts:149

Get a controller by index.

Parameters
index

number

Returns

Controller | undefined

getQRCodeDataURL()

getQRCodeDataURL(options?): Promise<string>

Defined in: sdk/src/CtrllrManager.ts:157

Generate a QR code data URL containing the socket ID. Can be used directly as an <img> src attribute.

Parameters
options?

QRCodeOptions

Returns

Promise<string>

getQRCodeSVG()

getQRCodeSVG(options?): Promise<string>

Defined in: sdk/src/CtrllrManager.ts:170

Generate a QR code as an SVG string.

Parameters
options?

QRCodeOptions

Returns

Promise<string>

listenerCount()

listenerCount<K>(event): number

Defined in: sdk/src/EventEmitter.ts:96

Get the number of listeners for an event

Type Parameters
K

K extends keyof ManagerEvents

Parameters
event

K

Returns

number

Inherited from

EventEmitter.listenerCount

off()

off<K>(event, listener): this

Defined in: sdk/src/EventEmitter.ts:38

Remove an event listener

Type Parameters
K

K extends keyof ManagerEvents

Parameters
event

K

listener

EventListener<ManagerEvents[K]>

Returns

this

Inherited from

EventEmitter.off

on()

on<K>(event, listener): this

Defined in: sdk/src/EventEmitter.ts:17

Add an event listener

Type Parameters
K

K extends keyof ManagerEvents

Parameters
event

K

listener

EventListener<ManagerEvents[K]>

Returns

this

Inherited from

EventEmitter.on

once()

once<K>(event, listener): this

Defined in: sdk/src/EventEmitter.ts:59

Add a one-time event listener

Type Parameters
K

K extends keyof ManagerEvents

Parameters
event

K

listener

EventListener<ManagerEvents[K]>

Returns

this

Inherited from

EventEmitter.once

removeAllListeners()

removeAllListeners<K>(event?): this

Defined in: sdk/src/EventEmitter.ts:84

Remove all listeners for an event, or all events if no event specified

Type Parameters
K

K extends keyof ManagerEvents

Parameters
event?

K

Returns

this

Inherited from

EventEmitter.removeAllListeners

removeEventListener()

removeEventListener<K>(event, listener): this

Defined in: sdk/src/EventEmitter.ts:49

Alias for off - matches DOM API

Type Parameters
K

K extends keyof ManagerEvents

Parameters
event

K

listener

EventListener<ManagerEvents[K]>

Returns

this

Inherited from

EventEmitter.removeEventListener

setAdapter()

setAdapter(adapter): void

Defined in: sdk/src/CtrllrManager.ts:90

Set the signaling adapter. Call this before connect() if using a custom adapter.

Parameters
adapter

SignalingAdapter

Returns

void


EventEmitter

Defined in: sdk/src/EventEmitter.ts:11

Extended by

Type Parameters

Events

Events extends EventMap = EventMap

Constructors

Constructor

new EventEmitter<Events>(): EventEmitter<Events>

Returns

EventEmitter<Events>

Methods

addEventListener()

addEventListener<K>(event, listener): this

Defined in: sdk/src/EventEmitter.ts:28

Alias for on - matches DOM API

Type Parameters
K

K extends string | number | symbol

Parameters
event

K

listener

EventListener<Events[K]>

Returns

this

emit()

protected emit<K>(event, data): boolean

Defined in: sdk/src/EventEmitter.ts:70

Emit an event to all listeners

Type Parameters
K

K extends string | number | symbol

Parameters
event

K

data

Events[K]

Returns

boolean

listenerCount()

listenerCount<K>(event): number

Defined in: sdk/src/EventEmitter.ts:96

Get the number of listeners for an event

Type Parameters
K

K extends string | number | symbol

Parameters
event

K

Returns

number

off()

off<K>(event, listener): this

Defined in: sdk/src/EventEmitter.ts:38

Remove an event listener

Type Parameters
K

K extends string | number | symbol

Parameters
event

K

listener

EventListener<Events[K]>

Returns

this

on()

on<K>(event, listener): this

Defined in: sdk/src/EventEmitter.ts:17

Add an event listener

Type Parameters
K

K extends string | number | symbol

Parameters
event

K

listener

EventListener<Events[K]>

Returns

this

once()

once<K>(event, listener): this

Defined in: sdk/src/EventEmitter.ts:59

Add a one-time event listener

Type Parameters
K

K extends string | number | symbol

Parameters
event

K

listener

EventListener<Events[K]>

Returns

this

removeAllListeners()

removeAllListeners<K>(event?): this

Defined in: sdk/src/EventEmitter.ts:84

Remove all listeners for an event, or all events if no event specified

Type Parameters
K

K extends string | number | symbol

Parameters
event?

K

Returns

this

removeEventListener()

removeEventListener<K>(event, listener): this

Defined in: sdk/src/EventEmitter.ts:49

Alias for off - matches DOM API

Type Parameters
K

K extends string | number | symbol

Parameters
event

K

listener

EventListener<Events[K]>

Returns

this


SocketIOAdapter

Defined in: sdk/src/signaling/SocketIOAdapter.ts:35

SignalingAdapter implementation using socket.io and simple-peer. Handles WebRTC connection setup through a socket.io signaling server.

Implements

Constructors

Constructor

new SocketIOAdapter(options): SocketIOAdapter

Defined in: sdk/src/signaling/SocketIOAdapter.ts:51

Parameters
options

SocketIOAdapterOptions

Returns

SocketIOAdapter

Accessors

connected
Get Signature

get connected(): boolean

Defined in: sdk/src/signaling/SocketIOAdapter.ts:59

Whether the adapter is currently connected to the signaling server.

Returns

boolean

Whether the adapter is currently connected to the signaling server.

Implementation of

SignalingAdapter.connected

socketId
Get Signature

get socketId(): string | null

Defined in: sdk/src/signaling/SocketIOAdapter.ts:55

The socket ID assigned by the signaling server. Used for QR code generation.

Returns

string | null

The socket ID assigned by the signaling server. Used for QR code generation.

Implementation of

SignalingAdapter.socketId

Methods

connect()

connect(): Promise<void>

Defined in: sdk/src/signaling/SocketIOAdapter.ts:63

Connect to the signaling server. Implementations should be idempotent — calling while already connected or while a connection attempt is in flight should not create a new socket.

Returns

Promise<void>

Implementation of

SignalingAdapter.connect

disconnect()

disconnect(): void

Defined in: sdk/src/signaling/SocketIOAdapter.ts:104

Disconnect from the signaling server

Returns

void

Implementation of

SignalingAdapter.disconnect

onPeerConnected()

onPeerConnected(callback): void

Defined in: sdk/src/signaling/SocketIOAdapter.ts:119

Register callback for new peer connections

Parameters
callback

(peerId, peer) => void

Returns

void

Implementation of

SignalingAdapter.onPeerConnected

onPeerDisconnected()

onPeerDisconnected(callback): void

Defined in: sdk/src/signaling/SocketIOAdapter.ts:128

Register callback for peer disconnections

Parameters
callback

(peerId) => void

Returns

void

Implementation of

SignalingAdapter.onPeerDisconnected

Interfaces

ActionButtonState

Defined in: types/dist/index.d.ts:17

State of an action button (A, X, Y, Z). Action buttons track press state and directional displacement (aimable).

Properties

pressed

pressed: boolean

Defined in: types/dist/index.d.ts:19

Whether the button is currently pressed/touched

x

x: number

Defined in: types/dist/index.d.ts:21

Horizontal axis value (-1 to 1)

y

y: number

Defined in: types/dist/index.d.ts:23

Vertical axis value (-1 to 1)


ButtonState

Defined in: types/dist/index.d.ts:29

State of a simple button (e.g. Start). Simple buttons only track press state with no directional data.

Properties

pressed

pressed: boolean

Defined in: types/dist/index.d.ts:31

Whether the button is currently pressed


ControllerConnectionEvent

Defined in: sdk/src/types.ts:64

Payload for controllerconnected/controllerdisconnected events

Properties

controller

controller: Controller

Defined in: sdk/src/types.ts:65


ControllerEvents

Defined in: sdk/src/types.ts:51

Events emitted by Controller

Properties

buttondown

buttondown: ControllerButtonEvent

Defined in: sdk/src/types.ts:53

buttonup

buttonup: ControllerButtonEvent

Defined in: sdk/src/types.ts:54

statechange

statechange: ControllerStateChangeEvent

Defined in: sdk/src/types.ts:52


ControllerState

Defined in: types/dist/index.d.ts:50

Complete state of a controller. Contains a joystick, action buttons (aimable), and simple buttons.

Properties

a

a: ActionButtonState

Defined in: types/dist/index.d.ts:54

A button (action, aimable)

joystick

joystick: JoystickState

Defined in: types/dist/index.d.ts:52

Left analog stick / joystick

start

start: ButtonState

Defined in: types/dist/index.d.ts:62

Start button (simple)

x

x: ActionButtonState

Defined in: types/dist/index.d.ts:56

X button (action, aimable)

y

y: ActionButtonState

Defined in: types/dist/index.d.ts:58

Y button (action, aimable)

z

z: ActionButtonState

Defined in: types/dist/index.d.ts:60

Z button (action, aimable)


ControllerStateChangeEvent

Defined in: sdk/src/types.ts:19

Payload for statechange event on Controller

Properties

state

state: ControllerState

Defined in: sdk/src/types.ts:20


CtrllrManagerOptions

Defined in: types/dist/index.d.ts:112

Configuration options for CtrllrManager.

Properties

signalingUrl

signalingUrl: string

Defined in: types/dist/index.d.ts:114

URL of the socket.io signaling server

socketOptions?

optional socketOptions?: Record<string, unknown>

Defined in: types/dist/index.d.ts:116

Optional socket.io connection options


JoystickState

Defined in: types/dist/index.d.ts:5

State of the joystick (analog stick). Tracks press state and directional displacement.

Properties

pressed

pressed: boolean

Defined in: types/dist/index.d.ts:7

Whether the joystick is currently pressed/touched

x

x: number

Defined in: types/dist/index.d.ts:9

Horizontal axis value (-1 to 1)

y

y: number

Defined in: types/dist/index.d.ts:11

Vertical axis value (-1 to 1)


ManagerConnectionStatusEvent

Defined in: sdk/src/types.ts:100

Payload for connectionstatuschange event on Manager

Properties

error?

optional error?: unknown

Defined in: sdk/src/types.ts:103

socketId

socketId: string | null

Defined in: sdk/src/types.ts:102

status

status: ConnectionStatus

Defined in: sdk/src/types.ts:101


ManagerEvents

Defined in: sdk/src/types.ts:109

Events emitted by CtrllrManager

Properties

buttondown

buttondown: ManagerButtonEvent

Defined in: sdk/src/types.ts:114

buttonup

buttonup: ManagerButtonEvent

Defined in: sdk/src/types.ts:115

connectionstatuschange

connectionstatuschange: ManagerConnectionStatusEvent

Defined in: sdk/src/types.ts:110

controllerconnected

controllerconnected: ControllerConnectionEvent

Defined in: sdk/src/types.ts:111

controllerdisconnected

controllerdisconnected: ControllerConnectionEvent

Defined in: sdk/src/types.ts:112

statechange

statechange: ManagerStateChangeEvent

Defined in: sdk/src/types.ts:113


ManagerStateChangeEvent

Defined in: sdk/src/types.ts:71

Payload for statechange event on Manager (includes controller reference)

Properties

controller

controller: Controller

Defined in: sdk/src/types.ts:72

state

state: ControllerState

Defined in: sdk/src/types.ts:73


QRCodeOptions

Defined in: sdk/src/QRCode.ts:6

Options for QR code generation

Properties

darkColor?

optional darkColor?: string

Defined in: sdk/src/QRCode.ts:12

Dark color (foreground)

lightColor?

optional lightColor?: string

Defined in: sdk/src/QRCode.ts:14

Light color (background)

margin?

optional margin?: number

Defined in: sdk/src/QRCode.ts:10

Margin around the QR code (in modules)

width?

optional width?: number

Defined in: sdk/src/QRCode.ts:8

Width/height of the QR code in pixels


RawControllerInput

Defined in: types/dist/index.d.ts:85

Raw input data received from the mobile controller app. This is the format sent over the WebRTC data channel.

Properties

buttons

buttons: object

Defined in: types/dist/index.d.ts:93

Action button states (aimable)

a

a: ActionButtonState

x

x: ActionButtonState

y

y: ActionButtonState

z

z: ActionButtonState

joystick

joystick: JoystickState

Defined in: types/dist/index.d.ts:91

Joystick state

start

start: ButtonState

Defined in: types/dist/index.d.ts:100

Start button state (simple)

timestamp

timestamp: number

Defined in: types/dist/index.d.ts:102

Timestamp of the input sample

userId

userId: string

Defined in: types/dist/index.d.ts:87

User ID from the mobile app

username

username: string

Defined in: types/dist/index.d.ts:89

Username from the mobile app


SignalingAdapter

Defined in: sdk/src/signaling/SignalingAdapter.ts:7

Interface for signaling adapters. Implement this to use a custom signaling mechanism.

Properties

connected

readonly connected: boolean

Defined in: sdk/src/signaling/SignalingAdapter.ts:17

Whether the adapter is currently connected to the signaling server.

socketId

readonly socketId: string | null

Defined in: sdk/src/signaling/SignalingAdapter.ts:12

The socket ID assigned by the signaling server. Used for QR code generation.

Methods

connect()

connect(): Promise<void>

Defined in: sdk/src/signaling/SignalingAdapter.ts:24

Connect to the signaling server. Implementations should be idempotent — calling while already connected or while a connection attempt is in flight should not create a new socket.

Returns

Promise<void>

disconnect()

disconnect(): void

Defined in: sdk/src/signaling/SignalingAdapter.ts:29

Disconnect from the signaling server

Returns

void

onPeerConnected()

onPeerConnected(callback): void

Defined in: sdk/src/signaling/SignalingAdapter.ts:37

Called when a new peer wants to connect. The adapter should create SimplePeer instances and handle signaling.

Parameters
callback

(peerId, peer) => void

Called with each new peer connection

Returns

void

onPeerDisconnected()

onPeerDisconnected(callback): void

Defined in: sdk/src/signaling/SignalingAdapter.ts:42

Called when a peer disconnects

Parameters
callback

(peerId) => void

Returns

void


SocketIOAdapterOptions

Defined in: sdk/src/signaling/SocketIOAdapter.ts:24

Options for SocketIOAdapter

Properties

socketOptions?

optional socketOptions?: Partial<ManagerOptions & SocketOptions>

Defined in: sdk/src/signaling/SocketIOAdapter.ts:28

Optional socket.io connection options

url

url: string

Defined in: sdk/src/signaling/SocketIOAdapter.ts:26

URL of the socket.io signaling server

Type Aliases

ActionButtonName

ActionButtonName = "a" | "x" | "y" | "z"

Defined in: types/dist/index.d.ts:67

Names of action button inputs (aimable buttons with directional data).


ButtonName

ButtonName = "start"

Defined in: types/dist/index.d.ts:71

Names of simple button inputs (press-only, no directional data).


ConnectionStatus

ConnectionStatus = "disconnected" | "connecting" | "connected" | "error"

Defined in: types/dist/index.d.ts:108

Signaling connection lifecycle states.


ControllerButtonEvent

ControllerButtonEvent = { input: "joystick" | ActionButtonName; state: ControllerState; x: number; y: number; } | { input: ButtonName; state: ControllerState; }

Defined in: sdk/src/types.ts:30

Payload for buttondown/buttonup events on Controller.

Uses a discriminated union on input:

  • Joystick and action buttons include x and y directional data.
  • Simple buttons (ButtonName) only include the controller state.

Union Members

Type Literal

{ input: "joystick" | ActionButtonName; state: ControllerState; x: number; y: number; }

input

input: "joystick" | ActionButtonName

Which joystick or action button triggered the event

state

state: ControllerState

Full controller state

x

x: number

X value at time of event

y

y: number

Y value at time of event


Type Literal

{ input: ButtonName; state: ControllerState; }

input

input: ButtonName

Which simple button triggered the event

state

state: ControllerState

Full controller state


InputName

InputName = "joystick" | ActionButtonName | ButtonName

Defined in: types/dist/index.d.ts:75

All input names.


ManagerButtonEvent

ManagerButtonEvent = { controller: Controller; input: "joystick" | ActionButtonName; state: ControllerState; x: number; y: number; } | { controller: Controller; input: ButtonName; state: ControllerState; }

Defined in: sdk/src/types.ts:83

Payload for buttondown/buttonup events on Manager (includes controller reference).

Uses a discriminated union on input:

  • Joystick and action buttons include x and y directional data.
  • Simple buttons only include the controller and state.

Functions

createDefaultActionButtonState()

createDefaultActionButtonState(): ActionButtonState

Defined in: types/dist/index.d.ts:40

Creates a default ActionButtonState with all values zeroed.

Returns

ActionButtonState


createDefaultButtonState()

createDefaultButtonState(): ButtonState

Defined in: types/dist/index.d.ts:44

Creates a default ButtonState (not pressed).

Returns

ButtonState


createDefaultControllerState()

createDefaultControllerState(): ControllerState

Defined in: types/dist/index.d.ts:79

Creates a default ControllerState with all inputs zeroed.

Returns

ControllerState


createDefaultJoystickState()

createDefaultJoystickState(): JoystickState

Defined in: types/dist/index.d.ts:36

Creates a default JoystickState with all values zeroed.

Returns

JoystickState


generateQRCodeDataURL()

generateQRCodeDataURL(data, options?): Promise<string>

Defined in: sdk/src/QRCode.ts:28

Generate a QR code as a data URL (base64 PNG) Can be used directly as an <img> src

Parameters

data

string

options?

QRCodeOptions = {}

Returns

Promise<string>


generateQRCodeSVG()

generateQRCodeSVG(data, options?): Promise<string>

Defined in: sdk/src/QRCode.ts:47

Generate a QR code as an SVG string

Parameters

data

string

options?

QRCodeOptions = {}

Returns

Promise<string>

@ctrllr/types

Interfaces

ActionButtonState

Defined in: inputs.ts:18

State of an action button (A, X, Y, Z). Action buttons track press state and directional displacement (aimable).

Properties

pressed

pressed: boolean

Defined in: inputs.ts:20

Whether the button is currently pressed/touched

x

x: number

Defined in: inputs.ts:22

Horizontal axis value (-1 to 1)

y

y: number

Defined in: inputs.ts:24

Vertical axis value (-1 to 1)


ButtonState

Defined in: inputs.ts:31

State of a simple button (e.g. Start). Simple buttons only track press state with no directional data.

Properties

pressed

pressed: boolean

Defined in: inputs.ts:33

Whether the button is currently pressed


ControllerState

Defined in: controller.ts:12

Complete state of a controller. Contains a joystick, action buttons (aimable), and simple buttons.

Properties

a

a: ActionButtonState

Defined in: controller.ts:16

A button (action, aimable)

joystick

joystick: JoystickState

Defined in: controller.ts:14

Left analog stick / joystick

start

start: ButtonState

Defined in: controller.ts:24

Start button (simple)

x

x: ActionButtonState

Defined in: controller.ts:18

X button (action, aimable)

y

y: ActionButtonState

Defined in: controller.ts:20

Y button (action, aimable)

z

z: ActionButtonState

Defined in: controller.ts:22

Z button (action, aimable)


CtrllrManagerOptions

Defined in: config.ts:13

Configuration options for CtrllrManager.

Properties

signalingUrl

signalingUrl: string

Defined in: config.ts:15

URL of the socket.io signaling server

socketOptions?

optional socketOptions?: Record<string, unknown>

Defined in: config.ts:17

Optional socket.io connection options


JoystickState

Defined in: inputs.ts:5

State of the joystick (analog stick). Tracks press state and directional displacement.

Properties

pressed

pressed: boolean

Defined in: inputs.ts:7

Whether the joystick is currently pressed/touched

x

x: number

Defined in: inputs.ts:9

Horizontal axis value (-1 to 1)

y

y: number

Defined in: inputs.ts:11

Vertical axis value (-1 to 1)


RawControllerInput

Defined in: wire.ts:7

Raw input data received from the mobile controller app. This is the format sent over the WebRTC data channel.

Properties

buttons

buttons: object

Defined in: wire.ts:15

Action button states (aimable)

a

a: ActionButtonState

x

x: ActionButtonState

y

y: ActionButtonState

z

z: ActionButtonState

joystick

joystick: JoystickState

Defined in: wire.ts:13

Joystick state

start

start: ButtonState

Defined in: wire.ts:22

Start button state (simple)

timestamp

timestamp: number

Defined in: wire.ts:24

Timestamp of the input sample

userId

userId: string

Defined in: wire.ts:9

User ID from the mobile app

username

username: string

Defined in: wire.ts:11

Username from the mobile app

Type Aliases

ActionButtonName

ActionButtonName = "a" | "x" | "y" | "z"

Defined in: controller.ts:30

Names of action button inputs (aimable buttons with directional data).


ButtonName

ButtonName = "start"

Defined in: controller.ts:35

Names of simple button inputs (press-only, no directional data).


ConnectionStatus

ConnectionStatus = "disconnected" | "connecting" | "connected" | "error"

Defined in: config.ts:4

Signaling connection lifecycle states.


InputName

InputName = "joystick" | ActionButtonName | ButtonName

Defined in: controller.ts:40

All input names.

Functions

createDefaultActionButtonState()

createDefaultActionButtonState(): ActionButtonState

Defined in: inputs.ts:46

Creates a default ActionButtonState with all values zeroed.

Returns

ActionButtonState


createDefaultButtonState()

createDefaultButtonState(): ButtonState

Defined in: inputs.ts:53

Creates a default ButtonState (not pressed).

Returns

ButtonState


createDefaultControllerState()

createDefaultControllerState(): ControllerState

Defined in: controller.ts:45

Creates a default ControllerState with all inputs zeroed.

Returns

ControllerState


createDefaultJoystickState()

createDefaultJoystickState(): JoystickState

Defined in: inputs.ts:39

Creates a default JoystickState with all values zeroed.

Returns

JoystickState