---
title: GCDevice
framework: gamecontroller
role: symbol
role_heading: Protocol
path: gamecontroller/gcdevice
---

# GCDevice

A protocol that defines a common interface for game input devices.

## Declaration

```swift
protocol GCDevice : NSObjectProtocol
```

## Overview

Overview This protocol provides common properties for game controllers, and mouse and keyboard devices.

## Topics

### Getting device information

- [vendorName](gamecontroller/gcdevice/vendorname.md)
- [productCategory](gamecontroller/gcdevice/productcategory.md)
- [Product category constants](gamecontroller/product-category-constants.md)

### Handling input

- [handlerQueue](gamecontroller/gcdevice/handlerqueue.md)
- [physicalInputProfile](gamecontroller/gcdevice/physicalinputprofile.md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

### Conforming Types

- [GCController](gamecontroller/gccontroller.md)
- [GCKeyboard](gamecontroller/gckeyboard.md)
- [GCMouse](gamecontroller/gcmouse.md)
- [GCRacingWheel](gamecontroller/gcracingwheel.md)
- [GCSpatialAccessory](gamecontroller/gcspatialaccessory.md)
- [GCStylus](gamecontroller/gcstylus.md)

## See Also

### Game controllers

- [Supporting Game Controllers](gamecontroller/supporting-game-controllers.md)
- [Letting players use their second-generation Siri Remote as a game controller](gamecontroller/letting-players-use-their-second-generation-siri-remote-as-a-game-controller.md)
- [Discovering and tracking spatial game controllers and styli](gamecontroller/discovering-and-tracking-spatial-game-controllers-and-styli.md)
- [GCController](gamecontroller/gccontroller.md)
- [GCRacingWheel](gamecontroller/gcracingwheel.md)
- [GCKeyboard](gamecontroller/gckeyboard.md)
- [GCMouse](gamecontroller/gcmouse.md)
- [GCStylus](gamecontroller/gcstylus.md)
