<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="xinput::error::Error">
<DisplayString>{__1} ({__0->thindx_method,sb})</DisplayString>
</Type>
<Type Name="xinput::enumerations::battery_devtype::BatteryDevType">
<DisplayString Condition="__0 == 0x00">xinput::BatteryDevType::Gamepad</DisplayString>
<DisplayString Condition="__0 == 0x01">xinput::BatteryDevType::Headset</DisplayString>
<DisplayString>xinput::BatteryDevType({__0,x})</DisplayString>
</Type>
<Type Name="xinput::enumerations::battery_level::BatteryLevel">
<DisplayString Condition="__0 == 0x00">xinput::BatteryLevel::Empty</DisplayString>
<DisplayString Condition="__0 == 0x01">xinput::BatteryLevel::Low</DisplayString>
<DisplayString Condition="__0 == 0x02">xinput::BatteryLevel::Medium</DisplayString>
<DisplayString Condition="__0 == 0x03">xinput::BatteryLevel::Full</DisplayString>
<DisplayString>xinput::BatteryLevel({__0,x})</DisplayString>
</Type>
<Type Name="xinput::enumerations::battery_type::BatteryType">
<DisplayString Condition="__0 == 0x00">xinput::BatteryType::Disconnected</DisplayString>
<DisplayString Condition="__0 == 0x01">xinput::BatteryType::Wired</DisplayString>
<DisplayString Condition="__0 == 0x02">xinput::BatteryType::Alkaline</DisplayString>
<DisplayString Condition="__0 == 0x03">xinput::BatteryType::NiMH</DisplayString>
<DisplayString Condition="__0 == 0xFF">xinput::BatteryType::Unknown</DisplayString>
<DisplayString>xinput::BatteryType({__0,x})</DisplayString>
</Type>
<Type Name="xinput::enumerations::devsubtype::DevSubType">
<DisplayString Condition="__0 == 0x00">xinput::DevSubType::Unknown</DisplayString>
<DisplayString Condition="__0 == 0x01">xinput::DevSubType::Gamepad</DisplayString>
<DisplayString Condition="__0 == 0x02">xinput::DevSubType::Wheel</DisplayString>
<DisplayString Condition="__0 == 0x03">xinput::DevSubType::ArcadeStick</DisplayString>
<DisplayString Condition="__0 == 0x04">xinput::DevSubType::FlightStick</DisplayString>
<DisplayString Condition="__0 == 0x05">xinput::DevSubType::DancePad</DisplayString>
<DisplayString Condition="__0 == 0x06">xinput::DevSubType::Guitar</DisplayString>
<DisplayString Condition="__0 == 0x07">xinput::DevSubType::GuitarAlternate</DisplayString>
<DisplayString Condition="__0 == 0x08">xinput::DevSubType::DrumKit</DisplayString>
<DisplayString Condition="__0 == 0x0B">xinput::DevSubType::GuitarBass</DisplayString>
<DisplayString Condition="__0 == 0x13">xinput::DevSubType::ArcadePad</DisplayString>
<DisplayString>xinput::DevSubType({__0,x})</DisplayString>
</Type>
<Type Name="xinput::enumerations::devtype::DevType">
<DisplayString Condition="__0 == 0x01">xinput::DevType::Gamepad</DisplayString>
<DisplayString>xinput::DevType({__0,x})</DisplayString>
</Type>
<Type Name="xinput::enumerations::vk::VK">
<DisplayString Condition="__0 == 0x0000">xinput::VK::None</DisplayString>
<DisplayString Condition="__0 == 0x5800">xinput::VK::PadA</DisplayString>
<DisplayString Condition="__0 == 0x5801">xinput::VK::PadB</DisplayString>
<DisplayString Condition="__0 == 0x5802">xinput::VK::PadX</DisplayString>
<DisplayString Condition="__0 == 0x5803">xinput::VK::PadY</DisplayString>
<DisplayString Condition="__0 == 0x5804">xinput::VK::PadRShoulder</DisplayString>
<DisplayString Condition="__0 == 0x5805">xinput::VK::PadLShoulder</DisplayString>
<DisplayString Condition="__0 == 0x5806">xinput::VK::PadLTrigger</DisplayString>
<DisplayString Condition="__0 == 0x5807">xinput::VK::PadRTrigger</DisplayString>
<DisplayString Condition="__0 == 0x5810">xinput::VK::PadDPadUp</DisplayString>
<DisplayString Condition="__0 == 0x5811">xinput::VK::PadDPadDown</DisplayString>
<DisplayString Condition="__0 == 0x5812">xinput::VK::PadDPadLeft</DisplayString>
<DisplayString Condition="__0 == 0x5813">xinput::VK::PadDPadRight</DisplayString>
<DisplayString Condition="__0 == 0x5814">xinput::VK::PadStart</DisplayString>
<DisplayString Condition="__0 == 0x5815">xinput::VK::PadBack</DisplayString>
<DisplayString Condition="__0 == 0x5816">xinput::VK::PadLThumbPress</DisplayString>
<DisplayString Condition="__0 == 0x5817">xinput::VK::PadRThumbPress</DisplayString>
<DisplayString Condition="__0 == 0x5820">xinput::VK::PadLThumbUp</DisplayString>
<DisplayString Condition="__0 == 0x5821">xinput::VK::PadLThumbDown</DisplayString>
<DisplayString Condition="__0 == 0x5822">xinput::VK::PadLThumbRight</DisplayString>
<DisplayString Condition="__0 == 0x5823">xinput::VK::PadLThumbLeft</DisplayString>
<DisplayString Condition="__0 == 0x5824">xinput::VK::PadLThumbUpLeft</DisplayString>
<DisplayString Condition="__0 == 0x5825">xinput::VK::PadLThumbUpRight</DisplayString>
<DisplayString Condition="__0 == 0x5826">xinput::VK::PadLThumbDownRight</DisplayString>
<DisplayString Condition="__0 == 0x5827">xinput::VK::PadLThumbDownLeft</DisplayString>
<DisplayString Condition="__0 == 0x5830">xinput::VK::PadRThumbUp</DisplayString>
<DisplayString Condition="__0 == 0x5831">xinput::VK::PadRThumbDown</DisplayString>
<DisplayString Condition="__0 == 0x5832">xinput::VK::PadRThumbRight</DisplayString>
<DisplayString Condition="__0 == 0x5833">xinput::VK::PadRThumbLeft</DisplayString>
<DisplayString Condition="__0 == 0x5834">xinput::VK::PadRThumbUpLeft</DisplayString>
<DisplayString Condition="__0 == 0x5835">xinput::VK::PadRThumbUpRight</DisplayString>
<DisplayString Condition="__0 == 0x5836">xinput::VK::PadRThumbDownRight</DisplayString>
<DisplayString Condition="__0 == 0x5837">xinput::VK::PadRThumbDownLeft</DisplayString>
<DisplayString>xinput::VK({__0,x})</DisplayString>
</Type>
<Type Name="xinput::flags::caps::Caps">
<DisplayString Condition="__0 == 0x0000">xinput::Caps::None</DisplayString>
<DisplayString Condition="__0 == 0x0001">xinput::Caps::FfbSupported</DisplayString>
<DisplayString Condition="__0 == 0x0002">xinput::Caps::Wireless</DisplayString>
<DisplayString Condition="__0 == 0x0004">xinput::Caps::VoiceSupported</DisplayString>
<DisplayString Condition="__0 == 0x0008">xinput::Caps::PmdSupported</DisplayString>
<DisplayString Condition="__0 == 0x0010">xinput::Caps::NoNavigation</DisplayString>
<Expand>
<Item Name="FfbSupported" Condition="(__0 & 0x0001) != 0" ExcludeView="sparse">(__0 & 0x0001) != 0</Item>
<Item Name="Wireless" Condition="(__0 & 0x0002) != 0" ExcludeView="sparse">(__0 & 0x0002) != 0</Item>
<Item Name="VoiceSupported" Condition="(__0 & 0x0004) != 0" ExcludeView="sparse">(__0 & 0x0004) != 0</Item>
<Item Name="PmdSupported" Condition="(__0 & 0x0008) != 0" ExcludeView="sparse">(__0 & 0x0008) != 0</Item>
<Item Name="NoNavigation" Condition="(__0 & 0x0010) != 0" ExcludeView="sparse">(__0 & 0x0010) != 0</Item>
<Item Name="Other" Condition="(__0 & 0xFFE0) " ExcludeView="sparse">(__0 & 0xFFE0),x </Item>
</Expand>
</Type>
<Type Name="xinput::flags::buttons::Buttons">
<DisplayString Condition="__0 == 0x0000">xinput::Buttons::None</DisplayString>
<DisplayString Condition="__0 == 0x0001">xinput::Buttons::DPadUp</DisplayString>
<DisplayString Condition="__0 == 0x0002">xinput::Buttons::DPadDown</DisplayString>
<DisplayString Condition="__0 == 0x0004">xinput::Buttons::DPadLeft</DisplayString>
<DisplayString Condition="__0 == 0x0008">xinput::Buttons::DPadRight</DisplayString>
<DisplayString Condition="__0 == 0x0010">xinput::Buttons::Start</DisplayString>
<DisplayString Condition="__0 == 0x0020">xinput::Buttons::Back</DisplayString>
<DisplayString Condition="__0 == 0x0040">xinput::Buttons::LeftThumb</DisplayString>
<DisplayString Condition="__0 == 0x0080">xinput::Buttons::RightThumb</DisplayString>
<DisplayString Condition="__0 == 0x0100">xinput::Buttons::LeftShoulder</DisplayString>
<DisplayString Condition="__0 == 0x0200">xinput::Buttons::RightShoulder</DisplayString>
<DisplayString Condition="__0 == 0x0400">xinput::Buttons::Guide</DisplayString>
<DisplayString Condition="__0 == 0x0800">xinput::Buttons::Unknown</DisplayString>
<DisplayString Condition="__0 == 0x1000">xinput::Buttons::A</DisplayString>
<DisplayString Condition="__0 == 0x2000">xinput::Buttons::B</DisplayString>
<DisplayString Condition="__0 == 0x4000">xinput::Buttons::X</DisplayString>
<DisplayString Condition="__0 == 0x8000">xinput::Buttons::Y</DisplayString>
<Expand>
<Item Name="DPadUp" Condition="(__0 & 0x0001) != 0" ExcludeView="sparse">(__0 & 0x0001) != 0</Item>
<Item Name="DPadDown" Condition="(__0 & 0x0002) != 0" ExcludeView="sparse">(__0 & 0x0002) != 0</Item>
<Item Name="DPadLeft" Condition="(__0 & 0x0004) != 0" ExcludeView="sparse">(__0 & 0x0004) != 0</Item>
<Item Name="DPadRight" Condition="(__0 & 0x0008) != 0" ExcludeView="sparse">(__0 & 0x0008) != 0</Item>
<Item Name="Start" Condition="(__0 & 0x0010) != 0" ExcludeView="sparse">(__0 & 0x0010) != 0</Item>
<Item Name="Back" Condition="(__0 & 0x0020) != 0" ExcludeView="sparse">(__0 & 0x0020) != 0</Item>
<Item Name="LeftThumb" Condition="(__0 & 0x0040) != 0" ExcludeView="sparse">(__0 & 0x0040) != 0</Item>
<Item Name="RightThumb" Condition="(__0 & 0x0080) != 0" ExcludeView="sparse">(__0 & 0x0080) != 0</Item>
<Item Name="LeftShoulder" Condition="(__0 & 0x0100) != 0" ExcludeView="sparse">(__0 & 0x0100) != 0</Item>
<Item Name="RightShoulder" Condition="(__0 & 0x0200) != 0" ExcludeView="sparse">(__0 & 0x0200) != 0</Item>
<Item Name="Guide" Condition="(__0 & 0x0400) != 0" ExcludeView="sparse">(__0 & 0x0400) != 0</Item>
<Item Name="Unknown" Condition="(__0 & 0x0800) != 0" ExcludeView="sparse">(__0 & 0x0800) != 0</Item>
<Item Name="A" Condition="(__0 & 0x1000) != 0" ExcludeView="sparse">(__0 & 0x1000) != 0</Item>
<Item Name="B" Condition="(__0 & 0x2000) != 0" ExcludeView="sparse">(__0 & 0x2000) != 0</Item>
<Item Name="X" Condition="(__0 & 0x4000) != 0" ExcludeView="sparse">(__0 & 0x4000) != 0</Item>
<Item Name="Y" Condition="(__0 & 0x8000) != 0" ExcludeView="sparse">(__0 & 0x8000) != 0</Item>
</Expand>
</Type>
<Type Name="xinput::flags::caps::Caps">
<DisplayString Condition="__0 == 0x0000">xinput::Caps::None</DisplayString>
<DisplayString Condition="__0 == 0x0001">xinput::Caps::FfbSupported</DisplayString>
<DisplayString Condition="__0 == 0x0002">xinput::Caps::Wireless</DisplayString>
<DisplayString Condition="__0 == 0x0004">xinput::Caps::VoiceSupported</DisplayString>
<DisplayString Condition="__0 == 0x0008">xinput::Caps::PmdSupported</DisplayString>
<DisplayString Condition="__0 == 0x0010">xinput::Caps::NoNavigation</DisplayString>
<Expand>
<Item Name="FfbSupported" Condition="(__0 & 0x0001) != 0" ExcludeView="sparse">(__0 & 0x0001) != 0</Item>
<Item Name="Wireless" Condition="(__0 & 0x0002) != 0" ExcludeView="sparse">(__0 & 0x0002) != 0</Item>
<Item Name="VoiceSupported" Condition="(__0 & 0x0004) != 0" ExcludeView="sparse">(__0 & 0x0004) != 0</Item>
<Item Name="PmdSupported" Condition="(__0 & 0x0008) != 0" ExcludeView="sparse">(__0 & 0x0008) != 0</Item>
<Item Name="NoNavigation" Condition="(__0 & 0x0010) != 0" ExcludeView="sparse">(__0 & 0x0010) != 0</Item>
<Item Name="Other" Condition="(__0 & 0xFFE0) " ExcludeView="sparse">(__0 & 0xFFE0),x </Item>
</Expand>
</Type>
<Type Name="xinput::flags::flag::Flag">
<DisplayString Condition="__0 == 0x0000">xinput::Flag::None</DisplayString>
<DisplayString Condition="__0 == 0x0001">xinput::Flag::Gamepad</DisplayString>
<Expand>
<Item Name="Gamepad" Condition="(__0 & 0x0001) != 0" ExcludeView="sparse">(__0 & 0x0001) != 0</Item>
<Item Name="Other" Condition="(__0 & 0xFFFE) " ExcludeView="sparse">(__0 & 0xFFFE),x </Item>
</Expand>
</Type>
<Type Name="xinput::flags::keystroke::KeystrokeFlags">
<DisplayString Condition="__0 == 0x0000">xinput::KeystrokeFlags::None</DisplayString>
<DisplayString Condition="__0 == 0x0001">xinput::KeystrokeFlags::KeyDown</DisplayString>
<DisplayString Condition="__0 == 0x0002">xinput::KeystrokeFlags::KeyUp</DisplayString>
<DisplayString Condition="__0 == 0x0004">xinput::KeystrokeFlags::Repeat</DisplayString>
<Expand>
<Item Name="KeyDown" Condition="(__0 & 0x0001) != 0" ExcludeView="sparse">(__0 & 0x0001) != 0</Item>
<Item Name="KeyUp" Condition="(__0 & 0x0002) != 0" ExcludeView="sparse">(__0 & 0x0002) != 0</Item>
<Item Name="Repeat" Condition="(__0 & 0x0004) != 0" ExcludeView="sparse">(__0 & 0x0004) != 0</Item>
<Item Name="Other" Condition="(__0 & 0xFFF8) " ExcludeView="sparse">(__0 & 0xFFF8),x </Item>
</Expand>
</Type>
<Type Name="xinput::structures::dsound_audio_device_guids::DSoundAudioDeviceGuid">
<DisplayString>{{{__0.Data1,xb}-{__0.Data2,xb}-{__0.Data3,xb}-{__0.Data4[0],nvoxb}{__0.Data4[1],nvoxb}-{__0.Data4[2],nvoxb}{__0.Data4[3],nvoxb}{__0.Data4[4],nvoxb}{__0.Data4[5],nvoxb}{__0.Data4[6],nvoxb}{__0.Data4[7],nvoxb}}}</DisplayString>
</Type>
</AutoVisualizer>