xrt: use int64_t for timestamp in get_hand_tracking

Part-of: <https://gitlab.freedesktop.org/monado/monado/-/merge_requests/2298>
This commit is contained in:
Simon Zeni 2024-08-01 16:31:11 -04:00 committed by Rylie Pavlik
parent d5ba6eec5b
commit e298244516
17 changed files with 38 additions and 38 deletions

View file

@ -148,9 +148,9 @@ userConfigSetDefaults(struct ht_device *htd)
static void static void
ht_device_get_hand_tracking(struct xrt_device *xdev, ht_device_get_hand_tracking(struct xrt_device *xdev,
enum xrt_input_name name, enum xrt_input_name name,
uint64_t at_timestamp_ns, int64_t at_timestamp_ns,
struct xrt_hand_joint_set *out_value, struct xrt_hand_joint_set *out_value,
uint64_t *out_timestamp_ns) int64_t *out_timestamp_ns)
{ {
struct ht_device *htd = ht_device(xdev); struct ht_device *htd = ht_device(xdev);

View file

@ -134,9 +134,9 @@ cemu_device_destroy(struct xrt_device *xdev)
static void static void
cemu_device_get_hand_tracking(struct xrt_device *xdev, cemu_device_get_hand_tracking(struct xrt_device *xdev,
enum xrt_input_name name, enum xrt_input_name name,
uint64_t requested_timestamp_ns, int64_t requested_timestamp_ns,
struct xrt_hand_joint_set *out_value, struct xrt_hand_joint_set *out_value,
uint64_t *out_timestamp_ns) int64_t *out_timestamp_ns)
{ {
// Shadows normal hand tracking - does nothing differently // Shadows normal hand tracking - does nothing differently
@ -231,8 +231,8 @@ get_other_two(struct cemu_device *dev,
} else { } else {
other = 0; other = 0;
} }
uint64_t noop;
int64_t noop;
xrt_device_get_hand_tracking(dev->sys->in_hand, dev->sys->out_hand[other]->ht_input_name, hand_timestamp_ns, xrt_device_get_hand_tracking(dev->sys->in_hand, dev->sys->out_hand[other]->ht_input_name, hand_timestamp_ns,
out_secondary, &noop); out_secondary, &noop);
} }
@ -329,7 +329,7 @@ cemu_device_get_tracked_pose(struct xrt_device *xdev,
CEMU_ERROR(dev, "unknown input name %d for controller pose", name); CEMU_ERROR(dev, "unknown input name %d for controller pose", name);
return; return;
} }
static uint64_t hand_timestamp_ns; static int64_t hand_timestamp_ns;
struct xrt_hand_joint_set joint_set; struct xrt_hand_joint_set joint_set;
sys->in_hand->get_hand_tracking(sys->in_hand, dev->ht_input_name, at_timestamp_ns, &joint_set, sys->in_hand->get_hand_tracking(sys->in_hand, dev->ht_input_name, at_timestamp_ns, &joint_set,
@ -384,7 +384,7 @@ cemu_device_update_inputs(struct xrt_device *xdev)
struct cemu_device *dev = cemu_device(xdev); struct cemu_device *dev = cemu_device(xdev);
struct xrt_hand_joint_set joint_set; struct xrt_hand_joint_set joint_set;
uint64_t noop; int64_t noop;
xrt_device_get_hand_tracking(dev->sys->in_hand, dev->ht_input_name, os_monotonic_get_ns(), &joint_set, &noop); xrt_device_get_hand_tracking(dev->sys->in_hand, dev->ht_input_name, os_monotonic_get_ns(), &joint_set, &noop);

View file

@ -134,9 +134,9 @@ destroy(struct xrt_device *xdev)
static void static void
get_hand_tracking(struct xrt_device *xdev, get_hand_tracking(struct xrt_device *xdev,
enum xrt_input_name name, enum xrt_input_name name,
uint64_t at_timestamp_ns, int64_t at_timestamp_ns,
struct xrt_hand_joint_set *out_value, struct xrt_hand_joint_set *out_value,
uint64_t *out_timestamp_ns) int64_t *out_timestamp_ns)
{ {
struct multi_device *d = (struct multi_device *)xdev; struct multi_device *d = (struct multi_device *)xdev;
struct xrt_device *target = d->tracking_override.target; struct xrt_device *target = d->tracking_override.target;

View file

@ -89,9 +89,9 @@ opengloves_device(struct xrt_device *xdev)
static void static void
opengloves_device_get_hand_tracking(struct xrt_device *xdev, opengloves_device_get_hand_tracking(struct xrt_device *xdev,
enum xrt_input_name name, enum xrt_input_name name,
uint64_t requested_timestamp_ns, int64_t requested_timestamp_ns,
struct xrt_hand_joint_set *out_joint_set, struct xrt_hand_joint_set *out_joint_set,
uint64_t *out_timestamp_ns) int64_t *out_timestamp_ns)
{ {
struct opengloves_device *od = opengloves_device(xdev); struct opengloves_device *od = opengloves_device(xdev);

View file

@ -135,9 +135,9 @@ r_device_get_tracked_pose(struct xrt_device *xdev,
static void static void
r_device_get_hand_tracking(struct xrt_device *xdev, r_device_get_hand_tracking(struct xrt_device *xdev,
enum xrt_input_name name, enum xrt_input_name name,
uint64_t requested_timestamp_ns, int64_t requested_timestamp_ns,
struct xrt_hand_joint_set *out_value, struct xrt_hand_joint_set *out_value,
uint64_t *out_timestamp_ns) int64_t *out_timestamp_ns)
{ {
struct r_device *rd = r_device(xdev); struct r_device *rd = r_device(xdev);
struct r_hub *r = rd->r; struct r_hub *r = rd->r;

View file

@ -73,9 +73,9 @@ r_hmd_get_tracked_pose(struct xrt_device *xdev,
static void static void
r_hmd_get_hand_tracking(struct xrt_device *xdev, r_hmd_get_hand_tracking(struct xrt_device *xdev,
enum xrt_input_name name, enum xrt_input_name name,
uint64_t at_timestamp_ns, int64_t at_timestamp_ns,
struct xrt_hand_joint_set *out_value, struct xrt_hand_joint_set *out_value,
uint64_t *out_timestamp_ns) int64_t *out_timestamp_ns)
{ {
struct r_hmd *rh = r_hmd(xdev); struct r_hmd *rh = r_hmd(xdev);
(void)rh; (void)rh;

View file

@ -162,9 +162,9 @@ simulated_device_get_tracked_pose(struct xrt_device *xdev,
static void static void
simulated_device_get_hand_tracking(struct xrt_device *xdev, simulated_device_get_hand_tracking(struct xrt_device *xdev,
enum xrt_input_name name, enum xrt_input_name name,
uint64_t requested_timestamp_ns, int64_t requested_timestamp_ns,
struct xrt_hand_joint_set *out_value, struct xrt_hand_joint_set *out_value,
uint64_t *out_timestamp_ns) int64_t *out_timestamp_ns)
{ {
assert(false); assert(false);
} }

View file

@ -399,9 +399,9 @@ ControllerDevice::get_finger_from_name(const std::string_view name)
void void
ControllerDevice::get_hand_tracking(enum xrt_input_name name, ControllerDevice::get_hand_tracking(enum xrt_input_name name,
uint64_t desired_timestamp_ns, int64_t desired_timestamp_ns,
struct xrt_hand_joint_set *out_value, struct xrt_hand_joint_set *out_value,
uint64_t *out_timestamp_ns) int64_t *out_timestamp_ns)
{ {
if (!has_index_hand_tracking) if (!has_index_hand_tracking)
return; return;

View file

@ -176,9 +176,9 @@ public:
void void
get_hand_tracking(enum xrt_input_name name, get_hand_tracking(enum xrt_input_name name,
uint64_t desired_timestamp_ns, int64_t desired_timestamp_ns,
struct xrt_hand_joint_set *out_value, struct xrt_hand_joint_set *out_value,
uint64_t *out_timestamp_ns); int64_t *out_timestamp_ns);
xrt_hand xrt_hand
get_xrt_hand(); get_xrt_hand();

View file

@ -458,9 +458,9 @@ struct Button buttons[255] = {
static void static void
survive_controller_get_hand_tracking(struct xrt_device *xdev, survive_controller_get_hand_tracking(struct xrt_device *xdev,
enum xrt_input_name name, enum xrt_input_name name,
uint64_t at_timestamp_ns, int64_t at_timestamp_ns,
struct xrt_hand_joint_set *out_value, struct xrt_hand_joint_set *out_value,
uint64_t *out_timestamp_ns) int64_t *out_timestamp_ns)
{ {
struct survive_device *survive = (struct survive_device *)xdev; struct survive_device *survive = (struct survive_device *)xdev;

View file

@ -363,9 +363,9 @@ vive_controller_device_index_update_inputs(struct xrt_device *xdev)
static void static void
vive_controller_get_hand_tracking(struct xrt_device *xdev, vive_controller_get_hand_tracking(struct xrt_device *xdev,
enum xrt_input_name name, enum xrt_input_name name,
uint64_t requested_timestamp_ns, int64_t requested_timestamp_ns,
struct xrt_hand_joint_set *out_value, struct xrt_hand_joint_set *out_value,
uint64_t *out_timestamp_ns) int64_t *out_timestamp_ns)
{ {
XRT_TRACE_MARKER(); XRT_TRACE_MARKER();

View file

@ -338,9 +338,9 @@ struct xrt_device
*/ */
void (*get_hand_tracking)(struct xrt_device *xdev, void (*get_hand_tracking)(struct xrt_device *xdev,
enum xrt_input_name name, enum xrt_input_name name,
uint64_t desired_timestamp_ns, int64_t desired_timestamp_ns,
struct xrt_hand_joint_set *out_value, struct xrt_hand_joint_set *out_value,
uint64_t *out_timestamp_ns); int64_t *out_timestamp_ns);
/*! /*!
* @brief Get the requested blend shape properties & weights for a face tracker * @brief Get the requested blend shape properties & weights for a face tracker
@ -563,9 +563,9 @@ xrt_device_get_tracked_pose(struct xrt_device *xdev,
static inline void static inline void
xrt_device_get_hand_tracking(struct xrt_device *xdev, xrt_device_get_hand_tracking(struct xrt_device *xdev,
enum xrt_input_name name, enum xrt_input_name name,
uint64_t desired_timestamp_ns, int64_t desired_timestamp_ns,
struct xrt_hand_joint_set *out_value, struct xrt_hand_joint_set *out_value,
uint64_t *out_timestamp_ns) int64_t *out_timestamp_ns)
{ {
xdev->get_hand_tracking(xdev, name, desired_timestamp_ns, out_value, out_timestamp_ns); xdev->get_hand_tracking(xdev, name, desired_timestamp_ns, out_value, out_timestamp_ns);
} }

View file

@ -102,9 +102,9 @@ ipc_client_device_get_tracked_pose(struct xrt_device *xdev,
static void static void
ipc_client_device_get_hand_tracking(struct xrt_device *xdev, ipc_client_device_get_hand_tracking(struct xrt_device *xdev,
enum xrt_input_name name, enum xrt_input_name name,
uint64_t at_timestamp_ns, int64_t at_timestamp_ns,
struct xrt_hand_joint_set *out_value, struct xrt_hand_joint_set *out_value,
uint64_t *out_timestamp_ns) int64_t *out_timestamp_ns)
{ {
ipc_client_device_t *icd = ipc_client_device(xdev); ipc_client_device_t *icd = ipc_client_device(xdev);

View file

@ -1892,9 +1892,9 @@ xrt_result_t
ipc_handle_device_get_hand_tracking(volatile struct ipc_client_state *ics, ipc_handle_device_get_hand_tracking(volatile struct ipc_client_state *ics,
uint32_t id, uint32_t id,
enum xrt_input_name name, enum xrt_input_name name,
uint64_t at_timestamp, int64_t at_timestamp,
struct xrt_hand_joint_set *out_value, struct xrt_hand_joint_set *out_value,
uint64_t *out_timestamp) int64_t *out_timestamp)
{ {
// To make the code a bit more readable. // To make the code a bit more readable.

View file

@ -406,11 +406,11 @@
"in": [ "in": [
{"name": "id", "type": "uint32_t"}, {"name": "id", "type": "uint32_t"},
{"name": "name", "type": "enum xrt_input_name"}, {"name": "name", "type": "enum xrt_input_name"},
{"name": "at_timestamp", "type": "uint64_t"} {"name": "at_timestamp", "type": "int64_t"}
], ],
"out": [ "out": [
{"name": "value", "type": "struct xrt_hand_joint_set"}, {"name": "value", "type": "struct xrt_hand_joint_set"},
{"name": "timestamp", "type": "uint64_t"} {"name": "timestamp", "type": "int64_t"}
] ]
}, },

View file

@ -122,11 +122,11 @@ oxr_xdev_get_hand_tracking_at(struct oxr_logger *log,
struct xrt_hand_joint_set *out_value) struct xrt_hand_joint_set *out_value)
{ {
//! Convert at_time to monotonic and give to device. //! Convert at_time to monotonic and give to device.
uint64_t at_timestamp_ns = time_state_ts_to_monotonic_ns(inst->timekeeping, at_time); int64_t at_timestamp_ns = time_state_ts_to_monotonic_ns(inst->timekeeping, at_time);
struct xrt_hand_joint_set value; struct xrt_hand_joint_set value;
uint64_t ignored; int64_t ignored;
xrt_device_get_hand_tracking(xdev, name, at_timestamp_ns, &value, &ignored); xrt_device_get_hand_tracking(xdev, name, at_timestamp_ns, &value, &ignored);

View file

@ -970,7 +970,7 @@ public:
timepoint_ns now_ns = os_monotonic_get_ns(); timepoint_ns now_ns = os_monotonic_get_ns();
struct xrt_hand_joint_set out_joint_set_value; struct xrt_hand_joint_set out_joint_set_value;
uint64_t out_timestamp_ns; int64_t out_timestamp_ns;
m_xdev->get_hand_tracking(m_xdev, m_xdev->get_hand_tracking(m_xdev,
m_hand == XRT_HAND_LEFT ? XRT_INPUT_GENERIC_HAND_TRACKING_LEFT m_hand == XRT_HAND_LEFT ? XRT_INPUT_GENERIC_HAND_TRACKING_LEFT