> ## 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.

# GameInputControllerSwitchInfo

> GameInputControllerSwitchInfo

Describes a switch on an input device.

## Syntax

```cpp theme={null}
struct GameInputControllerSwitchInfo
{
    GameInputLabel      labels[GAMEINPUT_MAX_SWITCH_STATES];
    GameInputSwitchKind kind;
};
```

### Members

*labels*\

Type: [GameInputLabel](https://docs.xbox.com/reference/input/gameinput/enums/gameinputlabel.md)

The labels for the switch states.

*kind*\

Type: [GameInputSwitchKind](https://docs.xbox.com/reference/input/gameinput/enums/gameinputswitchkind.md)

The type of the switch.

## Remarks

This structure is used in the [GameInputControllerInfo](https://docs.xbox.com/reference/input/gameinput/structs/gameinputcontrollerinfo.md) structure. `GameInputControllerInfo` is used by the [GameInputDeviceInfo](https://docs.xbox.com/reference/input/gameinput/structs/gameinputdeviceinfo.md) structure to describe the properties of a controller input device.

## Requirements

**Header:** GameInput.h

**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)\
[GameInput](https://docs.xbox.com/reference/input/gameinput/gameinput_members.md)

## Version History

| Version | Changes |
| - | - |
| **v3** | **Removed** `mappedInputKinds`. Replaced singular `label` with array `labels[GAMEINPUT_MAX_SWITCH_STATES]`. |
| **v1** | **Removed** `positionLabels[9]`, all legacy/raw HID and DInput fields (`legacyDInputIndex`, `legacyHidIndex`, `rawReportIndex`, raw report pointers). |
| **v0** | Introduced. |

## Appendix: Previous versions

### v1, v2

```cpp theme={null}
struct GameInputControllerSwitchInfo
{
    GameInputKind       mappedInputKinds;
    GameInputLabel      label;
    GameInputSwitchKind kind;
};
```

### v0

```cpp theme={null}
struct GameInputControllerSwitchInfo
{
    GameInputKind       mappedInputKinds;
    GameInputLabel      label;
    GameInputLabel      positionLabels[9];
    GameInputSwitchKind kind;
    uint8_t             legacyDInputIndex;
    uint8_t             legacyHidIndex;
    uint16_t            rawReportIndex;
};
```


## Related topics

- [GameInputControllerInfo](https://docs.xbox.com/reference/input/gameinput/structs/gameinputcontrollerinfo.md)
- [GameInputSwitchKind](https://docs.xbox.com/reference/input/gameinput/enums/gameinputswitchkind.md)
- [GameInputLabel](https://docs.xbox.com/reference/input/gameinput/enums/gameinputlabel.md)
- [GameInput API members](https://docs.xbox.com/reference/input/gameinput/gameinput_members.md)
- [GameInputControllerAxisInfo (Deprecated)](https://docs.xbox.com/reference/input/gameinput/deprecated/structs/gameinputcontrolleraxisinfo.md)
