#if (UNITY_STANDALONE || UNITY_EDITOR) && UNITY_ENABLE_STEAM_CONTROLLER_SUPPORT
namespace UnityEngine.InputSystem.Steam
{
///
/// This is a wrapper around the Steamworks SDK controller API.
///
///
public interface ISteamControllerAPI
{
void RunFrame();
int GetConnectedControllers(SteamHandle[] outHandles);
SteamHandle GetActionSetHandle(string actionSetName);
SteamHandle GetDigitalActionHandle(string actionName);
SteamHandle GetAnalogActionHandle(string actionName);
void ActivateActionSet(SteamHandle controllerHandle, SteamHandle actionSetHandle);
SteamHandle GetCurrentActionSet(SteamHandle controllerHandle);
void ActivateActionSetLayer(SteamHandle controllerHandle,
SteamHandle actionSetLayerHandle);
void DeactivateActionSetLayer(SteamHandle controllerHandle,
SteamHandle actionSetLayerHandle);
void DeactivateAllActionSetLayers(SteamHandle controllerHandle);
int GetActiveActionSetLayers(SteamHandle controllerHandle,
out SteamHandle handlesOut);
SteamAnalogActionData GetAnalogActionData(SteamHandle controllerHandle,
SteamHandle analogActionHandle);
SteamDigitalActionData GetDigitalActionData(SteamHandle controllerHandle,
SteamHandle digitalActionHandle);
}
public struct SteamDigitalActionData
{
public bool active { get; set; }
public bool pressed { get; set; }
}
public struct SteamAnalogActionData
{
public bool active { get; set; }
public Vector2 position { get; set; }
}
}
#endif // (UNITY_STANDALONE || UNITY_EDITOR) && UNITY_ENABLE_STEAM_CONTROLLER_SUPPORT