Commit graph

48 commits

Author SHA1 Message Date
Jakob Bornecrantz 936733d4b7 d/vive: Pass in identity pose to hand simulation 2022-08-14 16:16:27 +01:00
Jakob Bornecrantz d978a863c1 d/vive: Tidy 2022-08-14 16:16:27 +01:00
Jakob Bornecrantz 39f80f2ef5 d/vive: Remove unsued variable 2022-08-10 14:18:45 +00:00
danwillm 76f96686d1 xrt/drivers: Convert hand tracking drivers to use hand simulation
Co-authored-by: Moses Turner <moses@collabora.com>
2022-08-01 17:33:40 +00:00
danwillm 0943ce10be a/util, xrt: u_hand_tracking interface change 2022-07-25 23:57:45 +01:00
Mateo de Mayo 6e16959098 d/vive: Add vive_source to convert v4l2 timestamps into monotonic clock
Use a sink in the middle of the stream to correct for v4l2 timestamps with
hardware timestamps to monotonic clock.

This sink, together with other utilities related to data streaming, lives in a
new vive_source entity, with similar functionality to wmr_source or rs_source.

The vive_source lifetime is managed by the builder xfctx, which prevents
deallocation dependencies between vive_device and the v4l2_fs to cause segfaults.
2022-07-25 19:08:46 +00:00
Mateo de Mayo aaf5fe1b7b d/vive: Improve ticks-to-nanoseconds conversion 2022-07-22 16:19:49 +00:00
bjorn 919936991c ipc: make all IPC input aggregates const; 2022-07-14 20:31:38 +00:00
Jakob Bornecrantz 38eac9dddc xrt: Do not depend on util 2022-05-23 09:12:54 -05:00
Jakob Bornecrantz 0d055bb740 d/vive: Fix threading primitive initialization 2022-05-23 13:54:42 +00:00
Jakob Bornecrantz 456f9c7f09 d/vive: Use shared bindings 2022-05-09 10:46:44 +00:00
Jakob Bornecrantz 3f98ea5595 xrt: Tidy s/ll/log_level/g
Also make sure all variable logging uses the right type for logging variables.
2021-11-22 14:29:10 -06:00
Ryan Pavlik 33c0287f8b xrt: Rename all "num" parameters and fields to "count" (or "capacity" as appropriate)
This matches the OpenXR usage: the array is the plural of the element type,
and the count is the singular element type plus "count" (usually CountOutput
because of the two-call idiom)

Includes fixes to other code to match API changes.
2021-11-13 12:04:38 +00:00
Moses Turner 621681ffb4 d/vive: Switch to new get_hand_tracking signature 2021-10-02 23:09:14 +01:00
Jakob Bornecrantz 98c1cb5358 d/vive: Add tracing support focusing on device message processing 2021-09-29 21:38:33 +00:00
Jakob Bornecrantz df484c508d d/vive: Tidy 2021-08-20 16:56:15 +01:00
Jakob Bornecrantz d61cf5dc78 d/vive: Make sure to properly destroy controller 2021-08-20 16:56:15 +01:00
Jakob Bornecrantz a89c8309c7 u/vive: Pass in logging level to parse function 2021-08-20 13:42:11 +01:00
Christoph Haag ccb9777a47 d/vive: Set hand tracking values to actives
fixes !716 which introduced the need for setting hand joint active status.
2021-06-16 23:17:07 +02:00
Christoph Haag 1f25acfa94 d/vive: remove duplicate range record error message 2021-03-24 18:45:00 +00:00
Christoph Haag 5c014193f7 d/vive_controller: Use a mutex for get_tracked_pose and update_inputs 2021-03-09 12:39:12 +00:00
Christoph Haag 4d1b5f033a d/vive: Add controller rotation pose prediction 2021-02-17 19:59:59 +01:00
Christoph Haag d5e74b959a d/vive: Improve naming scheme 2021-02-12 00:38:52 +01:00
Christoph Haag c67a6ccd34 xrt: Add xrt_device::serial for uniquely identifying devices if possible
d: Make controller serials unique by appending number

For drivers that do not (yet) know a persistent unique id per device.
2021-02-12 00:38:51 +01:00
Christoph Haag 3a02610e77 d/vive: Remove vive_controller_device::variant and use variant from config 2021-02-11 20:54:31 +01:00
Jakob Bornecrantz 5853103820 d/vive: Refactor out vive config code into auxiliary library
fix vive_config.h include for survive
2021-02-01 19:56:52 +01:00
Christoph Haag a2e7e1c3d9 d/vive: Factor out controller config into separate struct 2021-02-01 15:23:19 +00:00
Jakob Bornecrantz 2b996f30c4 xrt: Reflow after column change 2021-01-15 13:50:32 +00:00
Lubosz Sarnecki 8ce0f73585 d/vive/conteroller: Porting to static u_logging. 2020-12-28 13:04:11 +00:00
Christoph Haag f7a8e8810b xrt: Split hand tracking input name into left/right
oxr_hand_tracker now stores which xdev and input name it tracks.
2020-12-07 11:43:51 +00:00
Christoph Haag 006971ae7a u/hand_tracking: Calculate joint velocities
And return them in the state tracker
2020-11-23 20:42:54 +00:00
Christoph Haag f5ef3985ba xrt: Add support for locating hand joints in action spaces 2020-11-23 20:42:54 +00:00
Christoph Haag ffa7cc84c8 d/vive: Add device bindings 2020-11-05 14:44:04 +00:00
Christoph Haag 0dcde4a597 d/vive: Actually Use defined values for default haptic frequency and min haptic duration 2020-10-13 19:39:28 +02:00
Christoph Haag 270a4143c7 d/vive: Use defines for minimum haptic frequency and unspecified haptic frequency 2020-10-13 19:39:25 +02:00
Christoph Haag d959bea54a d/vive: curl thumb when touching a button 2020-10-12 22:55:33 +02:00
Christoph Haag 5164488225 d/vive_controller: Add finger tracking 2020-10-12 22:55:33 +02:00
Jakob Bornecrantz 8e24dda794 xrt: Remove out_timestamp argument to xrt_device::get_tracked_pose 2020-09-07 23:37:09 +01:00
Christoph Haag b073e3dfb9 xrt: Add support for assigned device roles
Abandons the assumption that in oxr_system.xdevs[], index 0 is HMD,
1 is left controller, 2 is right controller.

Now to represent the dynamically assigned roles, oxr_system.role contains
the index for a device in oxr_system.xdevs[] for head, left and right.

This role assignment happens on the client side and currently can not be updated
from the server side.

Also adds an enum that device drivers set indicating allowed assignments
(many controllers are physically designed to be held in a specific hand).

This also adds support for configurations with only a HMD and a right controller.
2020-07-13 18:03:01 +02:00
Christoph Haag 5788fb90a2 drivers: Add rotation/position tracking bool to xdev
xrGetSystemProperties() will return these values to application in XrSystemTrackingProperties
using the xdev assigned to head.
2020-07-13 18:03:01 +02:00
Lubosz Sarnecki dce8da5130 d/vive/controller: Port to u_logging. 2020-07-09 13:38:07 +02:00
Lubosz Sarnecki fdffbfc68a d/vive/controller: Print spew when receiving lighthouse data. 2020-07-02 19:29:14 +02:00
Lubosz Sarnecki 1071d7a50b d/vive/controller: Uncomment and improve spew prints. 2020-07-02 19:29:14 +02:00
Lubosz Sarnecki d047ce8af4 d/vive/controller: Add Vive tracker gen 2 support. 2020-07-02 19:29:14 +02:00
Lubosz Sarnecki 6662e0caef d/vive/controller: Add Vive tracker gen 1 support. 2020-07-02 19:29:14 +02:00
Lubosz Sarnecki 260cfd8d26 d/vive/controller: Use u_json and move config to vive_config.
To be consistent with the headset implementation, move all config
related code to vive_config and use u_json consistently with static
string sizes.
2020-07-02 18:42:42 +02:00
Lubosz Sarnecki 53619fa64e d/vive/controller: Move prober interface to vive_prober.
Create propper initializer for the controller and move the proper
interface to vive_prober to be more consistent with the device. This
will also allow to share more code like the config parsing in a later
patch.
2020-07-02 18:42:42 +02:00
Lubosz Sarnecki f33c6356d7 d/vive: Rename vive_controller files.
To be more consistent with the rest of the driver, rename the controller
files to match the others style.
2020-07-02 18:42:42 +02:00
Renamed from src/xrt/drivers/vive/vive_controller_driver.c (Browse further)