GameInputHapticInfo

介绍触觉功能和元数据。

语法

constexpr uint32_t GAMEINPUT_HAPTIC_MAX_LOCATIONS              = 8;
constexpr uint32_t GAMEINPUT_HAPTIC_MAX_AUDIO_ENDPOINT_ID_SIZE = 256;

DEFINE_GUID(GAMEINPUT_HAPTIC_LOCATION_NONE,          0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
DEFINE_GUID(GAMEINPUT_HAPTIC_LOCATION_GRIP_LEFT,     0x08c707c2, 0x66bb, 0x406c, 0xa8, 0x4a, 0xdf, 0xe0, 0x85, 0x12, 0x0a, 0x92);
DEFINE_GUID(GAMEINPUT_HAPTIC_LOCATION_GRIP_RIGHT,    0x155a0b77, 0x8bb2, 0x40db, 0x86, 0x90, 0xb6, 0xd4, 0x11, 0x26, 0xdf, 0xc1);
DEFINE_GUID(GAMEINPUT_HAPTIC_LOCATION_TRIGGER_LEFT,  0x8de4d896, 0x5559, 0x4081, 0x86, 0xe5, 0x17, 0x24, 0xcc, 0x07, 0xc6, 0xbc);
DEFINE_GUID(GAMEINPUT_HAPTIC_LOCATION_TRIGGER_RIGHT, 0xff0cb557, 0x3af5, 0x406b, 0x8b, 0x0f, 0x55, 0x5a, 0x2d, 0x92, 0xa2, 0x20);

struct GameInputHapticInfo
{
    wchar_t  audioEndpointId[GAMEINPUT_HAPTIC_MAX_AUDIO_ENDPOINT_ID_SIZE];
    uint32_t locationCount;
    GUID     locations[GAMEINPUT_HAPTIC_MAX_LOCATIONS];
};

成员

audioEndpointId
类型:wchar_t

WASAPI 触觉音频终结点标识符。

locationCount
类型:uint32_t

触觉位置数。

locations
类型:GUID

触觉位置列表。

备注

支持触觉的控制器与通用音频设备(如耳机或桌面扬声器)非常相似;它们由 Windows 音频系统驱动。 该 GameInputHapticInfo 结构使触觉音频终结点能够与特定的 GameInput 设备匹配。 GetHapticInfo 方法可用于在设备报告已准备就绪后查询此信息。

audioEndpointId是一个终结点标识符字符串,可用于通过 WASAPI 或几个更高级别音频 API 中的任何一个访问触觉设备。 打开终结点后,只需将触觉波形流式传输到设备。

传统的音频设备为扬声器提供了明确定义的位置,例如左前、右前和中间。 触觉控制器的情况更加微妙,因为设备可能支持物理位置的触觉反馈,这些位置无法很好地映射到环绕音频系统隐喻。 为了使现有音频通道索引适应触觉位置,我们提供了特定于设备的映射。 对于支持触觉的控制器,触觉位置的数量将始终大于零。 位置列表将包含音频通道索引的 1:1 映射。 除了 GAMEINPUT_HAPTIC_LOCATION_NONE之外,不允许重复位置,该位置可用作包含音频和触觉终结点混合的终结点的填充。 为了说明这一点,让我们考虑以下位置列表:

{ GAMEINPUT_HAPTIC_LOCATION_NONE, GAMEINPUT_HAPTIC_LOCATION_NONE, GAMEINPUT_HAPTIC_LOCATION_GRIP_LEFT, GAMEINPUT_HAPTIC_LOCATION_GRIP_RIGHT }

在此示例中,通道 0 和通道 1 未使用,通道 2 和通道 3 分别映射到左抓地力和右抓地力。 在将来的 GameInput 版本中,可能会扩展触觉位置列表。

要求

头文件:GameInput.h

支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机

另请参阅

GameInput 概述
GetHapticInfo
GameInput
终结点 ID 字符串