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
Jakob Bornecrantz
20501b8e58
d/psmv: Use new log level var tracker
2020-07-03 19:01:55 +01:00
Jakob Bornecrantz
c4741cc49f
d/psmv: Use new logging level helper
2020-07-03 19:01:55 +01:00
Jakob Bornecrantz
ffcc06e099
d/psmv: Use new logging functions
2020-07-03 14:55:44 +01: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
2fd6fe2f16
d/vive/prober: Print error before device init.
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
Lubosz Sarnecki
eb51b89e9c
d/vive_config: Move config and json related code to vive_config.
...
Isolate JSON config related code in vive_config.
2020-07-02 18:42:42 +02:00
Lubosz Sarnecki
2580958e2c
d/vive: Use functions from u_json.
...
Uses the old and newly moved u_json functions.
Creates defines to keep short syntax.
Strings are now stored with static sizes in favor of being allocated
dynamically and not freed.
2020-07-02 18:42:42 +02:00
Lubosz Sarnecki
bb52a673eb
d/vive/controller: Parse vec3 correctly as arrays.
...
The u_json_get_vec3 function only works for json vec3 objects with x, y,
z members. The function unnoticedly returned false before.
2020-07-02 18:42:42 +02:00
Lubosz Sarnecki
efd351f5c1
d/vive/controller: Initialize debug and spew before it's used.
2020-07-02 18:36:21 +02:00
Lubosz Sarnecki
f9d92890ce
d/vive: Fix crash on Vive Pro as it's missing a json key.
...
The key "lens_separation" is not available in my Vive Pro config.
2020-07-02 18:35:18 +02:00
Christoph Haag
08c6fe9744
d/vive_controller: Fix imu timestamp calculation
...
Philipp Zabel looked into it and it turns out the timestamp from the
imu sample should be the third byte, not the fourth.
2020-07-02 11:33:58 +02:00
Christoph Haag
acdda780b6
d/vive_controller: implement remaining "gen2" input events
...
v2: document and clarify imu sample timestamp
2020-07-01 18:36:41 +02:00
Christoph Haag
d8de19d4ae
d/vive_controller: Add and set Index "Gen2" input names
2020-07-01 18:36:41 +02:00
Jakob Bornecrantz
addeea2acf
d/psmv: When in 3dof mode return angular and linear velocities
2020-06-26 10:41:13 +01:00
Christoph Haag
2a9a14c605
d/survive: Report linear and angular velocities from survive
2020-06-26 01:41:08 +02:00
Jakob Bornecrantz
017e6738e0
d/psmv: Slightly improved locking and printing
2020-06-23 12:39:57 +01:00
Ryan Pavlik
bc6cc85e7d
xrt: Improve doxygen documentation.
2020-06-03 16:28:18 -05:00
Jakob Bornecrantz
371622c199
d/psvr: Normalize rotation
2020-06-02 13:02:04 +01:00
Christoph Haag
384114b821
d/survive: Don't invert valid position condition
2020-05-29 00:35:58 +02:00
Christoph Haag
7b2c54c223
d/survive: don't report invalid poses as valid
2020-05-28 17:37:09 +02:00
Christoph Haag
25bafd71c8
d/survive: Remove useless loop
...
We already have a SurviveSimpleObject, no need to look for it through iteration
2020-05-28 17:20:46 +02:00
Ryan Pavlik
e565ab6d0f
d/psvr: Fix warnings
2020-05-26 11:25:03 -05:00
Jakob Bornecrantz
f9e933af39
d/psmv: Transform the ball tip pose so it can be used for pointing
2020-05-25 19:50:31 +00:00
Ryan Pavlik
75d05c49de
build: Fix missed rename of config
2020-05-19 16:15:00 -05:00
Christoph Haag
854272a7d0
d/vive_controller: Don't infinitely loop in device update
...
This prevented the update thread from being joined and the driver from being destroyed.
2020-05-14 00:25:34 +02:00
Ryan Pavlik
4638b0af7b
build: Switch all CMake options to XRT_... to match what's used in source.
...
Also revise other small related parts of the build to make them more clear and consistent.
2020-05-12 11:52:51 -05:00
Christoph Haag
653ca1d39d
d/vive: Declare struct forward declaration as extern
...
Fixes build with gcc on arch.
2020-05-12 15:38:04 +02:00
Christoph Haag
5908c33439
d/survive: Add survive driver
2020-05-09 13:12:06 +00:00
Christoph Haag
aaa2f0a0bd
d/vive_controller: read from usb with timeout
...
This aligns with the vive HMD driver and fixes high CPU usage.
2020-05-07 21:24:43 +02:00
Christoph Haag
dc4dcf15a9
d/vive_controller: Fix left index controller imu
...
The IMU in the left index controller has a different orientation
than the right one.
2020-05-05 19:50:20 +00:00
Christoph Haag
f8b2e179cb
d/vive_controller: index controller trackpad: send 0,0 position after release
2020-05-05 14:19:37 +00:00
Christoph Haag
a1b6efd16b
d/vive_controller: Report zero values for trigger and trackpad
...
Turns out we actually want to know when theose transition into/over zero.
2020-05-04 21:25:03 +02:00
Jakob Bornecrantz
c582bde17a
d/dd: Make touchpad a single input
2020-05-03 22:58:47 +00:00
Christoph Haag
d62c2d2011
st/oxr: properly enable binding to /x and /y
...
Store Thumbstick, Trackpad etc. data internally in a vec2f.
The knowledge that a binding path ../x and ../y refers to the x and y components of this vec2f
is stored as an INPUT_REDIRECT_VEC2_X_TO_VEC1 or INPUT_REDIRECT_VEC2_Y_TO_VEC enum.
Actions now also store the index of the binding paths it matched to,
e.g. when an action binds ../trackpad/y to an input that provides bindings [../trackpad, ../trackpad/x, ../trackpad/y],
the index 2 is stored.
v2: Clarify preferred binding path index variable
2020-05-03 22:58:47 +00:00
Ryan Pavlik
ee90eb1d7e
d/vive: Fix typos
2020-04-28 16:49:13 -05:00
Ryan Pavlik
cb3096128a
d/vive: Fix build on Android NDK by switching byte order utilities.
2020-04-28 21:40:57 +00:00
Ryan Pavlik
974c68dead
xrt: Re-arrange build to avoid unnecessary includes.
...
Avoid unintentionally including cJSON from the source tree when using system,
etc. This adds granularity to the usage of "external" sources.
2020-04-28 21:36:46 +00:00
Jakob Bornecrantz
cb90837d97
d/v4l2: Add support for XRT_FORMAT_UYVY422
2020-04-28 11:46:31 +00:00
Jakob Bornecrantz
59b7794172
xrt: Rename XRT_FORMAT_YUV422 to XRT_FORMAT_YUYV422
2020-04-28 11:46:31 +00:00
Jakob Bornecrantz
a8941859d7
d/v4l2: A bit more extra error printing
2020-04-28 11:46:31 +00:00
Christoph Haag
d4e4a690db
d/vive_controller: Add basic 3dof vive_controller_driver
...
v2: Add basic 3DOF Index Controller support
Only the "gen1" watchman usb protocol is supported (almost same as vive wand).
Note: Lighthouse v2 data is not properly ignored, the IMU data is only parsed correctly
when controller is not hit by lighthouse lasers.
Supported:
* trigger value
* trigger button
* trackpad x, y
* trackpad touch
* thumbstick x, y
* thumbstick click
* system click
* a click,
* b click
Not supported:
* trigger touch
* touchpad force
* thumbstick touch
* system touch
* a touch
* b touch
* grip squeeze
* finger tracking
2020-04-28 10:22:42 +00:00
Christoph Haag
e3b74c2e70
d/vive: Fix _json_get_string
2020-04-28 10:22:42 +00:00
Christoph Haag
04ebc42666
d/vive: Make common functions available through vive_protocol.h
...
Move common code to vive_protocol.c
2020-04-28 10:22:41 +00:00
Jakob Bornecrantz
a10e7fe968
d/psmv: Move led and rumble update to thread
2020-04-25 16:24:28 +01:00
Ryan Pavlik
fc686f27dd
d/psmv: Codespell fix
2020-04-24 15:31:51 -05:00
Ryan Pavlik
b7e28b0eb8
d/psmv: Codespell fix
2020-04-24 15:30:46 -05:00
Jakob Bornecrantz
01c479468c
d/psvr: Use the simple 3dof imu filter
2020-04-22 22:00:13 +01:00
Jakob Bornecrantz
e37d8f4cf5
xrt: Remove timestate from xrt_device interface
2020-04-16 17:29:34 +01:00
Christoph Haag
99af2b76d3
d/hdk: Remove unused, accidentally left in code
2020-04-16 14:44:54 +02:00
Christoph Haag
511dd78376
d/hdk: Poll imu in thread & drain queue on every poll
...
Fix #67
2020-04-16 00:24:59 +02:00
Jakob Bornecrantz
452c1c0ba3
d/v4l2: Tweaks for the ELP stereo camera
2020-04-10 12:29:21 +00:00
Jakob Bornecrantz
de20d87f87
xrt: Make it possible for the prober to pass in JSON data to the drivers
2020-04-10 12:29:21 +00:00
Lubosz Sarnecki
65d6ade6f3
d/ns: Remove redundant semicolons.
...
As found by C++ pedantic warnings.
2020-03-31 18:26:56 +02:00
Jakob Bornecrantz
a8a4d8c3dd
d/arduino: Add new flexible arduino based input device
2020-03-27 10:22:19 +00:00
Ryan Pavlik
4c54ccd0fb
d/psmv: Switch to using pre-filter
2020-03-26 12:00:26 +00:00
Ryan Pavlik
98ad405d59
d/psmv: Use all 6 calibration measurements to compute accel bias.
2020-03-26 12:00:26 +00:00
Jakob Bornecrantz
dd5246ceaf
d/dd: Use new pre-filter and 3DOF fusion, also tidy driver.
2020-03-25 13:58:51 +00:00
Jakob Bornecrantz
2a68f3c9d3
d/dd: Give correct delta into math_quat_integrate_velocity
2020-03-25 13:58:51 +00:00
Jakob Bornecrantz
99eda56d39
d/vive: Use new 3DOF fusion
2020-03-25 13:58:51 +00:00
Pete Black
b6613db5d4
d/dd: Add Daydream driver
2020-03-11 21:36:49 +00:00
Jakob Bornecrantz
a03d1fbf97
d/rs: Use realsense2::realsense2 in cmake
...
Not sure if this is the correct thing todo as the librealsense example
doesn't use the realsense2::realsense2 form.
https://github.com/IntelRealSense/librealsense/blob/master/examples/cmake/CMakeLists.txt
2020-03-05 17:27:08 +00:00
Ryan Pavlik
92205ab5be
build: Refactor CMake build to use static libraries instead of object bundles.
...
This allows transitive dependencies to work easier and improves compatibility.
It takes a little bit more storage at build time, and possibly a little extra time.
2020-03-04 11:15:35 +00:00
Ryan Pavlik
f3eac87504
xrt: Correct usage of XRT_MAYBE_UNUSED on functions.
...
It shouldn't be used on a function marked "static inline" - that's
sufficient to avoid the warning. So, it should almost never be in
a header.
2020-03-04 11:15:35 +00:00
Jakob Bornecrantz
d2126882f6
d/rs: Add missing include
2020-03-04 11:15:35 +00:00
Ryan Pavlik
443528030d
d/psmv: Add missing include
2020-03-04 11:15:35 +00:00
Ryan Pavlik
601a079387
d/hydra: Add missing include
2020-03-04 11:15:35 +00:00
Ryan Pavlik
0cb53a8c53
d/vive: Add missing include
2020-03-04 11:15:35 +00:00
Ryan Pavlik
2c271048c0
d/dummy: Fix typo in comment
2020-03-04 11:15:35 +00:00
Jakob Bornecrantz
0619190d2b
build: Refactor how config defines are handled
...
With loads of changes from Ryan.
2020-03-03 10:33:14 +00:00
Ryan Pavlik
8f0082e810
drivers: Clean up documentation.
...
Making the Modules page in Doxygen more consistent.
2020-03-02 12:35:49 -06:00
Jakob Bornecrantz
b05cf3667a
d/v4l2: Use timeval conversion function
2020-02-27 13:55:58 +00:00
Christoph Haag
7403d45133
d/ohmd: Add quirk to rotate WVR2 display left
...
OpenHMD can't easily tell us the WVR SKU because it has to read it
from the config after opening the device, while the product string
is set at device list time.
As a workaround, recognize the WVR2 by its resolution.
2020-02-18 00:33:59 +01:00
Jakob Bornecrantz
a4ed39bf65
d/ohmd: Select correct pano_warp_scale
2020-02-15 16:03:13 +00:00
Jakob Bornecrantz
f974301877
d/rs: Process frame does not take ownership of the frame
2020-02-12 14:16:39 +00:00
Jakob Bornecrantz
42df1aab20
d/ns: Tidy code
2020-02-12 12:22:21 +00:00
Jakob Bornecrantz
eee034c18d
d/ns: Remove unused file
2020-02-12 12:22:08 +00:00
Jakob Bornecrantz
68422f6e3e
d/ns: Fix all warnings and tidy code
2020-02-12 12:22:08 +00:00
Nova
d4e034dd44
d/ns: Greatly extend the North Star driver
2020-02-12 12:22:07 +00:00
Jakob Bornecrantz
fd9cef6493
d/vive: Use proper external include in meson
2020-02-10 20:38:19 +00:00
Jakob Bornecrantz
937e6fafb7
d/ns: Use RealSense 6DOF for tracking if available
2020-02-10 20:07:31 +00:00
Jakob Bornecrantz
b75ac54fe6
d/ns: Only create a North Star hmd if config path is set
2020-02-10 20:07:31 +00:00
Jakob Bornecrantz
d6d934e35f
d/rs: Meson build
2020-02-10 20:07:31 +00:00
Jakob Bornecrantz
53201debdc
d/rs: Add a simple pure 6DOF device, for the T26[1|5] devices
2020-02-10 20:07:31 +00:00
Ryan Pavlik
84dfbf241f
d/vive: Fix typo.
2020-01-31 10:47:52 +01:00
Jakob Bornecrantz
fca0513b4e
d/v4l2: Print out the card name during debugging
2020-01-26 19:37:37 +00:00
Jakob Bornecrantz
e74fab4d14
d/ns: Correct directory in documentation
2020-01-26 17:04:34 +00:00
Jakob Bornecrantz
1bcf13ba7e
u/mesh: Refactor and document
2020-01-26 16:00:14 +00:00
Jakob Bornecrantz
62addc7a9f
d/ns: Add stub mesh generation code
2020-01-25 17:32:32 +00:00
Nova
981fe55a27
d/ns: Add North Star stub driver
2020-01-25 17:06:51 +00:00
Jakob Bornecrantz
260a0279aa
d/dummy: Track pose
2020-01-25 16:40:09 +00:00
Jakob Bornecrantz
d305f773ea
d/ohmd: Do not open External Device by default
2020-01-25 14:42:02 +00:00
Jakob Bornecrantz
356e4c18c1
d/dummy: Add dummy HMD driver
2020-01-25 14:42:02 +00:00
Jakob Bornecrantz
a48d5bb835
d/vive: Also rotate acceleration
2020-01-24 21:43:32 +00:00
Jakob Bornecrantz
b3e84f9041
xrt: Make sure that auto probers can add non-HMD devices after a HMD has been found
2020-01-23 15:51:36 +00:00
Jakob Bornecrantz
c2560ae6d2
xrt: Switch to new quirking sink
...
This is done in one commit as split out they would leave the code
in a fairly broken state.
2020-01-17 14:31:50 +00:00
Jakob Bornecrantz
4024bd454a
xrt: Expose the name of the frameserver source
2020-01-17 14:31:45 +00:00
Samantha Bowen
14bfd17f39
d/ohmd: Add position tracking.
2020-01-15 21:07:05 +00:00
Ryan Pavlik
130a649f92
build: Move checking of sufficient enabled drivers to the drivers dir
2020-01-14 11:51:12 -06:00
Ryan Pavlik
d03db42075
d/hdk: Does not require hidapi
2020-01-14 11:51:12 -06:00
Jakob Bornecrantz
382813edd6
d/vive: Dump JSON config on debug instead of spew
2020-01-14 15:59:41 +00:00
Jakob Bornecrantz
8ded6bac8b
d/vive: Extract lighthouse data
2020-01-14 15:59:41 +00:00
Jakob Bornecrantz
3f9d94cb8a
d/psmv: Mark ball pose as active depending on tracking
2020-01-13 21:59:37 +00:00
Ryan Pavlik
ae466ce70e
d/vive: Fix typos.
2020-01-09 16:32:18 -06:00
Jakob Bornecrantz
b816afce63
d/vive: Extract Index canting parameter from the config
2020-01-09 15:22:14 +00:00
Ryan Pavlik
290bd7937b
d/vive: Port to cJSON.
...
Replacing nxjson because of license issues: upstream of nxjson is LGPL3.
2020-01-09 15:21:04 +00:00
Jakob Bornecrantz
d6ca37bc70
d/vive: Set last acc and gyro values
2020-01-09 15:21:04 +00:00
Jakob Bornecrantz
8306e00bd1
d/vive: Apply all axis flip after scale and bias
2020-01-09 15:21:04 +00:00
Jakob Bornecrantz
995ecfaac2
d/vive: Tidy IMU code
2020-01-09 15:21:04 +00:00
Jakob Bornecrantz
4895ab704c
d/vive: Tidy and refactor config parsing
2020-01-09 15:21:04 +00:00
Jakob Bornecrantz
ba104f59f3
d/vive: Tidy motherboard thread
2019-12-22 14:08:14 +00:00
Jakob Bornecrantz
85197f1584
d/vive: Tidy sensors thread
2019-12-22 14:08:14 +00:00
Jakob Bornecrantz
784b53ded2
d/vive: Spew instead of debug vive_device_update_inputs
2019-12-22 13:35:37 +00:00
Ryan Pavlik
c92590930d
d/vive: clang-tidy
2019-12-07 18:25:37 +00:00
Ryan Pavlik
5772f86292
d/psvr: clang-tidy
2019-12-07 18:25:36 +00:00
Ryan Pavlik
a36d351a18
d/psmv: clang-tidy
2019-12-07 18:25:36 +00:00
Ryan Pavlik
c9f1b2be4b
d/vive: Port realloc to helper macro
2019-12-07 18:24:56 +00:00
Ryan Pavlik
2d86dfd560
d/v4l2: Type safety fixes and realloc porting
2019-12-07 18:24:56 +00:00
Ryan Pavlik
e11eb0203f
d/vive: Initializer order fix
2019-12-07 18:24:56 +00:00
Ryan Pavlik
282f38ca62
d/vive: Type safety fix
2019-12-07 18:24:52 +00:00
Ryan Pavlik
be8530db74
d/psvr: Type correctness fixes
2019-12-07 18:21:28 +00:00
Ryan Pavlik
a7a7545d0d
d/psmv: Casting/type safety fixes
2019-12-07 18:21:22 +00:00
Ryan Pavlik
86db0622f9
d/vive: Split nxjson sources from vive sources
2019-12-07 18:21:17 +00:00
Ryan Pavlik
7ca4fb34d5
d/v4l2: typo fix
2019-12-03 09:39:06 -06:00
Jakob Bornecrantz
ee3d9d08f6
u/time: Send in a pointer to pointer to the timekeeping destroy function
2019-11-15 20:30:01 +00:00
Jakob Bornecrantz
76445c8fe9
d/psvr: Fix use after free of timekeeping
2019-11-15 15:23:25 +00:00
Jakob Bornecrantz
b33811930b
d/psvr: Get data info packet 0x82
2019-11-15 14:55:18 +00:00
Ryan Pavlik
21352ca338
t_imu: Add param for accelerometer output
2019-11-14 12:14:58 +00:00
Ryan Pavlik
29c630cec8
d/psvr: Port PSVR to use timestamps
2019-11-14 12:14:58 +00:00
Ryan Pavlik
194938c405
d/psmv: Port positional tracking to use t_imu_fusion with timestamps
2019-11-14 12:14:58 +00:00
Ryan Pavlik
aaf08a2abd
d/psmv: Porting to changed API that uses timestamps instead of dt
2019-11-14 12:14:58 +00:00
Ryan Pavlik
ca7397be45
d/psmv: Initial port to imu fusion for orientation-only
2019-11-14 12:14:58 +00:00
Ryan Pavlik
e44dd1a755
d/vive: Use define for standard gravity
2019-11-11 17:57:40 -06:00
Drew DeVault
4c7f830ea5
d/vive: reset orientation on headset button
2019-11-07 09:39:33 -05:00
Jakob Bornecrantz
1f02c54858
d/vive: Fix copy typo
2019-11-07 13:45:56 +00:00
Lubosz Sarnecki
2ffa77d923
d/vive: Handle error when config could not be read.
2019-11-07 14:16:09 +01:00