100 const char* data_dev_path,
106 virtual bool reconnect();
112 HYDRA_WAITING_FOR_CONNECT,
113 HYDRA_LISTENING_AFTER_CONNECT,
114 HYDRA_LISTENING_AFTER_SET_FEATURE,
121 BUTTON_CHANNELS = 14,
125 void _swap_channels();
126 void _waiting_for_connect();
127 void _listening_after_connect();
128 void _listening_after_set_feature();
130 void _enter_motion_controller_mode();
132 void _report_for_sensor(
int sensorNum, vrpn_uint8 * data,
double dt);
135 bool _wasInGamepadMode;
137 struct timeval _timestamp;
138 struct timeval _connected;
139 struct timeval _set_feature;
141 const float _docking_distance;
142 bool _docked[POSE_CHANNELS];
143 bool _calibration_done[POSE_CHANNELS];
144 int _mirror[POSE_CHANNELS];
145 int _sign_x[POSE_CHANNELS];
146 q_vec_type _old_position[POSE_CHANNELS];
148 q_type _calibration_pose_conj[POSE_CHANNELS];
A unique-ownership smart pointer, with the ability to transfer ownership, but only explicitly (aka,...
virtual void mainloop()=0
Called once through each main loop iteration to handle updates. Remote object mainloop() should call ...
Generic connection class not specific to the transport mechanism.
Device supporting the Razer Hydra game controller as a tracker, analog device, and button device,...
struct hid_device_ hid_device