> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IGameInputDevice::GetArcadeStickInfo

> Retrieves the arcade stick properties of the device, such as the labels of its buttons and stick directions.

Retrieves the arcade stick properties of the device, such as the labels of its buttons and stick directions.

## Syntax

```cpp theme={null}
bool GetArcadeStickInfo(
    GameInputArcadeStickInfo* info
);
```

### Parameters

*info*   \_Out\_\
Type: [GameInputArcadeStickInfo](https://docs.xbox.com/reference/input/gameinput/structs/gameinputarcadestickinfo.md)\*

Pointer to a `GameInputArcadeStickInfo` structure that receives the arcade stick properties of the device. If the device doesn't support arcade stick input, every member of the structure is set to zero.

### Return value

Type: bool

`true` if the device supports arcade stick input and *info* was filled in; otherwise, `false`.

## Remarks

The `GetArcadeStickInfo` method copies the arcade stick properties of the device into the caller-provided structure. A device supports arcade stick input when the value returned by [GetSupportedInput](https://docs.xbox.com/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedinput.md) includes `GameInputKindArcadeStick`. If the device doesn't support arcade stick input, `GetArcadeStickInfo` zero-initializes *info* and returns `false`.

The label members describe the markings printed on the corresponding controls, as [GameInputLabel](https://docs.xbox.com/reference/input/gameinput/enums/gameinputlabel.md) values, so you can show matching prompts in your UI. The `extraButtonCount` and `extraAxisCount` members report how many controller buttons and axes the device has beyond the standard arcade stick mapping; use [GetExtraButtonIndexes](https://docs.xbox.com/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getextrabuttonindexes.md) and [GetExtraAxisIndexes](https://docs.xbox.com/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getextraaxisindexes.md) to locate them in the controller state of a reading. Arcade stick state is read from readings by using [IGameInputReading::GetArcadeStickState](https://docs.xbox.com/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getarcadestickstate.md).

The properties returned by this method are fixed for the lifetime of the device, so you can query them once (for example, when the device connects) and cache the result.

The following example shows how to query the arcade stick properties of a device.

```cpp theme={null}
GameInputArcadeStickInfo info;
if (device->GetArcadeStickInfo(&info))
{
    GameInputLabel action1 = info.actionButton1Label;
    // ...
}
```

In GameInput v3 and earlier, this information was available from the `arcadeStickInfo` member of the [GameInputDeviceInfo](https://docs.xbox.com/reference/input/gameinput/deprecated/structs/gameinputdeviceinfo.md) structure returned by [IGameInputDevice::GetDeviceInfo](https://docs.xbox.com/reference/input/gameinput/deprecated/interfaces/igameinputdevice/methods/igameinputdevice_getdeviceinfo.md).

## Requirements

**Header:** GameInput.h

**Library:** gameinput.lib

**Supported platforms:** Windows, XBOX One family consoles and XBOX Series consoles

## See also

[Overview of GameInput](https://docs.xbox.com/build/core-features/common/input/overviews/input-overview.md)\
[GameInputArcadeStickInfo](https://docs.xbox.com/reference/input/gameinput/structs/gameinputarcadestickinfo.md)\
[GetSupportedInput](https://docs.xbox.com/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedinput.md)\
[GameInputKind](https://docs.xbox.com/reference/input/gameinput/enums/gameinputkind.md)\
[GameInputLabel](https://docs.xbox.com/reference/input/gameinput/enums/gameinputlabel.md)\
[IGameInputReading::GetArcadeStickState](https://docs.xbox.com/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getarcadestickstate.md)\
[IGameInputDevice](https://docs.xbox.com/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)

## Version History

| Version | Changes |
| - | - |
| **v4** | Introduced. |


## Related topics

- [GameInputArcadeStickInfo](https://docs.xbox.com/reference/input/gameinput/structs/gameinputarcadestickinfo.md)
- [IGameInputDevice::GetFlightStickInfo](https://docs.xbox.com/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getflightstickinfo.md)
- [IGameInputDevice::GetInputReportInfo](https://docs.xbox.com/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getinputreportinfo.md)
- [IGameInputDevice::GetKeyboardInfo](https://docs.xbox.com/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getkeyboardinfo.md)
- [IGameInputDevice::GetSensorsInfo](https://docs.xbox.com/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsensorsinfo.md)
