|
Monado OpenXR Runtime
|
Implementation of Blubur S1 HMD driver. More...
#include "math/m_api.h"#include "math/m_mathinclude.h"#include "math/m_clock_tracking.h"#include "util/u_device.h"#include "util/u_distortion_mesh.h"#include "util/u_misc.h"#include "util/u_time.h"#include "util/u_debug.h"#include "util/u_trace_marker.h"#include "util/u_linux.h"#include "util/u_var.h"#include "blubur_s1_interface.h"#include "blubur_s1_internal.h"#include "blubur_s1_protocol.h"
Data Structures | |
| struct | read_context |
| struct | blubur_s1_decoded_sample |
Macros | |
| #define | S1_TRACE(d, ...) U_LOG_XDEV_IFL_T(&d->base, d->log_level, __VA_ARGS__) |
| #define | S1_DEBUG(d, ...) U_LOG_XDEV_IFL_D(&d->base, d->log_level, __VA_ARGS__) |
| #define | S1_DEBUG_HEX(d, data, data_size) U_LOG_XDEV_IFL_D_HEX(&d->base, d->log_level, data, data_size) |
| #define | S1_INFO(d, ...) U_LOG_XDEV_IFL_I(&d->base, d->log_level, __VA_ARGS__) |
| #define | S1_WARN(d, ...) U_LOG_XDEV_IFL_W(&d->base, d->log_level, __VA_ARGS__) |
| #define | S1_ERROR(d, ...) U_LOG_XDEV_IFL_E(&d->base, d->log_level, __VA_ARGS__) |
| #define | VIEW_SIZE (1440) |
| #define | PANEL_WIDTH (VIEW_SIZE * 2) |
| #define | READ_STRUCTURE(ctx, dst) read_into(ctx, dst, sizeof(*dst)) |
Functions | |
| static struct blubur_s1_hmd * | blubur_s1_hmd (struct xrt_device *xdev) |
| static void | blubur_s1_hmd_destroy (struct xrt_device *xdev) |
| static xrt_result_t | blubur_s1_hmd_compute_poly_3k_distortion (struct xrt_device *xdev, uint32_t view, float u, float v, struct xrt_uv_triplet *out_result) |
| static xrt_result_t | blubur_s1_hmd_compute_test_distortion (struct xrt_device *xdev, uint32_t view, float u, float v, struct xrt_uv_triplet *out_result) |
| static xrt_result_t | blubur_s1_hmd_update_inputs (struct xrt_device *xdev) |
| static xrt_result_t | blubur_s1_hmd_get_tracked_pose (struct xrt_device *xdev, enum xrt_input_name name, int64_t at_timestamp_ns, struct xrt_space_relation *out_relation) |
| static xrt_result_t | blubur_s1_hmd_get_view_poses (struct xrt_device *xdev, const struct xrt_vec3 *default_eye_relation, int64_t at_timestamp_ns, enum xrt_view_type view_type, uint32_t view_count, struct xrt_space_relation *out_head_relation, struct xrt_fov *out_fovs, struct xrt_pose *out_poses) |
| static void | blubur_s1_hmd_fill_in_poly_3k (struct blubur_s1_hmd *hmd) |
| static void | read_into (struct read_context *ctx, void *dest, size_t size) |
| static int32_t | sign21 (uint32_t v) |
| Sign-extend a 21-bit signed integer stored in a 32-bit unsigned integer. | |
| static void | blubur_s1_decode_triad (const uint8_t b[8], int32_t out_xyz[3]) |
| Decode 3×21-bit ints from 8 bytes (little-endian packing) | |
| static void | blubur_s1_decode_sample_pack (const uint8_t sample_pack[32], struct blubur_s1_decoded_sample out_samples[2]) |
| static void | blubur_s1_convert_accel_sample (const int32_t in[3], struct xrt_vec3 *out) |
| static void | blubur_s1_convert_gyro_sample (const int32_t in[3], struct xrt_vec3 *out) |
| int | blubur_s1_hmd_tick (struct blubur_s1_hmd *hmd) |
| static void * | blubur_s1_hmd_thread (void *ptr) |
| struct blubur_s1_hmd * | blubur_s1_hmd_create (struct os_hid_device *dev, const char *serial) |
| Creates a Blubur S1 HMD device from an opened HID handle. | |
Implementation of Blubur S1 HMD driver.
|
static |
Decode 3×21-bit ints from 8 bytes (little-endian packing)
References sign21().
| struct blubur_s1_hmd * blubur_s1_hmd_create | ( | struct os_hid_device * | dev, |
| const char * | serial | ||
| ) |
Creates a Blubur S1 HMD device from an opened HID handle.
References xrt_hmd_parts::blend_modes, xrt_device::compute_distortion, xrt_device::destroy, xrt_hmd_parts::distortion, xrt_device::get_tracked_pose, xrt_device::get_view_poses, xrt_device::hmd, xrt_device::inputs, xrt_hmd_parts::models, xrt_device::name, xrt_hmd_parts::nominal_frame_interval_ns, xrt_hmd_parts::preferred, xrt_hmd_parts::screens, xrt_device::serial, xrt_device::str, xrt_device::supported, u_distortion_mesh_fill_in_compute(), u_var_add_root(), xrt_device::update_inputs, xrt_view::viewport, xrt_hmd_parts::views, and XRT_INPUT_GENERIC_HEAD_POSE.
Referenced by blubur_s1_found().
|
static |
Sign-extend a 21-bit signed integer stored in a 32-bit unsigned integer.
Referenced by blubur_s1_decode_triad().