t7x/src/client/steam/interfaces/controller.hpp
2022-05-23 17:58:03 +02:00

33 lines
1.6 KiB
C++

#pragma once
namespace steam
{
using ControllerHandle_t = uint64_t;
class controller
{
public:
~controller() = default;
virtual bool Init();
virtual bool Shutdown();
virtual void RunFrame();
virtual int GetConnectedControllers(ControllerHandle_t* handlesOut);
virtual bool ShowBindingPanel(ControllerHandle_t controllerHandle);
virtual uint64_t GetActionSetHandle(const char* pszActionSetName);
virtual void ActivateActionSet(ControllerHandle_t controllerHandle, uint64_t actionSetHandle);
virtual uint64_t GetCurrentActionSet(ControllerHandle_t controllerHandle);
virtual uint64_t GetDigitalActionHandle(const char* pszActionName);
virtual uint64_t GetDigitalActionData(ControllerHandle_t controllerHandle, uint64_t digitalActionHandle);
virtual int GetDigitalActionOrigins(ControllerHandle_t controllerHandle, uint64_t actionSetHandle,
uint64_t digitalActionHandle, uint64_t* originsOut);
virtual uint64_t GetAnalogActionHandle(const char* pszActionName);
virtual uint64_t GetAnalogActionData(ControllerHandle_t controllerHandle, uint64_t analogActionHandle);
virtual int GetAnalogActionOrigins(ControllerHandle_t controllerHandle, uint64_t actionSetHandle,
uint64_t analogActionHandle, uint64_t* originsOut);
virtual void StopAnalogActionMomentum(ControllerHandle_t controllerHandle, uint64_t eAction);
virtual void TriggerHapticPulse(ControllerHandle_t controllerHandle, uint64_t eTargetPad,
unsigned short usDurationMicroSec);
};
}