Commit graph

451 commits

Author SHA1 Message Date
Christoph Haag f5ef3985ba xrt: Add support for locating hand joints in action spaces 2020-11-23 20:42:54 +00:00
Christoph Haag d3ccbce76c build: meson: Add remote driver build 2020-11-20 16:14:02 +01:00
Jakob Bornecrantz 5ce0a0b3ab d/remote: Add hand tracking support 2020-11-18 17:37:39 +00:00
Christoph Haag a2b67ab3fe d/ohmd: Rotate rift s display right, not left 2020-11-12 16:04:00 +01:00
Christoph Haag 7ef8d1231d d/ohmd: Update display rotation code 2020-11-12 16:04:00 +01:00
Christoph Haag 9e788df463 xrt: Remove lens center from xrt_view
It's only used internally in drivers now.
2020-11-12 16:04:00 +01:00
Ryan Pavlik a345b07308 d/psvr: Fix typo in config/debug macro 2020-11-10 03:09:07 +00:00
Jakob Bornecrantz 135c93288b d/psvr: Rename some hid variables for better code 2020-11-09 23:42:15 +00:00
Ryan Pavlik 83b91ea4a9 d/ns: Some clang-tidy cleanups 2020-11-09 16:18:00 -06:00
Ryan Pavlik 97d711a9ef d/hdk: Appease clang-tidy a little more. 2020-11-09 16:18:00 -06:00
Ryan Pavlik 4c0d71aa30 d/ns: const correctness cleanup for math. 2020-11-09 16:17:57 -06:00
Ryan Pavlik d4011ed78a d/ns: Fix memory leak in math 2020-11-09 16:06:14 -06:00
Christoph Haag 29820345c7 d/survive: Fix bindings declaration after rebase of MR 587 2020-11-06 16:36:09 +01:00
Christoph Haag ffa7cc84c8 d/vive: Add device bindings 2020-11-05 14:44:04 +00:00
Christoph Haag 4b261219a2 d/survive: Add device bindings 2020-11-05 14:41:55 +00:00
Jakob Bornecrantz 12df35232a d/psmv: Add device bindings 2020-11-05 14:41:55 +00:00
Jakob Bornecrantz 24a3886e85 d/daydream: Add device bindings 2020-11-05 14:41:55 +00:00
Jakob Bornecrantz 5997708634 d/arduino: Add device bindings 2020-11-05 14:41:55 +00:00
Jakob Bornecrantz 2a9a0100bc d/psvr: Tidy code 2020-11-04 13:26:47 +00:00
Ryan Pavlik f70b1abd88 d/android: Use not-deprecated API when possible. 2020-10-30 18:20:36 -05:00
Lubosz Sarnecki ae1d4e9541 d/android: Enable cardboard distortion. 2020-10-30 18:20:36 -05:00
Lubosz Sarnecki f4113ef15b d/android: Add Android sensors driver. 2020-10-30 18:20:35 -05:00
Jakob Bornecrantz 09ba7fc1e3 d/remote: Fix warning when building with clang 2020-10-29 16:17:20 +00:00
Jakob Bornecrantz d72776b82c d/psvr: Switch to logging API 2020-10-26 22:41:49 +00:00
Jakob Bornecrantz 6fd1e7b36c d/dummy: Add logging to variable tracking 2020-10-26 22:41:27 +00:00
Jakob Bornecrantz 02a3b47f7c d/dummy: Switch to logging API 2020-10-26 22:17:15 +00:00
Jakob Bornecrantz 3611193feb d/dummy: Tidy file 2020-10-26 22:14:05 +00:00
Christoph Haag f910367014 d/oh: Add startup delay for Rift S and rotate left 2020-10-21 01:26:53 +02:00
Jakob Bornecrantz 3483a7286d d/remote: Add remote driver 2020-10-15 21:07:40 +00:00
Christoph Haag c0a5b3b76c d/survive: Implement haptic feedback 2020-10-13 19:39:28 +02: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 05f65e0028 d/survive: curl thumb when touching a button 2020-10-12 22:55:33 +02:00
Christoph Haag f8088c1fa4 d/survive: Add fingertracking and refactor
Get controller config at startup & determine variant.
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
Christoph Haag 2a07c1034e d/ns: Don't create rs tracker twice on v1 2020-10-12 16:06:25 +02:00
Jakob Bornecrantz 96046d1315 d/ohmd: Use new none distortion code 2020-10-07 23:45:45 +01:00
Jakob Bornecrantz 7baf90d3d8 d/hdk: Use new none distortion code 2020-10-07 23:45:43 +01:00
Jakob Bornecrantz cd2ea960b9 d/dummy: Use new none distortion code 2020-10-07 23:45:41 +01:00
Christoph Haag dc29c3f97e build/meson: Build daydream and arduino driver when dbus is enabled 2020-10-05 16:05:02 +00:00
Jakob Bornecrantz 6ec6c2eac9 d/dummy: Make view rotate slightly with time 2020-10-01 23:49:12 +01:00
Jakob Bornecrantz 9f39410b64 d/dummy: Make the view move slightly with time 2020-10-01 15:50:51 +01:00
Jakob Bornecrantz 9a675cc7f3 xrt: Rename xrt_uv_triplet 2020-09-30 15:35:57 +01:00
Christoph Haag bb56e5f3c5 d/openhmd: Make struct oh_device private and refactor 2020-09-30 02:08:03 +02:00
Christoph Haag f6c3998d29 xrt: Use struct vive_values for u_compute_distortion_vive 2020-09-30 02:05:05 +02:00
Christoph Haag 29188d681c xrt: Remove all but mesh distortion values from xrt_hmd_parts::distortion
Move vive values to struct u_vive_values in u_distortion_mesh.
Move openhmd values to private struct inside ohmd driver.
2020-09-30 02:05:05 +02:00
Christoph Haag 2e7451ca5e comp: Support only mesh and no istortion, remove pano and vive shaders
Also changes hardcoded binding indices into variables to make following the code easier
e.g. when adding new UBOs.
2020-09-30 02:05:04 +02:00
Christoph Haag fd883e26bf d/openhmd: Fix distortion_k value ordering
Their order is opposite to the psvr panotools values.
2020-09-30 01:30:30 +02:00
Christoph Haag fb71c71a8c xrt: Replace mesh generator with xdev->compute_distortion()
Each HMD driver now has to implement compute_distortion() which will be called
by the compositor implementation to generate a mesh (usually).

u_distortion_mesh contains implementations for the defaults (panotools, OpenHMD, vive).

Also adds compute_distortion function for Vive distortion

There are differences between OpenHMD and Panotools values, main differences for now:
* psvr has 5 pano coefficients, ohmd has 3
* psvr uses viewport size and lens center in pixels for distortion calculation, ohmd in meter
* psvr uses different distortion scaling than ohmd
2020-09-28 17:04:15 +01:00
Christoph Haag ee8fdb45fd d/ns: remove useless assignments 2020-09-22 02:19:13 +02:00
Christoph Haag 3c0ae7e61e d/dummy: reduce dummy HMD resolution to 720p 2020-09-21 20:37:28 +02:00
Christoph Haag 31539c800e d/ohmd: Add (OpenHMD) suffix to openhmd driver string 2020-09-21 20:37:28 +02:00
Ryan Pavlik dae3ab3a4f xrt: Be sure to include config headers 2020-09-18 13:56:24 +01:00
Ryan Pavlik a0c8839a71 xrt: Remove un-needed includes of unistd 2020-09-18 13:56:16 +01:00
Christoph Haag 17ff908041 d/ns: Set XRT_SPACE_RELATION_ORIENTATION_TRACKED_BIT 2020-09-14 16:57:10 +02:00
Christoph Haag 37519dc54d d/dummy: Set XRT_SPACE_RELATION_ORIENTATION_TRACKED_BIT 2020-09-14 16:56:54 +02:00
Christoph Haag 150b7649f3 d/survive: Don't fix up invalid pose 2020-09-11 18:52:01 +02:00
Christoph Haag a664bb22bf d/survive: Update to recent libsurvive git
Rewrite input event handling and add new events from libsurvive.
2020-09-11 18:52:01 +02:00
Christoph Haag c3fbe6eaf8 d/survive: remove unused structs 2020-09-11 18:52:01 +02:00
Christoph Haag 357b47522c d/survive: set relation flags properly 2020-09-11 18:52:01 +02:00
Christoph Haag 6133d4cf99 d/survive: Remove out_relation_timestamp_ns 2020-09-11 18:52:01 +02:00
Jakob Bornecrantz 8e24dda794 xrt: Remove out_timestamp argument to xrt_device::get_tracked_pose 2020-09-07 23:37:09 +01:00
Jakob Bornecrantz 74690a2278 d/psmv: Rotate angular velocity to be in base space 2020-09-07 23:33:28 +01:00
Jakob Bornecrantz f9905a4007 d/psmv: Use space graphs for poses 2020-09-07 23:33:28 +01:00
Moses Turner 0ff1865c2e d/ns: Add version 2 config support 2020-09-07 11:35:24 +01:00
Jakob Bornecrantz ea6374d296 d/dummy: Minor comments 2020-09-06 22:53:10 +01:00
Jakob Bornecrantz 787c104339 d/psmv: Use last package timestamp for input changes 2020-09-02 22:08:01 +01:00
Jakob Bornecrantz 2d8a39b731 d/v4l2: Set correct name on variable tracker 2020-09-02 18:36:47 +01:00
Jakob Bornecrantz ffa888a575 d/v4l2: Use different tweaks depending on capture type 2020-09-02 11:57:47 +01:00
Jakob Bornecrantz 6846ab7637 xrt: Add stream capture type 2020-09-02 11:52:59 +01:00
Christoph Haag 330279d330 d/psvr: Set positional tracking bit when tracker is present 2020-09-01 17:03:55 +02:00
Christoph Haag cde94cc8a2 build: Remove libv4l2 dependency from meson
We use the linux/v4l2-common.h header to access v4l devices, not libv4l from v4l-utils.
2020-08-28 12:10:53 +00:00
Pete Black 3fdce20afd d/psvr: Only power on front LEDs 2020-08-28 11:38:03 +00:00
Jakob Bornecrantz deb5633bf9 d/psmv: Introduce proper grip and aim poses
Correctly rotate the grip pose to follow the spec more closely.
2020-08-27 10:42:05 +01:00
Christoph Haag cd05c86c59 d/ns,rs: Add external slam tracking type 2020-08-19 14:46:55 +02:00
Christoph Haag 7fb0af90de xrt: Add tracking system type for Hydra 2020-08-19 11:06:28 +00:00
Christoph Haag 23bd6a4377 xrt: Add tracking system type for Lighthouse 2020-08-19 11:06:28 +00:00
Christoph Haag 08ed44b22c d/vive,survive: Manually improve values for Valve Index display
These values are hand picked to provide a less stretchy image.
2020-08-17 22:07:22 +02:00
Christoph Haag 518728156b d/northstar: Set positional tracking bit true when built with RS support 2020-08-17 11:51:38 +00:00
Jakob Bornecrantz 132b0c541d d/rs: Use a thread to get the poses
Tested by moses from Discord.
2020-08-17 11:58:18 +01:00
Ryan Pavlik 146218b346 xrt: Some clang tidy fixes.
A few suppressions as well where clang-tidy did the wrong thing.
2020-08-12 17:11:42 -05:00
Jakob Bornecrantz ec9ecf6332 d/psvr: Fix 3DOF tracking 2020-08-10 16:07:53 +01:00
Christoph Haag ae07036324 d/vive: Demote watchman timeout error message to trace
It's desirable to support running without basestations without spamming messages.
2020-08-05 21:11:24 +00:00
Christoph Haag 3a68f60d47 d/vive: Run watchman poll in separate thread
Watchman polling times out after 1 second when basestations are not present/off.
This should not block reading the IMU.
2020-08-05 21:11:24 +00:00
Christoph Haag 2b20ee1f12 d/vive: close the zlib inflate stream
fixes memory leaks of zlib stream internal state
2020-08-05 20:32:51 +00:00
Christoph Haag 12c0f5d75a d/vive: Destroy watchman hid device on shutdown 2020-08-05 20:32:51 +00:00
Lubosz Sarnecki 9c16f5ed69 d/vive/lighthouse: Handle lighthouse v2 reports.
Poll ligthouse reports in separate function. Check for report sizes
consistently.
2020-07-31 13:30:12 +02:00
Lubosz Sarnecki 04467942c1 d/vive: Add and use vive_lighthouse from ouvrt. 2020-07-31 13:30:12 +02:00
Lubosz Sarnecki bb7d05a918 d/vive: Print report type names.
Be fault tolerant on unexpected report.
2020-07-31 12:45:47 +02:00
Lubosz Sarnecki c3ba93c1ce d/vive: Poll pulse reports.
Make sensor polling function take processing callback and be more
generic.
2020-07-31 12:45:47 +02:00
Lubosz Sarnecki 2db3b6b218 d/vive: Open and enable watchman on Vive, Vive Pro and Index. 2020-07-31 12:45:13 +02:00
Lubosz Sarnecki cbb1dd82da d/vive: Remove unnesseccary clang-format off. 2020-07-31 12:35:03 +02:00
Ryan Pavlik 2cce94799d d/psvr: Fix hidapi include 2020-07-17 13:53:39 -05:00
Ryan Pavlik 4220638afd xrt: use _USE_MATH_DEFINES to make sure M_PI gets defined. 2020-07-17 13:53:39 -05: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 499751e4fa d/vive: Use VIVE_ERROR when vive_device is available. 2020-07-09 14:11:35 +02:00
Lubosz Sarnecki 4d412edaa1 d/vive/protocol: Port to u_logging. 2020-07-09 13:38:07 +02:00
Lubosz Sarnecki dce8da5130 d/vive/controller: Port to u_logging. 2020-07-09 13:38:07 +02:00