---
title: GCDevicePhysicalInput
framework: gamecontroller
role: symbol
role_heading: Protocol
path: gamecontroller/gcdevicephysicalinput
---

# GCDevicePhysicalInput

The common properties and methods for objects that represent the input profile of a device.

## Declaration

```swift
protocol GCDevicePhysicalInput : GCDevicePhysicalInputState
```

## Mentioned in

Handling input events

## Overview

Overview You can safely call this protocol’s methods and access its properties from any thread, but not from multiple, concurrent threads.

## Topics

### Getting the device

- [device](gamecontroller/gcdevicephysicalinput/device.md)

### Handling device input

- [nextInputState()](gamecontroller/gcdevicephysicalinput/nextinputstate().md)
- [inputStateAvailableHandler](gamecontroller/gcdevicephysicalinput/inputstateavailablehandler.md)
- [inputStateQueueDepth](gamecontroller/gcdevicephysicalinput/inputstatequeuedepth.md)
- [capture()](gamecontroller/gcdevicephysicalinput/capture().md)
- [elementValueDidChangeHandler](gamecontroller/gcdevicephysicalinput/elementvaluedidchangehandler.md)

### Changing the callback dispatch queue

- [queue](gamecontroller/gcdevicephysicalinput/queue.md)

### Instance Methods

- [inputState(forSpatialAccessoryAnchorTimestamp:)](gamecontroller/gcdevicephysicalinput/inputstate(forspatialaccessoryanchortimestamp:).md)

## Relationships

### Inherits From

- [GCDevicePhysicalInputState](gamecontroller/gcdevicephysicalinputstate.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

### Conforming Types

- [GCControllerLiveInput](gamecontroller/gccontrollerliveinput.md)
- [GCRacingWheelInput](gamecontroller/gcracingwheelinput.md)

## See Also

### Essentials

- [Handling input events](gamecontroller/handling-input-events.md)
- [GCDevicePhysicalInputState](gamecontroller/gcdevicephysicalinputstate.md)
- [GCDevicePhysicalInputStateDiff](gamecontroller/gcdevicephysicalinputstatediff.md)
