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

# Háptica no GameInput

> Háptica no GameInput

Os recursos hápticos expostos pelo GameInput são integrados ao sistema de áudio do Windows para garantir um streaming eficiente e robusto de dados de forma de onda para dispositivos compatíveis. Os requisitos de áudio para dispositivos com recursos hápticos são muito semelhantes aos de um conjunto comum de alto-falantes ou fones de ouvido para desktop. O GameInput usa uma combinação de convenções e metadados especificados pelo fabricante para vincular dispositivos de entrada a um ponto de extremidade de áudio a ser usado para reprodução háptica.

<a id="requirementsSection" />

## Requisitos

1. O dispositivo deve ser reconhecido como uma fonte de áudio no Windows. O meio de conexão (USB, Bluetooth® etc.) não importa.
2. O dispositivo não deve expor mais de um ponto de extremidade háptico.
3. O dispositivo não deve expor mais de oito locais hápticos.
4. O dispositivo não deve modificar seus recursos hápticos depois de conectado.
5. O dispositivo não deve ter vários pontos de extremidade de áudio com formatos idênticos (bits por amostra e amostras por segundo).
6. O dispositivo deve apresentar a mesma [ID de contêiner](https://learn.microsoft.com/windows-hardware/drivers/install/container-ids) para seu ponto de extremidade de áudio que o restante do dispositivo.
7. O dispositivo deve ter uma entrada no registro para identificar explicitamente o ponto de extremidade háptico. O formato é o seguinte:

   * Os dispositivos hápticos são enumerados no registro em `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\GameInput\Devices`.
   * A chave específica do dispositivo é uma combinação da ID do fornecedor, ID do produto, página de uso e ID de uso, formatada como uma cadeia de caracteres hexadecimal.
   * `HapticSamplesPerSecond` é um valor DWORD que identifica o número de amostras por segundo (Hz) do formato do ponto de extremidade háptico.
   * `HapticsBitsPerSample` é um valor DWORD que identifica o número de bits de amostra (tamanho da amostra) do formato do ponto de extremidade háptico.
   * `HapticLocations` é uma matriz BYTE de GUIDs de locais hápticos. Essa matriz deve conter entre um e oito GUIDs, correspondentes ao mapeamento de canais hápticos.

   Para ilustrar melhor, considere o seguinte dispositivo de exemplo:

   | Campo | Valor |
   | - | - |
   | ID do fornecedor | 0x045e |
   | ID do produto | 0x1234 |
   | Página de uso | 0x0001 |
   | ID de uso | 0x0005 |
   | Frequência de amostragem | 0x0fa0 |
   | Tamanho da amostra | 0x0010 |
   | Locais hápticos | GAMEINPUT\_HAPTIC\_LOCATION\_GRIP\_LEFT, GAMEINPUT\_HAPTIC\_LOCATION\_GRIP\_RIGHT |

   A entrada de registro háptico associada ficaria assim:

```
    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\GameInput\Devices\045E123400010005]
    "HapticSamplesPerSecond"=dword:00000fa0
    "HapticBitsPerSample"=dword:00000010
    "HapticLocations"=hex:c2,07,c7,08,bb,66,6c,40,a8,4a,df,e0,85,12,0a,92,77,0b,5a,\
    15,b2,8b,db,40,86,90,b6,d4,11,26,df,c1
```

### Locais hápticos

Atualmente, os seguintes GUIDs de locais hápticos estão definidos para uso geral:

```cpp theme={null}
// { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
DEFINE_GUID(GAMEINPUT_HAPTIC_LOCATION_NONE, 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);

// { 0xc2, 0x07, 0xc7, 0x08, 0xbb, 0x66, 0x6c, 0x40, 0xa8, 0x4a, 0xdf, 0xe0, 0x85, 0x12, 0x0a, 0x92 }
DEFINE_GUID(GAMEINPUT_HAPTIC_LOCATION_GRIP_LEFT, 0x08c707c2, 0x66bb, 0x406c, 0xa8, 0x4a, 0xdf, 0xe0, 0x85, 0x12, 0x0a, 0x92);

// { 0x77, 0x0b, 0x5a, 0x15, 0xb2, 0x8b, 0xdb, 0x40, 0x86, 0x90, 0xb6, 0xd4, 0x11, 0x26, 0xdf, 0xc1 }
DEFINE_GUID(GAMEINPUT_HAPTIC_LOCATION_GRIP_RIGHT, 0x155a0b77, 0x8bb2, 0x40db, 0x86, 0x90, 0xb6, 0xd4, 0x11, 0x26, 0xdf, 0xc1);

// { 0x96, 0xd8, 0xe4, 0x8d, 0x59, 0x55, 0x81, 0x40, 0x86, 0xe5, 0x17, 0x24, 0xcc, 0x07, 0xc6, 0xbc }
DEFINE_GUID(GAMEINPUT_HAPTIC_LOCATION_TRIGGER_LEFT, 0x8de4d896, 0x5559, 0x4081, 0x86, 0xe5, 0x17, 0x24, 0xcc, 0x07, 0xc6, 0xbc);

// { 0x57, 0xb5, 0x0c, 0xff, 0xf5, 0x3a, 0x6b, 0x40, 0x8b, 0x0f, 0x55, 0x5a, 0x2d, 0x92, 0xa2, 0x20 }
DEFINE_GUID(GAMEINPUT_HAPTIC_LOCATION_TRIGGER_RIGHT, 0xff0cb557, 0x3af5, 0x406b, 0x8b, 0x0f, 0x55, 0x5a, 0x2d, 0x92, 0xa2, 0x20);
```

Observe que, no exemplo acima, os GUIDs são serializados no registro usando sua representação little endian em memória.

<a id="seealsoSection" />

## Documentação de referência da API

* [GameInput (conteúdo da API)](/pt-BR/reference/input/gameinput/gameinput_members)
  * Estruturas
    * [GameInputHapticInfo](/pt-BR/reference/input/gameinput/structs/gameinputhapticinfo)

## Confira também

[GetHapticInfo](/pt-BR/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_gethapticinfo)

[GameInputHapticInfo](/pt-BR/reference/input/gameinput/structs/gameinputhapticinfo)

[Visão geral do GameInput](/pt-BR/build/core-features/common/input/overviews/input-overview)

[Áudio do Windows](/pt-BR/build/console-features/audio/overviews/audio)


## Related topics

- [Hápticos en GameInput](/es/build/core-features/common/input/hardware/input-hardware-haptics.md)
- [GameInput](/es/reference/input/gameinput/gameinput_members.md)
- [Miembros de la API de GameInput en desuso](/es/reference/input/gameinput/deprecated/gameinput_deprecated_members.md)
- [Hardware de GameInput: retroalimentación de fuerza, hápticos y sensores](/es/build/core-features/common/input/hardware/index.md)
- [Sensors in GameInput](/build/core-features/common/input/hardware/input-hardware-sensors.md)
