Monado OpenXR Runtime
wmr_source Struct Reference

Handles all the data sources from the WMR driver. More...

Inheritance diagram for wmr_source:
Collaboration diagram for wmr_source:

Data Fields

struct xrt_fs xfs
 
struct xrt_frame_node node
 
enum u_logging_level log_level
 Log level. More...
 
struct wmr_hmd_config config
 
struct wmr_cameracamera
 
struct xrt_frame_sink cam_sinks [4]
 Intermediate sinks for camera frames. More...
 
struct xrt_imu_sink imu_sink
 Intermediate sink for IMU samples. More...
 
struct xrt_slam_sinks in_sinks
 Pointers to intermediate sinks. More...
 
struct xrt_slam_sinks out_sinks
 Pointers to downstream sinks. More...
 
struct u_sink_debug ui_cam_sinks [4]
 Sink to display camera frames in UI. More...
 
struct m_ff_vec3_f32gyro_ff
 Queue of gyroscope data to display in UI. More...
 
struct m_ff_vec3_f32accel_ff
 Queue of accelerometer data to display in UI. More...
 
bool is_running
 Whether the device is streaming. More...
 
bool first_imu_received
 Don't send frames until first IMU sample. More...
 
timepoint_ns last_imu_ns
 Last timepoint received. More...
 
time_duration_ns hw2mono
 Estimated offset from IMU to monotonic clock. More...
 
time_duration_ns cam_hw2mono
 Caches hw2mono for use in the full frame bundle. More...
 
- Data Fields inherited from xrt_fs
char name [512]
 Name of the frame server source, from the subsystem. More...
 
char product [32]
 Frame server product identifier, matches the prober device. More...
 
char manufacturer [32]
 Frame server manufacturer, matches the prober device. More...
 
char serial [32]
 Frame server serial number, matches the prober device. More...
 
uint64_t source_id
 All frames produced by this frameserver are tagged with this id. More...
 
bool(* enumerate_modes )(struct xrt_fs *xfs, struct xrt_fs_mode **out_modes, uint32_t *out_count)
 Enumerate all available modes that this frameserver supports. More...
 
bool(* configure_capture )(struct xrt_fs *xfs, struct xrt_fs_capture_parameters *cp)
 Set the capture parameters, may not be supported on all capture devices. More...
 
bool(* stream_start )(struct xrt_fs *xfs, struct xrt_frame_sink *xs, enum xrt_fs_capture_type capture_type, uint32_t descriptor_index)
 Start the capture stream. More...
 
bool(* slam_stream_start )(struct xrt_fs *xfs, struct xrt_slam_sinks *sinks)
 Setup SLAM sinks for all the sensors a SLAM implementation may supports and start the frame server stream. More...
 
bool(* stream_stop )(struct xrt_fs *xfs)
 Stop the capture stream. More...
 
bool(* is_running )(struct xrt_fs *xfs)
 Is the capture stream running. More...
 
- Data Fields inherited from xrt_frame_node
struct xrt_frame_nodenext
 
void(* break_apart )(struct xrt_frame_node *node)
 Called first in when the graph is being destroyed, remove any references frames and other objects and stop threads. More...
 
void(* destroy )(struct xrt_frame_node *node)
 Do the actual freeing of the objects. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from xrt_fs
static bool xrt_fs_enumerate_modes (struct xrt_fs *xfs, struct xrt_fs_mode **out_modes, uint32_t *out_count)
 Enumerate all available modes that this frameserver supports. More...
 
static bool xrt_fs_configure_capture (struct xrt_fs *xfs, struct xrt_fs_capture_parameters *cp)
 Set the capture parameters, may not be supported on all capture devices. More...
 
static bool xrt_fs_stream_start (struct xrt_fs *xfs, struct xrt_frame_sink *xs, enum xrt_fs_capture_type capture_type, uint32_t descriptor_index)
 Start the capture stream. More...
 
static bool xrt_fs_slam_stream_start (struct xrt_fs *xfs, struct xrt_slam_sinks *sinks)
 Setup SLAM sinks for all the sensors a SLAM implementation may supports and start the frame server stream. More...
 
static bool xrt_fs_stream_stop (struct xrt_fs *xfs)
 Stop the capture stream. More...
 
static bool xrt_fs_is_running (struct xrt_fs *xfs)
 Is the capture stream running. More...
 

Detailed Description

Handles all the data sources from the WMR driver.

Todo:
Currently only properly handling tracking cameras, move IMU and other sources here

Field Documentation

◆ accel_ff

struct m_ff_vec3_f32* wmr_source::accel_ff

Queue of accelerometer data to display in UI.

◆ cam_hw2mono

time_duration_ns wmr_source::cam_hw2mono

Caches hw2mono for use in the full frame bundle.

◆ cam_sinks

struct xrt_frame_sink wmr_source::cam_sinks[4]

Intermediate sinks for camera frames.

◆ first_imu_received

bool wmr_source::first_imu_received

Don't send frames until first IMU sample.

◆ gyro_ff

struct m_ff_vec3_f32* wmr_source::gyro_ff

Queue of gyroscope data to display in UI.

◆ hw2mono

time_duration_ns wmr_source::hw2mono

Estimated offset from IMU to monotonic clock.

Referenced by receive_imu_sample().

◆ imu_sink

struct xrt_imu_sink wmr_source::imu_sink

Intermediate sink for IMU samples.

Referenced by receive_imu_sample().

◆ in_sinks

struct xrt_slam_sinks wmr_source::in_sinks

Pointers to intermediate sinks.

◆ is_running

bool wmr_source::is_running

Whether the device is streaming.

◆ last_imu_ns

timepoint_ns wmr_source::last_imu_ns

Last timepoint received.

Referenced by receive_imu_sample().

◆ log_level

enum u_logging_level wmr_source::log_level

Log level.

◆ out_sinks

struct xrt_slam_sinks wmr_source::out_sinks

Pointers to downstream sinks.

◆ ui_cam_sinks

struct u_sink_debug wmr_source::ui_cam_sinks[4]

Sink to display camera frames in UI.


The documentation for this struct was generated from the following file: