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

# GameInputControllerSwitchInfo

> GameInputControllerSwitchInfo

# GameInputControllerSwitchInfo

Describes a switch on an input device.

<a id="syntaxSection" />

## Syntax

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

<a id="membersSection" />

### Members

*labels*<br />
Type: [GameInputLabel](/reference/input/gameinput/enums/gameinputlabel)

The labels for the switch states.

*kind*<br />
Type: [GameInputSwitchKind](/reference/input/gameinput/enums/gameinputswitchkind)

The type of the switch.

<a id="remarksSection" />

## Remarks

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

<a id="requirementsSection" />

## Requirements

**Header:** GameInput.h

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

<a id="seealsoSection" />

## See also

[Overview of GameInput](/build/core-features/common/input/overviews/input-overview)\
[GameInput](/reference/input/gameinput/gameinput_members)

## 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](/reference/input/gameinput/structs/gameinputcontrollerinfo.md)
- [GameInputSwitchKind](/reference/input/gameinput/enums/gameinputswitchkind.md)
- [GameInputLabel](/reference/input/gameinput/enums/gameinputlabel.md)
- [GameInput](/reference/input/gameinput/gameinput_members.md)
- [IGameInputReading::GetControllerSwitchCount](/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getcontrollerswitchcount.md)
