19#define QWERTY_HMD_STR "Qwerty HMD"
20#define QWERTY_HMD_TRACKER_STR QWERTY_HMD_STR " Tracker"
21#define QWERTY_LEFT_STR "Qwerty Left Controller"
22#define QWERTY_LEFT_TRACKER_STR QWERTY_LEFT_STR " Tracker"
23#define QWERTY_RIGHT_STR "Qwerty Right Controller"
24#define QWERTY_RIGHT_TRACKER_STR QWERTY_RIGHT_STR " Tracker"
60 bool backward_pressed;
65 bool look_left_pressed;
66 bool look_right_pressed;
68 bool look_down_pressed;
94 int64_t select_timestamp;
96 int64_t menu_timestamp;
u_logging_level
Logging level enum.
Definition: u_logging.h:43
struct qwerty_controller * qwerty_controller_create(bool is_left, struct qwerty_hmd *qhmd)
Create qwerty_controller.
Definition: qwerty_device.c:273
void qwerty_release_select(struct qwerty_controller *qc)
Simulate releasing input/select/click.
Definition: qwerty_device.c:503
void qwerty_follow_hmd(struct qwerty_controller *qc, bool follow)
Attach/detach the pose of qc to its HMD.
Definition: qwerty_device.c:524
void qwerty_press_menu(struct qwerty_controller *qc)
Simulate pressing input/menu/click.
Definition: qwerty_device.c:510
struct qwerty_hmd * qwerty_hmd(struct xrt_device *xd)
Cast to qwerty_hmd.
Definition: qwerty_device.c:83
void qwerty_press_sprint(struct qwerty_device *qd)
Momentarily increase movement_speed until qwerty_release_sprint()
Definition: qwerty_device.c:452
void qwerty_add_look_delta(struct qwerty_device *qd, float yaw, float pitch)
Add yaw and pitch movement for the next frame.
Definition: qwerty_device.c:463
void qwerty_change_movement_speed(struct qwerty_device *qd, float steps)
Change movement speed in exponential steps (usually integers, but any float allowed)
Definition: qwerty_device.c:470
void qwerty_release_sprint(struct qwerty_device *qd)
Stop doing what qwerty_press_sprint started.
Definition: qwerty_device.c:457
struct qwerty_controller * qwerty_controller(struct xrt_device *xd)
Cast to qwerty_controller.
Definition: qwerty_device.c:95
struct qwerty_hmd * qwerty_hmd_create(void)
Create qwerty_hmd.
Definition: qwerty_device.c:219
void qwerty_press_select(struct qwerty_controller *qc)
Simulate pressing input/select/click.
Definition: qwerty_device.c:496
void qwerty_release_all(struct qwerty_device *qd)
Release all movement input.
Definition: qwerty_device.c:476
void qwerty_reset_controller_pose(struct qwerty_controller *qc)
Reset controller to initial pose and makes it follow the HMD.
Definition: qwerty_device.c:550
struct qwerty_device * qwerty_device(struct xrt_device *xd)
Cast to qwerty_device.
Definition: qwerty_device.c:71
void qwerty_release_menu(struct qwerty_controller *qc)
Simulate releasing input/menu/click.
Definition: qwerty_device.c:517
Supports input actions and can be attached to the HMD pose.
Definition: qwerty_device.h:90
bool follow_hmd
Only used when a qwerty_hmd exists in the system.
Definition: qwerty_device.h:103
Fake device that modifies its tracked pose through its methods.
Definition: qwerty_device.h:51
float pitch_delta
Similar to yaw_delta
Definition: qwerty_device.h:72
struct xrt_pose pose
Internal pose state.
Definition: qwerty_device.h:53
struct qwerty_system * sys
Reference to the system this device is in.
Definition: qwerty_device.h:54
bool sprint_pressed
Movement speed boost.
Definition: qwerty_device.h:70
float look_speed
In radians per frame.
Definition: qwerty_device.h:64
float yaw_delta
How much extra yaw to add for the next pose.
Definition: qwerty_device.h:71
float movement_speed
In meters per frame.
Definition: qwerty_device.h:56
Definition: qwerty_device.h:80
Container of qwerty devices and driver properties.
Definition: qwerty_device.h:35
struct qwerty_hmd * hmd
Can be NULL.
Definition: qwerty_device.h:36
bool process_keys
If false disable keyboard and mouse input.
Definition: qwerty_device.h:40
bool hmd_focused
For gui var tracking only, true if hmd is the focused device.
Definition: qwerty_device.h:41
struct qwerty_controller * lctrl
Cannot be NULL.
Definition: qwerty_device.h:37
bool rctrl_focused
Same as hmd_focused but for the right controller.
Definition: qwerty_device.h:43
bool lctrl_focused
Same as hmd_focused but for the left controller.
Definition: qwerty_device.h:42
struct qwerty_controller * rctrl
Cannot be NULL.
Definition: qwerty_device.h:38
A single HMD or input device.
Definition: xrt_device.h:241
A pose composed of a position and orientation.
Definition: xrt_defines.h:465
Basic logging functionality.
Header defining an xrt display or controller device.