|
| 1 | +public void EnumerateControllerProperties() |
| 2 | +{ |
| 3 | + foreach (Gamepad gamepad in Gamepad.Gamepads) |
| 4 | + { |
| 5 | + // Create the provider |
| 6 | + LegacyGipGameControllerProvider legacyGipGameControllerProvider = |
| 7 | + LegacyGipGameControllerProvider.FromGameController(gamepad); |
| 8 | + if (legacyGipGameControllerProvider == null) |
| 9 | + { |
| 10 | + // Not every gamepad is a legacy GIP game controller, continue enumerating |
| 11 | + continue; |
| 12 | + } |
| 13 | + |
| 14 | + // Check properties |
| 15 | + GameControllerBatteryChargingState chargeState = |
| 16 | + legacyGipGameControllerProvider.BatteryChargingState; |
| 17 | + GameControllerBatteryKind batteryKind = |
| 18 | + legacyGipGameControllerProvider.BatteryKind; |
| 19 | + GameControllerBatteryLevel batteryLevel = |
| 20 | + legacyGipGameControllerProvider.BatteryLevel; |
| 21 | + bool isOldFirmwareCorrupted = |
| 22 | + legacyGipGameControllerProvider.IsFirmwareCorrupted; |
| 23 | + bool isNewFirmwareCorrupted = |
| 24 | + legacyGipGameControllerProvider.GetDeviceFirmwareCorruptionState() |
| 25 | + != GameControllerFirmwareCorruptReason.NotCorrupt; |
| 26 | + bool isSynthetic = legacyGipGameControllerProvider.IsSyntheticDevice; |
| 27 | + byte[] extendedDeviceInfo = legacyGipGameControllerProvider.GetExtendedDeviceInfo(); |
| 28 | + |
| 29 | + // Check for a particular GIP interface |
| 30 | + bool supportsSomeCustomInterface = |
| 31 | + legacyGipGameControllerProvider.IsInterfaceSupported( |
| 32 | + new Guid( |
| 33 | + 0xaaaaaaaa, 0xbbbb, 0xcccc, 0xe, 0xf, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6)); |
| 34 | + |
| 35 | + IReadOnlyList<string> preferredTypes = |
| 36 | + legacyGipGameControllerProvider.PreferredTypes; |
| 37 | + bool isGamepad = preferredTypes.Contains("Windows.Xbox.Input.Gamepad"); |
| 38 | + bool isHeadset = preferredTypes.Contains("Windows.Xbox.Input.Headset"); |
| 39 | + |
| 40 | + // Change the LED to half brightness |
| 41 | + legacyGipGameControllerProvider.SetHomeLedIntensity(50); |
| 42 | + } |
| 43 | +} |
0 commit comments