Commit graph

1033 commits

Author SHA1 Message Date
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
Lubosz Sarnecki db1e5b9f16 d/vive: Initialize useful defaults.
This initializes default values in the display, distortion and IMU
properties so the runtime is happy in case the JSON config could not be
read.

This patch also moves default value initialization for the Index
into one place with the others, for cases we do not have the data.
2019-11-07 14:16:09 +01:00
Jakob Bornecrantz e7e550fa8d d/psmv: Fix build 2019-11-06 19:51:24 +00:00
Jakob Bornecrantz a54cdb2632 d/psvr: Can we get some info out of the calibration data 2019-11-06 19:50:07 +00:00
Jakob Bornecrantz 845af78c20 d/psvr: Only flip Z-axis after calibration is applied 2019-11-06 19:50:07 +00:00
Jakob Bornecrantz c60b9881e2 d/psmv: More verbose error handling 2019-11-06 19:48:01 +00:00
Jakob Bornecrantz 93218fa9e4 d/psvr: Tweak panotools values 2019-11-05 12:31:42 +00:00
Ryan Pavlik 059234bbfc d/vive: Cleanup scopes, types, leak in vive_sensors_read_config 2019-11-01 22:41:22 +00:00
Ryan Pavlik e8660a18bd build: Use CMAKE_POSITION_INDEPENDENT_CODE instead of target props.
Reduces repetitive code.
2019-11-01 16:51:54 -05:00
Drew DeVault 6bce0838e0 d/vive: Fix minor typo in vive driver 2019-11-01 14:35:41 +00:00
Christoph Haag 746cccca36 meson: HDK driver does not depend on hidapi 2019-10-31 02:26:19 +01:00
Christoph Haag 680b8971b3 d/hdk: Remove unused hidapi include 2019-10-31 01:50:30 +01:00
Jakob Bornecrantz 477e740568 d/psmv: Fix flipped bit for cross and square 2019-10-29 20:08:49 +00:00
Ryan Pavlik 56f61412f5 d/psmv: Fix possible alignment issues and endianness comments 2019-10-25 18:08:20 +01:00
Jakob Bornecrantz 06ffb8da8f d/psvr: Remove none used inbuilt mesh 2019-10-25 13:05:54 +00:00
pblack 73420739d9 d/psvr: Adjust values and remove comments 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz c5e1511271 d/psvr: Use new mesh distortion generator functions 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz be712c7049 d/ohmd: Use mesh shader for none distortion 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz c906caabf4 d/psvr: Disable mesh distortion 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz babd3af4ae d/psvr: Add link to documention 2019-10-25 12:32:40 +01:00
Jakob Bornecrantz b9e1ca6e55 d/psvr: Document calibration data getting process better 2019-10-25 12:27:54 +01:00
Jakob Bornecrantz fda43c5a19 d/psvr: Add code to get device name and calibration data 2019-10-25 11:11:45 +01:00
Jakob Bornecrantz 6580e3ee3f d/psmv: Use U_ZERO 2019-10-24 22:45:07 +01:00
Jakob Bornecrantz 6bfb1d9110 d/psmv: Fix buttons parsing 2019-10-24 22:16:40 +01:00
Jakob Bornecrantz aa52da072f xrt: Remove relation input type 2019-10-24 21:51:07 +01:00
Jakob Bornecrantz 8f6da565e2 d/v4l2: Align up the buffer size 2019-10-24 16:43:45 +01:00
Jakob Bornecrantz 6b99e2fbdc d/psvr: Add new imu code, but it's stubbed out... Unless? 2019-10-22 19:51:24 +01:00
Jakob Bornecrantz 35ae8f31ce d/vive: Add some variable tracking 2019-10-22 18:52:52 +01:00
Lubosz Sarnecki 5becb60714 d/vive: Use different device string for each variant. 2019-10-22 19:18:47 +02:00
Lubosz Sarnecki 02dc839ca8 d/vive: Add initial support for the Valve Index. 2019-10-22 19:18:47 +02:00
Lubosz Sarnecki 2ed3109c95 d/vive: Add initial support for Vive Pro. 2019-10-22 19:18:47 +02:00
Lubosz Sarnecki e063e8245e d/vive: Add native driver for the Vive.
This adds a driver for the Vive family of devices based on Philipp
Zabel's ouvrt.
The driver currently only handles the IMU and main board report streams,
but is able to acquire the JSON configuration and utilize it for IMU
calibration as well as distortion configuration.
2019-10-22 19:18:47 +02:00
pblack e32902843c comp: Add chromatic aberration correction to mesh 2019-10-22 14:44:26 +01:00
Jakob Bornecrantz 0b16e1e94d d/v4l2: Set the timestamp 2019-10-22 09:44:39 +01:00
Jakob Bornecrantz 4d0b2f0b81 d/v4l2: Better control quirking tools 2019-10-21 17:21:28 +01:00
Jakob Borncrantz d245fc33c9 d/ohmd: Add variable tracking 2019-10-15 21:00:12 +02:00
Lubosz Sarnecki 6ec8721899 xrt: Add num_devices to prober found interface.
In order to access multiple devices the prober found interface needs to
pass the length of the device list. This patch updates the found
interface in all drivers.
2019-10-11 15:56:20 +01:00
Lubosz Sarnecki 3e8bd73e34 d/hdk: Use float to avoid implicit cast. 2019-10-11 15:55:18 +01:00
Jakob Bornecrantz fece0458b6 t/psmv: Make it possible to get the tracked ball pose 2019-10-11 15:40:42 +01:00
pblack 1dacea071d d/psvr: Add hacked mesh distortion 2019-10-10 13:28:01 +01:00
Jakob Bornecrantz 473047962f d/psvr: Correct screen size 2019-10-08 11:19:14 +01:00
Ryan Pavlik 5d9311bd30 d/psmv: Fix size of tracking ball. 2019-10-07 12:39:56 +00:00
Jakob Bornecrantz 3bee6e3a8b d/ohmd: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 30de1d0928 d/psvr: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 216f7df355 d/ohmd: Less distorted view on external device 2019-09-27 20:28:04 +01:00
Jakob Bornecrantz 765d263b96 d/psvr: Use os_nanosleep 2019-09-27 11:44:54 +01:00
Drew DeVault 064aef3526 build: port to meson 2019-09-26 15:05:22 +00:00
Jakob Bornecrantz 9c7c818637 d/v4l2: Use more portable sysconf(_SC_PAGESIZE) 2019-09-26 16:03:48 +01:00
Jakob Bornecrantz 871b06cd72 aux/tracking: Add stub PSVR tracker 2019-09-22 11:50:34 +01:00
Jakob Bornecrantz a4ee0dd838 d/psvr: Use tracking interface 2019-09-21 19:02:13 +01:00
Jakob Bornecrantz b47efb1520 d/psmv: Use tracking interface 2019-09-21 18:33:45 +01:00
Jakob Bornecrantz 387bc123f8 xrt: Expand tracking interface 2019-09-21 18:22:06 +01:00
Jakob Bornecrantz 046c9e18b9 d/psmv: Fix timestamp parsing (ZCM2) 2019-09-20 12:06:58 +01:00
Ryan Pavlik 63d62cf4fe d/psmv: Fix timestamp parsing (ZCM1) 2019-09-20 12:06:48 +01:00
Lubosz Sarnecki 9dec3dda81 drv_psvr: Fix prototype warnings in clang. 2019-09-20 10:14:49 +02:00
Jakob Bornecrantz ff341e43f0 d/psvr: Use standard gravity value 2019-09-16 16:36:54 +01:00
Jakob Bornecrantz d3eb48ada4 d/psmv: Normalize acceleration to gravity 2019-09-16 16:36:48 +01:00
Jakob Bornecrantz 46389cd6ae xrt: Send in real prober to auto probers 2019-09-15 23:24:58 +01:00
Jakob Bornecrantz 59a2b87c43 d/psmv: Tidy code and add some comments 2019-09-15 23:22:25 +01:00
Jakob Bornecrantz d4e139f09e d/psmv: Use gyro_bias from calibration data on ZCM2 2019-09-15 23:22:25 +01:00
Jakob Bornecrantz 548f4edee3 d/psmv: Don't use the copy sample on ZCM2 2019-09-15 23:22:25 +01:00
Jakob Bornecrantz ee5fe9a4e5 d/psmv: Even more tidy 2019-09-15 15:43:57 +01:00
Jakob Bornecrantz 0641342b7d d/psmv: Tidy driver 2019-09-15 15:29:47 +01:00
Jakob Bornecrantz 3d744c5959 d/psmv: Add support for ZCM2 2019-09-15 15:29:45 +01:00
Jakob Bornecrantz e98fb81c56 d/psmv: Make calibration values slight more readable 2019-09-15 15:29:43 +01:00
Jakob Bornecrantz 7dcfe5ca50 d/psmv: Flip axis once more 2019-09-15 15:29:41 +01:00
Jakob Bornecrantz 932b8dfd70 d/psmv: Refactor calibration and make room for ZCM2 2019-09-15 12:28:53 +01:00
Jakob Bornecrantz b5c7f080de d/psmv: Use new thread helper to create a pulling thread 2019-09-13 22:17:34 +01:00
Jakob Bornecrantz e82f3616c9 d/psmv: Tick time 2019-09-11 22:21:53 +01:00
Jakob Bornecrantz b5c37bcf10 d/psmv: Don't force sending of update packet when setting output 2019-09-11 22:21:53 +01:00
Jakob Bornecrantz 523c9980c9 d/psmv: Super simple sensor "fusion" 2019-09-11 22:21:53 +01:00
Jakob Bornecrantz 1488dcf579 d/psmv: Add stub update fusion function 2019-09-11 22:21:53 +01:00
Jakob Bornecrantz d2acc9d6e4 d/psmv: Also set gyro data 2019-09-11 22:20:22 +01:00
Jakob Bornecrantz c5e5c98c9c d/psmv: Shouldn't negate Z-axis in gyro calibration data 2019-09-11 22:20:20 +01:00
Jakob Bornecrantz 5b02974ae0 d/psmv: Correctly handle z-axis 2019-09-11 16:43:09 +01:00
Jakob Bornecrantz e179349644 d/psvr: Super simple sensor "fusion" 2019-09-11 16:43:09 +01:00
Jakob Bornecrantz 750b8bb755 d/psvr: Expose more data via variable code 2019-09-11 16:43:09 +01:00
Jakob Bornecrantz c2c230b3de d/psvr: Refactor and improve packet reading 2019-09-11 16:43:09 +01:00
Jakob Bornecrantz bf9bcf8e26 d/psvr: Read sensor packets when updating input 2019-09-11 16:43:09 +01:00
Jakob Bornecrantz 94d4822afb d/psmv: Use correct calibration value 2019-09-08 10:01:55 +01:00
Jakob Bornecrantz 3b1abffa2d xrt: Refactor frameserver start stream arguments 2019-09-07 14:34:20 +01:00
Jakob Bornecrantz 1b35846506 d/psmv: Expose more variables and add gui annotations 2019-09-07 14:34:20 +01:00
Jakob Bornecrantz 2a6e194b2d d/psmv: Improve accelerometer adjustment 2019-09-06 19:14:12 +01:00
Jakob Bornecrantz 2e5c8f43a0 d/psmv: Export a whole lot more variables 2019-09-06 19:14:12 +01:00
Jakob Bornecrantz 9cf6108899 aux/util: Add more types to variable tracker 2019-09-06 18:12:15 +01:00
Jakob Bornecrantz 3f13224502 d/psmv: Fix strict aliasing warnings when compiling with optimisations 2019-09-06 15:46:17 +01:00
Jakob Bornecrantz d6465bc017 d/psvr: Enable by default 2019-09-06 14:37:45 +01:00
Jakob Bornecrantz 8570493db1 d/psvr: Add variable tracking 2019-09-06 14:37:45 +01:00
Jakob Bornecrantz 9192c9c6b5 d/psmv: Add variable tracking 2019-09-06 14:37:45 +01:00
Jakob Bornecrantz 676bc81f40 d/v4l2: Add variable tracking 2019-09-06 14:37:45 +01:00
Jakob Bornecrantz 58008d2ff1 d/psmv: Return error code 2019-09-05 22:18:14 +01:00
Jakob Bornecrantz 1ae8acc71c d/psmv: Read calibration data 2019-09-05 17:24:57 +01:00
Jakob Bornecrantz 29b1713be9 xrt: Add enum xrt_device_name so that state trackers can reason about device 2019-09-04 12:47:18 +01:00
Jakob Bornecrantz a0f2793457 xrt: It's a cross not a x 2019-09-03 15:26:10 +01:00
Jakob Bornecrantz cfa89b84c1 d/psmv: Tidy doc 2019-08-27 09:04:03 +01:00
Jakob Bornecrantz 1e93ba2461 xrt: Refactor frame interface 2019-08-27 08:17:21 +01:00
Jakob Bornecrantz 98d7c3542c d/v4l2: Minor fixes 2019-08-27 08:17:21 +01:00
Ryan Pavlik 12de62fdbc d/psmv: Fix typo in bit mask.
Found by clang-tidy.
2019-08-21 14:28:54 -05:00
Jakob Bornecrantz c8f16be641 xrt: Refactor out frame from frameserver 2019-08-20 12:35:55 +01:00
Ryan Pavlik ca47a216c3 d/psmv: Minor clang-tidy fixes 2019-08-16 17:25:29 -05:00
Ryan Pavlik eef6d87da4 d/v4l2: Minor clang-tidy fixes 2019-08-16 17:25:29 -05:00
Ryan Pavlik 6088402605 d/psvr: Fix narrowing conversions 2019-08-16 10:45:26 -05:00
Ryan Pavlik 261b9125f6 d/hdk: Use string descriptor to guess at revision 2019-08-15 12:36:01 +00:00
Ryan Pavlik 853f8ab68e d/hdk: Port to internal HID wrapper.
Not entirely feature-complete due to lack of access to descriptor strings.
2019-08-15 12:36:01 +00:00
Ryan Pavlik 2cd28914c7 d/hydra: Initially-functional multi-device Razer Hydra driver.
Not pretty - no filtering on tracking, coordinate system
probably a little bit wrong still, no hemisphere tracking,
but enough to show movement and resizing in hello_xr.
2019-07-29 03:01:57 +00:00
Jakob Bornecrantz fb24bb979f d/hdk: Fix warnings during release builds 2019-07-25 00:53:04 +01:00
Jakob Bornecrantz 4237b97d37 d/v4l2: Add control functions and expand PS4 quirk 2019-07-24 19:49:48 +01:00
Jakob Bornecrantz 718a81608a d/v4l2: Add new frameserver 2019-07-23 17:41:34 +01:00
Jakob Bornecrantz 35093bee3c d/psmv: Use new prober function helpers 2019-06-30 14:35:27 +01:00
Jakob Bornecrantz cc83b93733 d/psmv: Add helper function to convert value to u8 2019-06-28 18:32:30 +01:00
Ryan Pavlik 1f84814721 st/prober: Allow "found" functions called by prober to make more than one device. 2019-06-22 11:34:51 +01:00
Jakob Bornecrantz 0fa7af1dd2 d/psvr: Set name of PSVR headset 2019-06-21 21:55:43 +01:00
Ryan Pavlik 3cc7ee872a d/psmv: Fix typo 2019-06-21 13:17:55 -05:00
Jakob Bornecrantz 542208bd42 d/ohmd: Fix warning by including right header 2019-06-19 16:45:10 +01:00
Caleb Szalacinski 6664588eba Added a delay quirk to allow the Oculus Rift CV1 to initialize properly. 2019-06-18 20:36:43 -05:00
Ryan Pavlik 3de9b08ebc d/psmv: Use U_ZERO 2019-06-18 14:14:01 -05:00
Ryan Pavlik 2175a4226b d/psvr: Use U_ZERO 2019-06-18 14:14:01 -05:00
Ryan Pavlik 287bd1cb06 d/ohmd: Cast bitmask enum 2019-06-18 18:43:20 +00:00
Ryan Pavlik 839d08616e drv/psvr: Fix some enum casting build errors 2019-06-18 18:43:20 +00:00
Ryan Pavlik fbfee92601 d/oh: Have prober include interface header
Without this, the implementation definition might drift from the declaration,
and it doesn't get its extern "C"-ness.
2019-06-18 13:32:07 -05:00
Ryan Pavlik 0472bef1fa d/hdk: Have prober include interface header
Without this, the implementation definition might drift from the declaration,
and it doesn't get its extern "C"-ness.
2019-06-18 13:31:32 -05:00
Ryan Pavlik de0506fb0c d/oh: Codespell fix 2019-06-18 13:09:59 -05:00
Ryan Pavlik aeff374fcb d/psvr: Codespell fix 2019-06-18 13:09:59 -05:00
Jakob Bornecrantz b71e143eaa d/psmv: Add PS Move driver 2019-06-18 17:56:10 +01:00
Jakob Bornecrantz 89d8315b3b xrt: Add output interfaces 2019-06-10 14:47:19 +01:00
Jakob Bornecrantz 1f64f714f6 xrt: Add input, hmd_parts and tracking interface
This patch has been spun of the rather massive amount of work for adding input
devices into Monado. The interfaces feels somewhat stable now so could do
with another pair of eyes on them, before too much work is done on st/oxr.
2019-06-10 14:47:19 +01:00
Jakob Bornecrantz 42cddb2580 d/psvr: Add a experimental PSVR driver
Hidden behind a env variable.
2019-05-06 16:46:10 +00:00
Jakob Bornecrantz dc9ab44a5a xrt: Rename xrt_prober to xrt_auto_prober 2019-05-03 18:53:07 +01:00
Jakob Bornecrantz c8cdf3ee38 d/ohmd: Tidy code style 2019-04-30 14:02:00 +01:00
Jakob Bornecrantz 9c05e853cc build: Refactor flags and definitions (and fix fallout)
Defines:
* XRT_HAVE_[name] is a external dep indicator.
* XRT_DRIVER_[name] if a internal driver is built.

CMake variables:
* BUILD_WITH_[name] is a external dep indicator.
* BUILD_DRIVER_[name] tells if we should build a specific driver.
2019-04-29 17:18:09 +01:00
Jakob Bornecrantz 831b52f71e d/ohmd: Refactor quirking some more 2019-04-27 09:21:12 +01:00
Jakob Bornecrantz 8675142e32 d/ohmd: Refactor quirking code 2019-04-27 09:06:33 +01:00
Jakob Bornecrantz 79d7555449 d/ohmd: Make rotate in be more correct 2019-04-27 08:32:44 +01:00
Jakob Bornecrantz e39260eb67 d/ohmd: Add quirk for PSVR
The OpenHMD driver does not have any sensible panotools values
2019-04-19 14:56:47 +01:00
Jakob Bornecrantz ab6defc610 d/*: Add a bit of documentation organization 2019-04-12 14:08:46 +01:00
Ryan Pavlik 5cfa0907b6 build: Use and obey config options for driver selection.
We had BUILD_WITH_OPENHMD but it was unused,
while the HDK driver always built if the deps were found.
2019-04-08 19:11:04 +00:00
Christoph Haag 55ec276810 d/ohmd: Set xrt_device name to name from OpenHMD 2019-04-05 09:52:29 +01:00
Jakob Bornecrantz e4a016f4d6 d/hdk: Tidy code style 2019-04-03 17:00:43 +01:00
Jakob Bornecrantz 5d5d420fb6 d/hdk: Fix unhandled case warnings 2019-03-27 17:34:46 +00:00
Ryan Pavlik dc990a8e77 d/hdk: Adjust timestamp for latency, based on experiments. 2019-03-27 16:22:45 +00:00
Jakob Bornecrantz bf2eae1524 d/hdk: Tidy code style 2019-03-27 13:36:30 +00:00
Ryan Pavlik 605005b7c2 oh: Compare current and previous quaternion to detect old data.
Bitwise comparison because we have no timestamp to check.
2019-03-25 16:37:12 -05:00
Ryan Pavlik cfb315d714 oh: Use finite differencing to find ang velocity.
Only if we can't get it from OpenHMD directly,
and only if not disabled explicitly.
2019-03-25 12:28:54 -05:00
Ryan Pavlik 9004ea80bb xrt: Devices get a timekeeping object, must return a timestamp.
Updates drivers to match.
2019-03-25 12:28:54 -05:00
Ryan Pavlik 294be21392 d/oh: Populate nominal frame interval 2019-03-25 12:28:54 -05:00
Ryan Pavlik 3e7b9169d6 d/hdk: Populate nominal frame interval 2019-03-25 12:28:54 -05:00
Ryan Pavlik a06a9eaac2 hdk: Skip apparent matches that have weird USB props. 2019-03-22 17:05:02 -05:00
Ryan Pavlik f7d990c7e3 xrt: Use U_TYPED_CALLOC 2019-03-22 13:47:51 -05:00
Ryan Pavlik 142a9a77eb d/hdk: clarify display transforms and add an ifdef to not rotate. 2019-03-22 17:35:18 +00:00
Ryan Pavlik 3a1a120238 d/hdk: Fix orientation and angular velocity of tracker 2019-03-22 17:35:18 +00:00
Ryan Pavlik 32fd930ada d/hdk: Neatly handle disconnects 2019-03-22 17:35:18 +00:00
Ryan Pavlik 9d0888cd7d d/hdk: Harden against USB issues in prober. 2019-03-22 17:35:18 +00:00
Ryan Pavlik b74e7c74e2 d/hdk: Handle more models 2019-03-22 17:35:18 +00:00
Ryan Pavlik d1ec5fa66a oh: Fix type issues 2019-03-22 16:54:14 +00:00
Lubosz Sarnecki a87e6e664e oh: Initialize VIVE distortion parameters with default values from my VIVE. 2019-03-18 14:45:31 +01:00
Jakob Bornecrantz 15a97422ba xrt: Add all of Monado 2019-03-18 05:52:32 +00:00