RawGameController Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Represents any type of game controller.
public ref class RawGameController sealed : IGameControllerBatteryInfo
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 262144)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class RawGameController final : IGameControllerBatteryInfo
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 262144)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class RawGameController : IGameControllerBatteryInfo
Public NotInheritable Class RawGameController
Implements IGameControllerBatteryInfo
- Inheritance
- Attributes
- Implements
Windows requirements
Device family |
Windows 10 Creators Update (introduced in 10.0.15063.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduced in v4.0)
|
Examples
The following code snippet shows how to loop through the RawGameController.RawGameControllers list and add each RawGameController to a vector. You'll need to put a lock on the vector, because things can change at any time (a controller might be disconnected or reconnected, for example).
#include <concrt.h>
#include <winrt/Windows.Gaming.Input.h>
using namespace winrt;
using namespace Windows::Gaming::Input;
...
std::vector<RawGameController> myRawGameControllers;
concurrency::critical_section myLock{};
for (auto const& rawGameController : RawGameController::RawGameControllers())
{
// Test whether the raw game controller is already in myRawGameControllers; if it isn't, add it.
concurrency::critical_section::scoped_lock lock{ myLock };
auto it{ std::find(begin(myRawGameControllers), end(myRawGameControllers), rawGameController) };
if (it == end(myRawGameControllers))
{
// This code assumes that you're interested in all raw game controllers.
myRawGameControllers.push_back(rawGameController);
}
}
Remarks
Instances of the RawGameController class cannot be created directly; instead, instances of the class are retrieved through the RawGameController.RawGameControllers property listing all connected game controllers or through the RawGameController.RawGameControllerAdded event.
All inputs available on a RawGameController are exposed as simple arrays of unnamed buttons, switches, and axes. Using this class, you can allow customers to create custom input mappings no matter what type of controller they're using.
You'll need to create these arrays yourself, and then populate them using GetCurrentReading to determine the states of the buttons, switches, and axes. See that function's documentation for more information.
See Raw game controller for information about how to use the RawGameController class.
Version history
Windows version | SDK version | Value added |
---|---|---|
1709 | 16299 | DisplayName |
1709 | 16299 | NonRoamableId |
1709 | 16299 | SimpleHapticsControllers |
Properties
AxisCount |
The number of axes on the raw game controller. |
ButtonCount |
The number of buttons on the raw game controller. |
DisplayName |
The name of the controller, provided by the hardware. |
ForceFeedbackMotors |
The list of force feedback motors in the raw game controller. |
HardwareProductId |
The hardware product ID of the raw game controller. |
HardwareVendorId |
The hardware vendor ID of the raw game controller. |
Headset |
The audio headset attached to the raw game controller. |
IsWireless |
Gets a value that indicates the wireless state of the raw game controller. |
NonRoamableId |
A unique ID that identifies the controller. As long as the controller is connected, the ID will never change. |
RawGameControllers |
The list of all connected raw game controllers. |
SimpleHapticsControllers |
A collection of SimpleHapticsController objects representing all available haptic feedback motors available on the device. |
SwitchCount |
The number of switches on the raw game controller. |
User |
The user associated with the raw game controller. |
Methods
FromGameController(IGameController) |
Returns the given game controller as a raw game controller. |
GetButtonLabel(Int32) |
Retrieves the button label for the specified button. |
GetCurrentReading(Boolean[], GameControllerSwitchPosition[], Double[]) |
Gets a snapshot of the raw game controller's state. |
GetSwitchKind(Int32) |
Gets the type of the specified switch on the raw game controller. |
TryGetBatteryReport() |
Gets information about the raw game controller's current battery state. |
Events
HeadsetConnected |
Signals when a headset is attached to the raw game controller. |
HeadsetDisconnected |
Signals when a headset is disconnected from the raw game controller. |
RawGameControllerAdded |
Signals when a new raw game controller is connected. |
RawGameControllerRemoved |
Signals when a raw game controller is disconnected. |
UserChanged |
Signals when the user associated with the raw game controller has changed. |