2 #include "trackable_device.h" 4 #include "controller.h" 5 #include "PSMoveClient_CAPI.h" 6 #include <openvr_driver.h> 17 , rumble_suppressed(
false)
18 , extend_Y_meters(0.f)
19 , extend_Z_meters(0.f)
20 , z_rotate_90_degrees(
false)
21 , delay_after_touchpad_press(
false)
22 , meters_per_touchpad_axis_units(7.5f/100.f)
23 , calibration_offset_meters(0.f)
24 , disable_alignment_gesture(
false)
25 , use_orientation_in_hmd_alignment(
true)
26 , linear_velocity_multiplier(1.f)
27 , linear_velocity_exponent(0.f)
29 ps_button_id_to_emulated_touchpad_action[k_PSMButtonID_Move]= eEmulatedTrackpadAction::k_EmulatedTrackpadAction_Press;
32 configuru::Config WriteToJSON()
override;
33 bool ReadFromJSON(
const configuru::Config &pt)
override;
36 bool rumble_suppressed;
39 float extend_Y_meters;
40 float extend_Z_meters;
43 bool z_rotate_90_degrees;
46 bool delay_after_touchpad_press;
50 float meters_per_touchpad_axis_units;
54 float calibration_offset_meters;
57 bool disable_alignment_gesture;
60 bool use_orientation_in_hmd_alignment;
63 float linear_velocity_multiplier;
64 float linear_velocity_exponent;
74 PSMoveController(PSMControllerID psmControllerID, vr::ETrackedControllerRole trackedControllerRole,
const char *psmSerialNo);
78 vr::EVRInitError Activate(vr::TrackedDeviceIndex_t unObjectId)
override;
79 void Deactivate()
override;
82 vr::ETrackedDeviceClass GetTrackedDeviceClass()
const override {
return vr::TrackedDeviceClass_Controller; }
83 void Update()
override;
84 void RefreshWorldFromDriverPose()
override;
87 const char *GetControllerSettingsPrefix()
const override {
return "playstation_move"; }
88 bool HasPSMControllerId(
int ControllerID)
const override {
return ControllerID == m_nPSMControllerId; }
89 const PSMController * GetPSMControllerView()
const override {
return m_PSMServiceController; }
90 std::string GetPSMControllerSerialNo()
const override {
return m_strPSMControllerSerialNo; }
91 PSMControllerType GetPSMControllerType()
const override {
return PSMController_Move; }
96 std::string fnamebase= std::string(
"psmove_") + m_strPSMControllerSerialNo;
101 void UpdateEmulatedTrackpad();
102 void UpdateBatteryChargeState(PSMBatteryState newBatteryEnum);
103 void UpdateControllerState();
104 void UpdateTrackingState();
105 void UpdateRumbleState();
108 int m_nPSMControllerId;
109 PSMController *m_PSMServiceController;
110 std::string m_strPSMControllerSerialNo;
113 vr::ETrackingResult m_trackingStatus;
116 int m_nPoseSequenceNumber;
119 bool m_bIsBatteryCharging;
120 float m_fBatteryChargeFraction;
124 bool m_bTouchpadWasActive;
126 std::chrono::time_point<std::chrono::high_resolution_clock> m_lastTouchpadPressTime;
128 std::chrono::time_point<std::chrono::high_resolution_clock> m_resetPoseButtonPressTime;
129 bool m_bResetPoseRequestSent;
130 std::chrono::time_point<std::chrono::high_resolution_clock> m_resetAlignButtonPressTime;
131 bool m_bResetAlignRequestSent;
135 PSMVector3f m_posMetersAtTouchpadPressTime;
139 PSMQuatf m_driverSpaceRotationAtTouchpadPressTime;
142 static void start_controller_response_callback(
const PSMResponseMessage *response,
void *userdata);
Definition: controller.h:39
Provides printf-style line logging via the vr::IVRDriverLog interface provided by SteamVR during init...
Definition: config.cpp:18
Definition: ps_move_controller.h:69
Definition: controller.h:14
Definition: ps_move_controller.h:11