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
Christoph Haag
f93209a1ed
d/vive: Remove vive_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
b87c7d5e61
d/survive: Port to vive_config parsing
2021-02-01 15:23:19 +00:00
Christoph Haag
a2e7e1c3d9
d/vive: Factor out controller config into separate struct
2021-02-01 15:23:19 +00:00
Christoph Haag
e4b0e6282d
d/vive: Factor out config into separate struct
2021-02-01 15:23:19 +00:00
Jakob Bornecrantz
17beaf8aa9
u/distortion: A stab in the dark to try and improve Index chromatic aberration
2021-01-25 00:12:03 +00:00
Jakob Bornecrantz
7d755427e3
u/distortion: Filp order of array access in distortion for Vive & Index
2021-01-25 00:12:03 +00:00
Jakob Bornecrantz
0c2d07808c
u/distortion: Make Vive & Index distortion center per channel
2021-01-25 00:12:03 +00:00
Dan Weatherford
bd381561d8
d/vive: Fix distortion center config parsing
2021-01-23 14:02:31 -06: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
9e788df463
xrt: Remove lens center from xrt_view
...
It's only used internally in drivers now.
2020-11-12 16:04:00 +01: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
9a675cc7f3
xrt: Rename xrt_uv_triplet
2020-09-30 15:35:57 +01: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
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
Jakob Bornecrantz
8e24dda794
xrt: Remove out_timestamp argument to xrt_device::get_tracked_pose
2020-09-07 23:37:09 +01: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
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
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
Lubosz Sarnecki
5dff60a93d
d/vive: Create common header for controller and hmd.
2020-07-09 13:38:07 +02:00
Lubosz Sarnecki
dfcff5e806
d/vive/device: Use VIVE_WARN and VIVE_INFO.
2020-07-09 13:38:07 +02:00
Lubosz Sarnecki
7121c260ae
d/vive/device: Replace old debug macros with new ones.
2020-07-09 13:38:07 +02:00
Lubosz Sarnecki
7be5efbe82
d/vive/prober: Prettify logging. rename methods.
2020-07-09 13:38:07 +02:00
Lubosz Sarnecki
eaea6888a7
d/vive: Port logging to u_logging.
2020-07-09 13:37:58 +02:00