> ## 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ápticos en GameInput

> Hápticos en GameInput

Las capacidades hápticas expuestas por GameInput están integradas con el sistema de audio de Windows para garantizar una transmisión eficaz y sólida de los datos de forma de onda a los dispositivos compatibles. Los requisitos de audio para los dispositivos con capacidades hápticas son muy similares a los de un conjunto normal de altavoces de escritorio o auriculares. GameInput usa una combinación de convenciones y metadatos especificados por el fabricante para vincular los dispositivos de entrada con un punto de conexión de audio que se usará para la reproducción háptica.

<a id="requirementsSection" />

## Requisitos

1. El dispositivo debe reconocerse como un origen de audio en Windows. El medio de conexión (USB, Bluetooth®, etc.) no importa.
2. El dispositivo no debe exponer más de un punto de conexión háptico.
3. El dispositivo no debe exponer más de ocho ubicaciones hápticas.
4. El dispositivo no debe modificar sus capacidades hápticas después de conectarse.
5. El dispositivo no debe tener varios puntos de conexión de audio con formatos idénticos (bits por muestra y muestras por segundo).
6. El dispositivo debe presentar el mismo [identificador de contenedor](https://learn.microsoft.com/windows-hardware/drivers/install/container-ids) para su punto de conexión de audio que el resto del dispositivo.
7. El dispositivo debe tener una entrada del Registro para identificar explícitamente el punto de conexión háptico. El formato es el siguiente:

   * Los dispositivos hápticos se enumeran en el Registro en `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\GameInput\Devices`.
   * La clave específica del dispositivo es una combinación del identificador de proveedor, el identificador de producto, la página de uso y el identificador de uso con formato de cadena hexadecimal.
   * `HapticSamplesPerSecond` es un valor DWORD que identifica el número de muestras por segundo (Hz) del formato del punto de conexión háptico.
   * `HapticsBitsPerSample` es un valor DWORD que identifica el número de bits de muestra (tamaño de muestra) del formato del punto de conexión háptico.
   * `HapticLocations` es una matriz de BYTE de GUID de ubicaciones hápticas. Esta matriz debe contener entre uno y ocho GUID, correspondientes a la asignación de canales hápticos.

   Para ilustrar mejor esto, considere el siguiente dispositivo de ejemplo:

   | Campo                      | Valor                                                                             |
   | -------------------------- | --------------------------------------------------------------------------------- |
   | Identificador de proveedor | 0x045e                                                                            |
   | Identificador de producto  | 0x1234                                                                            |
   | Página de uso              | 0x0001                                                                            |
   | Identificador de uso       | 0x0005                                                                            |
   | Frecuencia de muestreo     | 0x0fa0                                                                            |
   | Tamaño de muestra          | 0x0010                                                                            |
   | Ubicaciones hápticas       | GAMEINPUT\_HAPTIC\_LOCATION\_GRIP\_LEFT, GAMEINPUT\_HAPTIC\_LOCATION\_GRIP\_RIGHT |

   La entrada del Registro háptica asociada tendría el siguiente aspecto:

```
    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
```

### Ubicaciones hápticas

Actualmente, se definen los siguientes GUID de ubicaciones hápticas para uso general:

```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);
```

Tenga en cuenta que, en el ejemplo anterior, los GUID se serializan en el Registro mediante su representación little endian en memoria.

<a id="seealsoSection" />

## Documentación de referencia de la API

* [GameInput (contenido de la API)](/reference/input/gameinput/gameinput_members)
  * Estructuras
    * [GameInputHapticInfo](/reference/input/gameinput/structs/gameinputhapticinfo)

## Consulte también

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

[GameInputHapticInfo](/reference/input/gameinput/structs/gameinputhapticinfo)

[Información general de GameInput](/build/core-features/common/input/overviews/input-overview)

[Audio de Windows](/build/console-features/audio/overviews/audio)


## Related topics

- [Hardware de GameInput: retroalimentación de fuerza, hápticos y sensores](/es/build/core-features/common/input/hardware/index.md)
- [Sensores en GameInput](/es/build/core-features/common/input/hardware/input-hardware-sensors.md)
- [Preguntas más frecuentes sobre GameInput](/es/build/core-features/common/input/overviews/input-faq.md)
- [GameInput](/es/reference/input/gameinput/gameinput_members.md)
- [Combinación de GameInput con pilas de entrada existentes](/es/build/core-features/common/input/porting/input-porting.md)
