Commit graph

178 commits

Author SHA1 Message Date
Jakob Bornecrantz 4c6b3b4609 t/common: Fix instance get_prober function 2022-05-18 15:39:17 +01:00
Jakob Bornecrantz b180605ebe t/common: List the simulated device 2022-05-18 11:02:12 +01:00
Ryan Pavlik 54be3b958b targets: Word choice/clarity 2022-05-17 17:40:58 -05:00
Ryan Pavlik 56a1c25378 d/simulated: Rename the simulated device driver. 2022-05-17 17:39:52 -05:00
Jakob Bornecrantz 61323c32d2 xrt: Use error messages in various instance and prober functions 2022-05-17 20:10:40 +01:00
Jakob Bornecrantz 3357cd4400 t/common: Add a few builders 2022-05-17 11:20:40 +01:00
Jakob Bornecrantz 850527adc5 xrt: Add system builders and update xrt_prober interface
Aka setter uppers.
2022-05-17 11:20:40 +01:00
Jakob Bornecrantz 116d1a9bf8 xrt: Typedefs have a _t suffix 2022-05-12 11:59:12 +00:00
Jakob Bornecrantz aafbaecbc9 xrt: Remove old unused instance functions 2022-05-11 10:49:15 +01:00
Jakob Bornecrantz 1b8cbfd226 t/common: Implement xrt_instance_create_system call 2022-05-11 10:15:18 +01:00
Moses Turner ec191bd9de targets: Add DepthAI head tracker 2022-05-10 23:47:30 +01:00
Jakob Bornecrantz 175ff58f10 build: Remove meson files 2022-04-28 21:36:25 +00:00
Ryan Pavlik 3e6ec47296 monado: Apply clang-tidy fixes to most of the codebase.
All at least visually inspected, some revised from the auto-fixit
2022-04-13 09:34:54 -05:00
Moses Turner 870a2ce704 d/ht: support DepthAI cameras and Mercury hand tracking 2022-03-23 18:30:02 -05:00
Jan Schmidt 1c67a1ff52 d/wmr: Add HP Reverb G2 controller PID
Recognise the HP Reverb G2 WMR controller if it is directly
connected via bluetooth (instead of tunnelled through the
headset like it normally would be).
2021-12-13 11:47:12 +11:00
Jakob Bornecrantz 3e38ada9a5 build: s/rs/realsense/g 2021-12-07 11:26:20 +00:00
Jakob Bornecrantz 673ac5ee6c d/wmr: Add support for Samsung Odyssey controllers 2021-11-20 17:33:25 +00:00
Nima01 c4db3dfccc d/wmr: Add basic Reverb (G1, Bluetooth) motion controller support. 2021-11-18 17:19:07 +00:00
Ryan Pavlik 469b9d907d st/oxr: Rename all num_ in the state tracker, too. 2021-11-13 12:04:38 +00:00
Ryan Pavlik cc4007a69e cmake: Substantial cleanups and simplifications
We now have a cmake-format config file.
We no longer use list variables for sources, instead using
target_sources when we need to add, in accordance with current
best practice. (This makes it a lot easier to edit too.) There's no more
include_directories(), add_definitions(), or other gently-deprecated
directory-scoped commands, nor any CMake scripts that include
a parent directory reference (named targets instead)
2021-11-12 09:48:37 -06:00
Mateo de Mayo 6de1ab8f8e d/euroc: Add euroc device 2021-09-15 19:03:55 +00:00
Moses Turner 8068912953 targets: Don't probe handtracking driver 2021-09-03 21:06:18 +00:00
Mateo de Mayo 97c59bd59f d/euroc: Add EuRoC dataset reader driver.
A squash of the following commits.

d/euroc: Add Euroc driver initial boilerplate

d/euroc: Implement xrt_frame_node interface

d/euroc: Implement mainloop thread start flow

d/euroc: Parse samples from data.csv files

d/euroc: Determine dataset information at start

Also use that information to provide a xrt_fs mode and to know if
right camera images are available to use.

d/euroc: Produce frames for left and right sinks

d/euroc: Implement xrt_imu_sink

d/euroc: Implement playback properties

d/euroc: Implement pausing with UI state machine

d/euroc: Show IMU and progress data in UI

d/euroc: Make sure to give in nullptr or valid pointers to wrapL8

d/euroc: Unreference frames when done with them

d/euroc: Fix leaks with debug sinks, and work around free issue

d/euroc: Refactor playback to produce samples with current timestamps

d/euroc: Fix double free by separating debug sinks from downstream sinks
2021-08-27 18:38:40 +01:00
Jakob Bornecrantz aa3f071d2b u/trace_marker: Refactor init to fix bug 2021-06-14 19:12:14 +01:00
nima01 027ce21bd5 d/wmr: Initial 3DoF WinMR driver
Only supports HP Reverb G1 and G2 for now.

Squash of the following commits:

Initial boilerplate code for HP Reverb G1 driver implementation
Detect and open MS HoloLens Sensors interface
Power up HMD display when headset is detected, and som general code cleanup
Add Reverb G2 PID
reverb_g1: Fix defines
reverb_g1: Run clang format
wmr: Rename Reverb G1 driver to WMR driver
d/wmr: Code style
d/wmr: Flesh out driver a bit more
d/wmr: Code style
Add basic 3dof rotational tracking
d/wmr: Code style
d/wmr: More tidy
xrt: Remove XRT_DEVICE_REVERB_G1
d/wmr: Even more tidy
d/wmr: Changes for Reverb G2
d/wmr: Fixes since last commit
wmr: Fix the meson build and auto-enable the driver
d/wmr: Sleep for compositor to get modes
d/wmr: Use os_hid for control device
d/wmr: Remove hidapi as a dependancy
d/wmr: Move sensor reading to own thread and fix locking
d/wmr: Read from control device and handle more unknown messages
d/wmr: Decode IPD value from control device
d/wmr: Remove all left over dummy driver fields

Co-author: nima01 <nima_zero_one@protonmail.com>
Co-author: Jakob Bornecrantz <jakob@collabora.com>
Co-author: Jan Schmidt <jan@centricular.com>
2021-04-19 13:33:01 +00:00
Moses Turner 55b86fe815 d/ulv2: Create the driver.
Co-authored-by: Moses Turner <mosesturner@protonmail.com>
Co-authored-by: Christoph Haag <christoph.haag@collabora.com>
2021-04-01 02:10:33 +02:00
Mateo de Mayo 0340ae3cc8 d/qwerty: Add Qwerty driver initial boilerplate
The Qwerty driver will emulate an HMD and controllers through the use
of mouse and keyboard, and in particular, using the SDL key events
generated from the debug GUI.
2021-03-29 15:41:25 -03:00
Christoph Haag ff16eab9df xrt: implement multi device wrappers for tracking overrides
Example config ~/.config/monado/config_v0.json

{
	"active": "tracking",
	"tracking":	{
		"version":	0,
		"tracking_overrides": [
			{
				"target_device_serial": "LHR-E8CC625B",
				"tracker_device_serial": "LHR-1D80A098",
				"offset": {
					"orientation": {
						"x": 0,
						"y": 0,
						"z": 0,
						"w": 1
					},
					"position": {
						"x": 0,
						"y": 0,
						"z": 0
					}
				}
			}
		]
	}
}

v2: Add multi device wrapper
2021-03-02 19:43:19 +01:00
Christoph Haag 13db11901c d/rs: Add prober and create xrt_device for rs 2021-03-02 19:43:19 +01:00
Christoph Haag 279520c302 d/survive: Use autoprober interface 2021-03-02 17:50:19 +00:00
Christoph Haag 37c96ee7fb xrt: Add a static driver_name to probers 2021-03-02 17:50:19 +00:00
Jakob Bornecrantz 35da4a51ea d/vf: Refactor code to add videotestsrc capability and break out gstreamer detection 2021-02-02 13:53:48 +00:00
Jakob Bornecrantz 2b8c835b68 xrt: Introduce xrt_system_compositor 2021-01-20 15:04:09 +00:00
Jakob Bornecrantz 2b996f30c4 xrt: Reflow after column change 2021-01-15 13:50:32 +00:00
Jae Lee a71de192e0 illixr: Add initial integration. 2020-12-29 23:44:57 +00:00
Christoph Haag f0d21c1dcc d/vf: Add video file playback driver 2020-12-07 12:30:26 +00:00
Christoph Haag 717d3a27ef d/ht: Add hand tracking driver code skeleton 2020-12-07 12:30:26 +00:00
Lubosz Sarnecki f4113ef15b d/android: Add Android sensors driver. 2020-10-30 18:20:35 -05:00
Jakob Bornecrantz 3483a7286d d/remote: Add remote driver 2020-10-15 21:07:40 +00:00
Jakob Bornecrantz e8ca242967 xrt: Remove flip_y argument to native compositor creation 2020-08-06 15:14:49 +00:00
Ryan Pavlik c3552ed420 xrt: Rename xrt_gfx_fd.h to xrt_gfx_native.h 2020-07-15 17:19:30 -05:00
Ryan Pavlik 54f56716fd xrt: Rename references to compositor/swapchain/image_fd to ..._native.
Reflecting that the native buffer isn't an FD on all platforms.
2020-07-15 09:11:58 -05:00
Jakob Bornecrantz deedd10a50 xrt: Tidy xrt_instance_create argument order and add doc-comment 2020-07-08 14:41:12 +00: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
Pete Black bd5aa24463 xrt: Add multi client and overlay client support 2020-06-25 15:48:34 +01:00
Ryan Pavlik bc6cc85e7d xrt: Improve doxygen documentation. 2020-06-03 16:28:18 -05:00
Ryan Pavlik 51dba8ad94 t/common: Add a target_instance_no_comp library 2020-05-27 18:40:56 -05:00
Ryan Pavlik 6c77b8d314 t/common: Replace references to xrt_prober_create 2020-05-27 18:40:56 -05: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
Ryan Pavlik 4dd7a603f4 xrt: Temporarily fix build broken by layer violation. 2020-05-12 11:52:51 -05:00
Christoph Haag 5908c33439 d/survive: Add survive driver 2020-05-09 13:12:06 +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
Jakob Bornecrantz 945f2c82ed targets: Move xrt_instance implementation into targets 2020-04-11 12:31:58 +01:00
Jakob Bornecrantz a8a4d8c3dd d/arduino: Add new flexible arduino based input device 2020-03-27 10:22:19 +00:00
Pete Black b6613db5d4 d/dd: Add Daydream driver 2020-03-11 21:36:49 +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
Jakob Bornecrantz 0619190d2b build: Refactor how config defines are handled
With loads of changes from Ryan.
2020-03-03 10:33:14 +00:00
Nova 981fe55a27 d/ns: Add North Star stub driver 2020-01-25 17:06:51 +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
Ryan Pavlik e8660a18bd build: Use CMAKE_POSITION_INDEPENDENT_CODE instead of target props.
Reduces repetitive code.
2019-11-01 16:51:54 -05: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
Jakob Bornecrantz d848ea010f xrt: s/XRT_BUILD_*/XRT_BUILD_DRIVER_*/g 2019-09-27 12:03:36 +01:00
Drew DeVault 064aef3526 build: port to meson 2019-09-26 15:05:22 +00:00
Jakob Bornecrantz 3d744c5959 d/psmv: Add support for ZCM2 2019-09-15 15:29:45 +01: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 58da7263f1 t/common: Fix typo in PSMV define 2019-06-28 16:53:32 +01:00
Ryan Pavlik 0d75b465bd build: Move enabled-driver defines to a header, instead of compiler options for every target. 2019-06-26 10:52:27 -05:00
Jakob Bornecrantz ec69936890 build: Revert "Only show the XRT_BUILD_ defines where they're needed."
This reverts commit 334d62dfcd.
2019-06-26 16:17:06 +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
Ryan Pavlik cfb443843f targets/common: Add comment to target_entry_list 2019-06-21 13:17:55 -05:00
Ryan Pavlik 334d62dfcd build: Only show the XRT_BUILD_ defines where they're needed. 2019-06-21 13:17:55 -05:00
Jakob Bornecrantz b71e143eaa d/psmv: Add PS Move driver 2019-06-18 17:56:10 +01:00
Jakob Bornecrantz d97df04c11 xrt: Add new prober interface and code 2019-05-16 20:41:35 +01:00