---
title: GCDevicePhysicalInputState
framework: gamecontroller
role: symbol
role_heading: Protocol
path: gamecontroller/gcdevicephysicalinputstate
---

# GCDevicePhysicalInputState

The common properties for physical devices with elements.

## Declaration

```swift
protocol GCDevicePhysicalInputState : NSObjectProtocol
```

## Mentioned in

Handling input events

## Overview

Overview It’s safe to call any property and method implementation of this protocol from any thread, as long as you don’t do so from multiple threads concurrently.

## Topics

### Getting the device

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

### Getting change information

- [lastEventTimestamp](gamecontroller/gcdevicephysicalinputstate/lasteventtimestamp.md)
- [lastEventLatency](gamecontroller/gcdevicephysicalinputstate/lasteventlatency.md)

### Accessing elements

- [elements](gamecontroller/gcdevicephysicalinputstate/elements-46hgy.md)
- [axes](gamecontroller/gcdevicephysicalinputstate/axes-5u1xr.md)
- [buttons](gamecontroller/gcdevicephysicalinputstate/buttons-2ovae.md)
- [dpads](gamecontroller/gcdevicephysicalinputstate/dpads-7b4o3.md)
- [switches](gamecontroller/gcdevicephysicalinputstate/switches-6dcny.md)
- [subscript(_:)](gamecontroller/gcdevicephysicalinputstate/subscript(_:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

### Inherited By

- [GCDevicePhysicalInput](gamecontroller/gcdevicephysicalinput.md)

### Conforming Types

- [GCControllerInputState](gamecontroller/gccontrollerinputstate.md)
- [GCControllerLiveInput](gamecontroller/gccontrollerliveinput.md)
- [GCRacingWheelInput](gamecontroller/gcracingwheelinput.md)
- [GCRacingWheelInputState](gamecontroller/gcracingwheelinputstate.md)

## See Also

### Essentials

- [Handling input events](gamecontroller/handling-input-events.md)
- [GCDevicePhysicalInput](gamecontroller/gcdevicephysicalinput.md)
- [GCDevicePhysicalInputStateDiff](gamecontroller/gcdevicephysicalinputstatediff.md)
