The open source OpenXR runtime

xrt: Improve doxygen documentation.

+767 -148
+2 -1
doc/Doxyfile.in
··· 48 49 WARN_IF_UNDOCUMENTED = @DOXYGEN_WARN_UNDOCUMENTED@ 50 EXTRACT_ALL = @DOXYGEN_EXTRACT_ALL@ 51 52 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the 53 # path mentioned in the documentation of a class, which tells the reader which ··· 2243 # and usage relations if the target is undocumented or is not a class. 2244 # The default value is: YES. 2245 2246 - HIDE_UNDOC_RELATIONS = YES 2247 2248 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 2249 # available from the path. This tool is part of Graphviz (see:
··· 48 49 WARN_IF_UNDOCUMENTED = @DOXYGEN_WARN_UNDOCUMENTED@ 50 EXTRACT_ALL = @DOXYGEN_EXTRACT_ALL@ 51 + HIDE_UNDOC_RELATIONS = NO 52 53 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the 54 # path mentioned in the documentation of a class, which tells the reader which ··· 2244 # and usage relations if the target is undocumented or is not a class. 2245 # The default value is: YES. 2246 2247 + # HIDE_UNDOC_RELATIONS = YES 2248 2249 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 2250 # available from the path. This tool is part of Graphviz (see:
+1
doc/changes/xrt/mr.365.md
···
··· 1 + Improve Doxygen documentation of interfaces. Now the inheritance structure and implementation of interfaces is shown in the docs, and helper functions that call through function pointers are listed as "member functions", to help developers understand the internal structure of Monado better.
+1
src/xrt/auxiliary/os/os_ble.h
··· 20 21 22 /*! 23 * Representing a single ble notify attribute on a device. 24 * 25 * @ingroup aux_os
··· 20 21 22 /*! 23 + * @interface os_ble_device 24 * Representing a single ble notify attribute on a device. 25 * 26 * @ingroup aux_os
+4
src/xrt/auxiliary/os/os_ble_dbus.c
··· 28 * 29 */ 30 31 struct ble_notify 32 { 33 struct os_ble_device base;
··· 28 * 29 */ 30 31 + /*! 32 + * An implementation of @ref os_ble_device using a DBus connection to BlueZ. 33 + * @implements os_ble_device 34 + */ 35 struct ble_notify 36 { 37 struct os_ble_device base;
+17
src/xrt/auxiliary/os/os_hid.h
··· 21 22 23 /*! 24 * Representing a single hid interface on a device. 25 */ 26 struct os_hid_device ··· 56 * 57 * If milliseconds are negative, this call blocks indefinitely, 0 polls, 58 * and positive will block for that amount of milliseconds. 59 */ 60 static inline int 61 os_hid_read(struct os_hid_device *hid_dev, ··· 68 69 /*! 70 * Write an output report to the given device. 71 */ 72 static inline int 73 os_hid_write(struct os_hid_device *hid_dev, const uint8_t *data, size_t size) ··· 80 * 81 * If the device doesn't have more than one feature report, just request 82 * report 0. 83 */ 84 static inline int 85 os_hid_get_feature(struct os_hid_device *hid_dev, ··· 92 93 /*! 94 * Get a feature report with a timeout. 95 */ 96 static inline int 97 os_hid_get_feature_timeout(struct os_hid_device *hid_dev, ··· 107 * 108 * The first byte of the buffer is the report number, to be followed by 109 * the data of the report. 110 */ 111 static inline int 112 os_hid_set_feature(struct os_hid_device *hid_dev, ··· 118 119 /*! 120 * Close and free the given device. 121 */ 122 static inline void 123 os_hid_destroy(struct os_hid_device *hid_dev) ··· 128 #ifdef XRT_OS_LINUX 129 /*! 130 * Open the given path as a hidraw device. 131 */ 132 int 133 os_hid_open_hidraw(const char *path, struct os_hid_device **out_hid);
··· 21 22 23 /*! 24 + * @interface os_hid_device 25 + * 26 * Representing a single hid interface on a device. 27 */ 28 struct os_hid_device ··· 58 * 59 * If milliseconds are negative, this call blocks indefinitely, 0 polls, 60 * and positive will block for that amount of milliseconds. 61 + * 62 + * @public @memberof os_hid_device 63 */ 64 static inline int 65 os_hid_read(struct os_hid_device *hid_dev, ··· 72 73 /*! 74 * Write an output report to the given device. 75 + * 76 + * @public @memberof os_hid_device 77 */ 78 static inline int 79 os_hid_write(struct os_hid_device *hid_dev, const uint8_t *data, size_t size) ··· 86 * 87 * If the device doesn't have more than one feature report, just request 88 * report 0. 89 + * 90 + * @public @memberof os_hid_device 91 */ 92 static inline int 93 os_hid_get_feature(struct os_hid_device *hid_dev, ··· 100 101 /*! 102 * Get a feature report with a timeout. 103 + * 104 + * @public @memberof os_hid_device 105 */ 106 static inline int 107 os_hid_get_feature_timeout(struct os_hid_device *hid_dev, ··· 117 * 118 * The first byte of the buffer is the report number, to be followed by 119 * the data of the report. 120 + * 121 + * @public @memberof os_hid_device 122 */ 123 static inline int 124 os_hid_set_feature(struct os_hid_device *hid_dev, ··· 130 131 /*! 132 * Close and free the given device. 133 + * 134 + * @public @memberof os_hid_device 135 */ 136 static inline void 137 os_hid_destroy(struct os_hid_device *hid_dev) ··· 142 #ifdef XRT_OS_LINUX 143 /*! 144 * Open the given path as a hidraw device. 145 + * 146 + * @public @memberof hid_hidraw 147 + * @relatesalso os_hid_device 148 */ 149 int 150 os_hid_open_hidraw(const char *path, struct os_hid_device **out_hid);
+3
src/xrt/auxiliary/os/os_hid_hidraw.c
··· 28 29 #include <stdio.h> 30 31 struct hid_hidraw 32 { 33 struct os_hid_device base;
··· 28 29 #include <stdio.h> 30 31 + /*! 32 + * @implements os_hid_device 33 + */ 34 struct hid_hidraw 35 { 36 struct os_hid_device base;
+6
src/xrt/auxiliary/tracking/t_debug_hsv_filter.cpp
··· 27 #define HSV2_WIN "HSV Channel #3 (Blue)" 28 #define HSV3_WIN "HSV Channel #4 (White)" 29 30 class DebugHSVFilter 31 { 32 public:
··· 27 #define HSV2_WIN "HSV Channel #3 (Blue)" 28 #define HSV3_WIN "HSV Channel #4 (White)" 29 30 + /*! 31 + * An @ref xrt_frame_sink that can be used to debug the behavior of 32 + * @ref t_hsv_filter. 33 + * @implements xrt_frame_sink 34 + * @implements xrt_frame_node 35 + */ 36 class DebugHSVFilter 37 { 38 public:
+6
src/xrt/auxiliary/tracking/t_debug_hsv_picker.cpp
··· 28 #define max(a, b) (a > b ? a : b) 29 #define min(a, b) (a < b ? a : b) 30 31 class DebugHSVPicker 32 { 33 public:
··· 28 #define max(a, b) (a > b ? a : b) 29 #define min(a, b) (a < b ? a : b) 30 31 + /*! 32 + * An @ref xrt_frame_sink that can be used to select HSV thresholds 33 + * interactively. 34 + * @implements xrt_frame_sink 35 + * @implements xrt_frame_node 36 + */ 37 class DebugHSVPicker 38 { 39 public:
+5
src/xrt/auxiliary/tracking/t_debug_hsv_viewer.cpp
··· 23 24 #define HSV_WIN "HSV Filter Tester" 25 26 class DebugHSVViewer 27 { 28 public:
··· 23 24 #define HSV_WIN "HSV Filter Tester" 25 26 + /*! 27 + * An @ref xrt_frame_sink related to debug viewing of HSV. 28 + * @implements xrt_frame_sink 29 + * @implements xrt_frame_node 30 + */ 31 class DebugHSVViewer 32 { 33 public:
+5
src/xrt/auxiliary/tracking/t_hsv_filter.c
··· 132 133 #define NUM_CHANNELS 4 134 135 struct t_hsv_filter 136 { 137 struct xrt_frame_sink base;
··· 132 133 #define NUM_CHANNELS 4 134 135 + /*! 136 + * An @ref xrt_frame_sink that splits the input based on hue. 137 + * @implements xrt_frame_sink 138 + * @implements xrt_frame_node 139 + */ 140 struct t_hsv_filter 141 { 142 struct xrt_frame_sink base;
+9
src/xrt/auxiliary/tracking/t_tracker_psmv.cpp
··· 33 34 /*! 35 * Single camera. 36 */ 37 struct View 38 { ··· 63 } 64 }; 65 66 struct TrackerPSMV 67 { 68 struct xrt_tracked_psmv base = {};
··· 33 34 /*! 35 * Single camera. 36 + * 37 + * @see TrackerPSMV 38 */ 39 struct View 40 { ··· 65 } 66 }; 67 68 + /*! 69 + * The core object of the PS Move tracking setup. 70 + * 71 + * @implements xrt_tracked_psmv 72 + * @implements xrt_frame_sink 73 + * @implements xrt_frame_node 74 + */ 75 struct TrackerPSMV 76 { 77 struct xrt_tracked_psmv base = {};
+43
src/xrt/auxiliary/tracking/t_tracking.h
··· 129 130 /*! 131 * Allocates a new stereo calibration data, unreferences the old @p calib. 132 */ 133 void 134 t_stereo_camera_calibration_alloc(struct t_stereo_camera_calibration **calib); 135 136 /*! 137 * Only to be called by @p t_stereo_camera_calibration_reference. 138 */ 139 void 140 t_stereo_camera_calibration_destroy(struct t_stereo_camera_calibration *c); ··· 147 * @p dst points to will be set to @p src. 148 * @param[in] src Object to be have it's refcount increased @p dst is set to 149 * this. 150 */ 151 static inline void 152 t_stereo_camera_calibration_reference(struct t_stereo_camera_calibration **dst, ··· 257 uint8_t v_min; 258 }; 259 260 struct t_hsv_filter_params 261 { 262 struct t_hsv_filter_color color[3]; ··· 299 return t->v[y / T_HSV_STEP][u / T_HSV_STEP][v / T_HSV_STEP]; 300 } 301 302 int 303 t_hsv_filter_create(struct xrt_frame_context *xfctx, 304 struct t_hsv_filter_params *params, ··· 312 * 313 */ 314 315 int 316 t_psmv_start(struct xrt_tracked_psmv *xtmv); 317 318 int 319 t_psmv_create(struct xrt_frame_context *xfctx, 320 struct xrt_colour_rgb_f32 *rgb, ··· 322 struct xrt_tracked_psmv **out_xtmv, 323 struct xrt_frame_sink **out_sink); 324 325 int 326 t_psvr_start(struct xrt_tracked_psvr *xtvr); 327 328 int 329 t_psvr_create(struct xrt_frame_context *xfctx, 330 struct t_stereo_camera_calibration *data, ··· 420 421 /*! 422 * Sets the calibration parameters to the their default values. 423 */ 424 static inline void 425 t_calibration_params_default(struct t_calibration_params *p) ··· 473 * retained, and pointed-to struct modified. 474 * @param gui Frame sink 475 * @param out_sink Output: created frame sink. 476 */ 477 int 478 t_calibration_stereo_create(struct xrt_frame_context *xfctx, ··· 488 * 489 */ 490 491 int 492 t_convert_yuv_or_yuyv_create(struct xrt_frame_sink *next, 493 struct xrt_frame_sink **out_sink); 494 495 496 497 int 498 t_debug_hsv_picker_create(struct xrt_frame_context *xfctx, 499 struct xrt_frame_sink *passthrough, 500 struct xrt_frame_sink **out_sink); 501 502 int 503 t_debug_hsv_viewer_create(struct xrt_frame_context *xfctx, 504 struct xrt_frame_sink *passthrough, 505 struct xrt_frame_sink **out_sink); 506 507 int 508 t_debug_hsv_filter_create(struct xrt_frame_context *xfctx, 509 struct xrt_frame_sink *passthrough,
··· 129 130 /*! 131 * Allocates a new stereo calibration data, unreferences the old @p calib. 132 + * 133 + * @public @memberof t_stereo_camera_calibration 134 */ 135 void 136 t_stereo_camera_calibration_alloc(struct t_stereo_camera_calibration **calib); 137 138 /*! 139 * Only to be called by @p t_stereo_camera_calibration_reference. 140 + * 141 + * @private @memberof t_stereo_camera_calibration 142 */ 143 void 144 t_stereo_camera_calibration_destroy(struct t_stereo_camera_calibration *c); ··· 151 * @p dst points to will be set to @p src. 152 * @param[in] src Object to be have it's refcount increased @p dst is set to 153 * this. 154 + * 155 + * @relates t_stereo_camera_calibration 156 */ 157 static inline void 158 t_stereo_camera_calibration_reference(struct t_stereo_camera_calibration **dst, ··· 263 uint8_t v_min; 264 }; 265 266 + /*! 267 + * Parameters for constructing an HSV filter. 268 + * @relates t_hsv_filter 269 + */ 270 struct t_hsv_filter_params 271 { 272 struct t_hsv_filter_color color[3]; ··· 309 return t->v[y / T_HSV_STEP][u / T_HSV_STEP][v / T_HSV_STEP]; 310 } 311 312 + /*! 313 + * Construct an HSV filter sink. 314 + * @public @memberof t_hsv_filter 315 + * 316 + * @relates xrt_frame_context 317 + */ 318 int 319 t_hsv_filter_create(struct xrt_frame_context *xfctx, 320 struct t_hsv_filter_params *params, ··· 328 * 329 */ 330 331 + /*! 332 + * @public @memberof xrt_tracked_psmv 333 + */ 334 int 335 t_psmv_start(struct xrt_tracked_psmv *xtmv); 336 337 + /*! 338 + * @public @memberof xrt_tracked_psmv 339 + */ 340 int 341 t_psmv_create(struct xrt_frame_context *xfctx, 342 struct xrt_colour_rgb_f32 *rgb, ··· 344 struct xrt_tracked_psmv **out_xtmv, 345 struct xrt_frame_sink **out_sink); 346 347 + /*! 348 + * @public @memberof xrt_tracked_psvr 349 + */ 350 int 351 t_psvr_start(struct xrt_tracked_psvr *xtvr); 352 353 + /*! 354 + * @public @memberof xrt_tracked_psvr 355 + */ 356 int 357 t_psvr_create(struct xrt_frame_context *xfctx, 358 struct t_stereo_camera_calibration *data, ··· 448 449 /*! 450 * Sets the calibration parameters to the their default values. 451 + * @public @memberof t_calibration_params 452 */ 453 static inline void 454 t_calibration_params_default(struct t_calibration_params *p) ··· 502 * retained, and pointed-to struct modified. 503 * @param gui Frame sink 504 * @param out_sink Output: created frame sink. 505 + * 506 + * @relates xrt_frame_context 507 */ 508 int 509 t_calibration_stereo_create(struct xrt_frame_context *xfctx, ··· 519 * 520 */ 521 522 + /*! 523 + * @relates xrt_frame_context 524 + */ 525 int 526 t_convert_yuv_or_yuyv_create(struct xrt_frame_sink *next, 527 struct xrt_frame_sink **out_sink); 528 529 530 531 + /*! 532 + * @relates xrt_frame_context 533 + */ 534 int 535 t_debug_hsv_picker_create(struct xrt_frame_context *xfctx, 536 struct xrt_frame_sink *passthrough, 537 struct xrt_frame_sink **out_sink); 538 539 + /*! 540 + * @relates xrt_frame_context 541 + */ 542 int 543 t_debug_hsv_viewer_create(struct xrt_frame_context *xfctx, 544 struct xrt_frame_sink *passthrough, 545 struct xrt_frame_sink **out_sink); 546 547 + /*! 548 + * @relates xrt_frame_context 549 + */ 550 int 551 t_debug_hsv_filter_create(struct xrt_frame_context *xfctx, 552 struct xrt_frame_sink *passthrough,
+3 -1
src/xrt/auxiliary/util/u_distortion_mesh.c
··· 158 #define div_scalar m_vec2_div_scalar 159 #define len m_vec2_len 160 161 - 162 struct panotools_state 163 { 164 struct u_uv_generator base;
··· 158 #define div_scalar m_vec2_div_scalar 159 #define len m_vec2_len 160 161 + /*! 162 + * @implements u_uv_generator 163 + */ 164 struct panotools_state 165 { 166 struct u_uv_generator base;
+8 -1
src/xrt/auxiliary/util/u_distortion_mesh.h
··· 47 }; 48 49 /*! 50 - * Generator struct for building meshes, can be implemented by drivers for 51 * special meshes. 52 * 53 * @ingroup aux_util ··· 67 * Given a @ref u_uv_generator generates num_views meshes, populates target. 68 * 69 * @ingroup aux_util 70 */ 71 void 72 u_distortion_mesh_from_gen(struct u_uv_generator *, ··· 78 * values into it. This probably isn't the function you want. 79 * 80 * @ingroup aux_util 81 */ 82 void 83 u_distortion_mesh_generator_from_panotools( ··· 90 * This is probably the function you want. 91 * 92 * @ingroup aux_util 93 */ 94 void 95 u_distortion_mesh_from_panotools(const struct u_panotools_values *left, ··· 100 * Create two distortion meshes with no distortion. 101 * 102 * @ingroup aux_util 103 */ 104 void 105 u_distortion_mesh_none(struct xrt_hmd_parts *target);
··· 47 }; 48 49 /*! 50 + * @interface u_uv_generator 51 + * 52 + * Generator interface for building meshes, can be implemented by drivers for 53 * special meshes. 54 * 55 * @ingroup aux_util ··· 69 * Given a @ref u_uv_generator generates num_views meshes, populates target. 70 * 71 * @ingroup aux_util 72 + * @public @memberof u_uv_generator 73 + * @relatesalso xrt_hmd_parts 74 */ 75 void 76 u_distortion_mesh_from_gen(struct u_uv_generator *, ··· 82 * values into it. This probably isn't the function you want. 83 * 84 * @ingroup aux_util 85 + * @see u_distortion_mesh_from_panotools 86 */ 87 void 88 u_distortion_mesh_generator_from_panotools( ··· 95 * This is probably the function you want. 96 * 97 * @ingroup aux_util 98 + * @relates xrt_hmd_parts 99 */ 100 void 101 u_distortion_mesh_from_panotools(const struct u_panotools_values *left, ··· 106 * Create two distortion meshes with no distortion. 107 * 108 * @ingroup aux_util 109 + * @relates xrt_hmd_parts 110 */ 111 void 112 u_distortion_mesh_none(struct xrt_hmd_parts *target);
+38 -2
src/xrt/auxiliary/util/u_sink.h
··· 15 extern "C" { 16 #endif 17 18 - 19 struct u_sink_quirk_params 20 { 21 bool stereo_sbs; ··· 23 bool leap_motion; 24 }; 25 26 void 27 u_sink_create_format_converter(struct xrt_frame_context *xfctx, 28 enum xrt_format f, 29 struct xrt_frame_sink *downstream, 30 struct xrt_frame_sink **out_xfs); 31 32 void 33 u_sink_create_to_r8g8b8_or_l8(struct xrt_frame_context *xfctx, 34 struct xrt_frame_sink *downstream, 35 struct xrt_frame_sink **out_xfs); 36 37 void 38 u_sink_create_to_yuv_yuyv_uyvy_or_l8(struct xrt_frame_context *xfctx, 39 struct xrt_frame_sink *downstream, 40 struct xrt_frame_sink **out_xfs); 41 42 void 43 u_sink_create_to_yuv_or_yuyv(struct xrt_frame_context *xfctx, 44 struct xrt_frame_sink *downstream, 45 struct xrt_frame_sink **out_xfs); 46 - 47 void 48 u_sink_deinterleaver_create(struct xrt_frame_context *xfctx, 49 struct xrt_frame_sink *downstream, 50 struct xrt_frame_sink **out_xfs); 51 52 bool 53 u_sink_queue_create(struct xrt_frame_context *xfctx, 54 struct xrt_frame_sink *downstream, 55 struct xrt_frame_sink **out_xfs); 56 57 void 58 u_sink_quirk_create(struct xrt_frame_context *xfctx, 59 struct xrt_frame_sink *downstream, 60 struct u_sink_quirk_params *params, 61 struct xrt_frame_sink **out_xfs); 62 63 void 64 u_sink_split_create(struct xrt_frame_context *xfctx, 65 struct xrt_frame_sink *left,
··· 15 extern "C" { 16 #endif 17 18 + /*! 19 + * @see u_sink_quirk_create 20 + */ 21 struct u_sink_quirk_params 22 { 23 bool stereo_sbs; ··· 25 bool leap_motion; 26 }; 27 28 + /*! 29 + * @relatesalso xrt_frame_sink 30 + * @relates xrt_frame_context 31 + */ 32 void 33 u_sink_create_format_converter(struct xrt_frame_context *xfctx, 34 enum xrt_format f, 35 struct xrt_frame_sink *downstream, 36 struct xrt_frame_sink **out_xfs); 37 38 + /*! 39 + * @relatesalso xrt_frame_sink 40 + * @relates xrt_frame_context 41 + */ 42 void 43 u_sink_create_to_r8g8b8_or_l8(struct xrt_frame_context *xfctx, 44 struct xrt_frame_sink *downstream, 45 struct xrt_frame_sink **out_xfs); 46 47 + /*! 48 + * @relatesalso xrt_frame_sink 49 + * @relates xrt_frame_context 50 + */ 51 void 52 u_sink_create_to_yuv_yuyv_uyvy_or_l8(struct xrt_frame_context *xfctx, 53 struct xrt_frame_sink *downstream, 54 struct xrt_frame_sink **out_xfs); 55 56 + /*! 57 + * @relatesalso xrt_frame_sink 58 + * @relates xrt_frame_context 59 + */ 60 void 61 u_sink_create_to_yuv_or_yuyv(struct xrt_frame_context *xfctx, 62 struct xrt_frame_sink *downstream, 63 struct xrt_frame_sink **out_xfs); 64 + /*! 65 + * @public @memberof u_sink_deinterleaver 66 + * @relatesalso xrt_frame_sink 67 + * @relates xrt_frame_context 68 + */ 69 void 70 u_sink_deinterleaver_create(struct xrt_frame_context *xfctx, 71 struct xrt_frame_sink *downstream, 72 struct xrt_frame_sink **out_xfs); 73 74 + /*! 75 + * @public @memberof u_sink_queue 76 + * @relatesalso xrt_frame_sink 77 + * @relates xrt_frame_context 78 + */ 79 bool 80 u_sink_queue_create(struct xrt_frame_context *xfctx, 81 struct xrt_frame_sink *downstream, 82 struct xrt_frame_sink **out_xfs); 83 84 + /*! 85 + * @public @memberof u_sink_quirk 86 + * @relatesalso xrt_frame_sink 87 + * @relates xrt_frame_context 88 + */ 89 void 90 u_sink_quirk_create(struct xrt_frame_context *xfctx, 91 struct xrt_frame_sink *downstream, 92 struct u_sink_quirk_params *params, 93 struct xrt_frame_sink **out_xfs); 94 95 + /*! 96 + * @public @memberof u_sink_split 97 + * @relatesalso xrt_frame_sink 98 + */ 99 void 100 u_sink_split_create(struct xrt_frame_context *xfctx, 101 struct xrt_frame_sink *left,
+5
src/xrt/auxiliary/util/u_sink_converter.c
··· 26 * 27 */ 28 29 struct u_sink_converter 30 { 31 struct xrt_frame_sink base;
··· 26 * 27 */ 28 29 + /*! 30 + * An @ref xrt_frame_sink that converts frames. 31 + * @implements xrt_frame_sink 32 + * @implements xrt_frame_node 33 + */ 34 struct u_sink_converter 35 { 36 struct xrt_frame_sink base;
+6 -1
src/xrt/auxiliary/util/u_sink_deinterleaver.c
··· 2 // SPDX-License-Identifier: BSL-1.0 3 /*! 4 * @file 5 - * @brief A @ref xrt_frame_sink that deinterleaves stereo frames. 6 * @author Pete Black <pblack@collabora.com> 7 * @author Jakob Bornecrantz <jakob@collabora.com> 8 * @ingroup aux_util ··· 13 #include "util/u_frame.h" 14 15 16 struct u_sink_deinterleaver 17 { 18 struct xrt_frame_sink base;
··· 2 // SPDX-License-Identifier: BSL-1.0 3 /*! 4 * @file 5 + * @brief An @ref xrt_frame_sink that deinterleaves stereo frames. 6 * @author Pete Black <pblack@collabora.com> 7 * @author Jakob Bornecrantz <jakob@collabora.com> 8 * @ingroup aux_util ··· 13 #include "util/u_frame.h" 14 15 16 + /*! 17 + * An @ref xrt_frame_sink that deinterleaves stereo frames. 18 + * @implements xrt_frame_sink 19 + * @implements xrt_frame_node 20 + */ 21 struct u_sink_deinterleaver 22 { 23 struct xrt_frame_sink base;
+6 -1
src/xrt/auxiliary/util/u_sink_queue.c
··· 2 // SPDX-License-Identifier: BSL-1.0 3 /*! 4 * @file 5 - * @brief A @ref xrt_frame_sink queue. 6 * @author Jakob Bornecrantz <jakob@collabora.com> 7 * @ingroup aux_util 8 */ ··· 14 #include <pthread.h> 15 16 17 struct u_sink_queue 18 { 19 struct xrt_frame_sink base;
··· 2 // SPDX-License-Identifier: BSL-1.0 3 /*! 4 * @file 5 + * @brief An @ref xrt_frame_sink queue. 6 * @author Jakob Bornecrantz <jakob@collabora.com> 7 * @ingroup aux_util 8 */ ··· 14 #include <pthread.h> 15 16 17 + /*! 18 + * An @ref xrt_frame_sink queue. 19 + * @implements xrt_frame_sink 20 + * @implements xrt_frame_node 21 + */ 22 struct u_sink_queue 23 { 24 struct xrt_frame_sink base;
+6 -2
src/xrt/auxiliary/util/u_sink_quirk.c
··· 2 // SPDX-License-Identifier: BSL-1.0 3 /*! 4 * @file 5 - * @brief A @ref xrt_frame_sink that quirks frames. 6 * @author Jakob Bornecrantz <jakob@collabora.com> 7 * @ingroup aux_util 8 */ ··· 10 #include "util/u_misc.h" 11 #include "util/u_sink.h" 12 13 - 14 struct u_sink_quirk 15 { 16 struct xrt_frame_sink base;
··· 2 // SPDX-License-Identifier: BSL-1.0 3 /*! 4 * @file 5 + * @brief An @ref xrt_frame_sink that quirks frames. 6 * @author Jakob Bornecrantz <jakob@collabora.com> 7 * @ingroup aux_util 8 */ ··· 10 #include "util/u_misc.h" 11 #include "util/u_sink.h" 12 13 + /*! 14 + * An @ref xrt_frame_sink that quirks frames. 15 + * @implements xrt_frame_sink 16 + * @implements xrt_frame_node 17 + */ 18 struct u_sink_quirk 19 { 20 struct xrt_frame_sink base;
+6 -1
src/xrt/auxiliary/util/u_sink_split.c
··· 2 // SPDX-License-Identifier: BSL-1.0 3 /*! 4 * @file 5 - * @brief A @ref xrt_frame_sink splitter. 6 * @author Jakob Bornecrantz <jakob@collabora.com> 7 * @ingroup aux_util 8 */ ··· 11 #include "util/u_sink.h" 12 13 14 struct u_sink_split 15 { 16 struct xrt_frame_sink base;
··· 2 // SPDX-License-Identifier: BSL-1.0 3 /*! 4 * @file 5 + * @brief An @ref xrt_frame_sink splitter. 6 * @author Jakob Bornecrantz <jakob@collabora.com> 7 * @ingroup aux_util 8 */ ··· 11 #include "util/u_sink.h" 12 13 14 + /*! 15 + * An @ref xrt_frame_sink splitter. 16 + * @implements xrt_frame_sink 17 + * @implements xrt_frame_node 18 + */ 19 struct u_sink_split 20 { 21 struct xrt_frame_sink base;
+16 -2
src/xrt/compositor/client/comp_gl_client.h
··· 23 */ 24 25 /*! 26 * Wraps the real compositor swapchain providing a OpenGL based interface. 27 * 28 * Almost a one to one mapping to a OpenXR swapchain. 29 * 30 * @ingroup comp_client 31 */ 32 struct client_gl_swapchain 33 { ··· 37 }; 38 39 /*! 40 * Wraps the real compositor providing a OpenGL based interface. 41 * 42 * @ingroup comp_client 43 */ 44 struct client_gl_compositor 45 { ··· 56 */ 57 58 /*! 59 - * Convenience function to convert a xrt_swapchain to a client_gl_swapchain. 60 */ 61 static inline struct client_gl_swapchain * 62 client_gl_swapchain(struct xrt_swapchain *xsc) ··· 65 } 66 67 /*! 68 - * Convenience function to convert a xrt_compositor to a client_gl_compositor. 69 */ 70 static inline struct client_gl_compositor * 71 client_gl_compositor(struct xrt_compositor *xc) ··· 79 80 /*! 81 * Fill in a client_gl_compositor and do common OpenGL sanity checking. 82 */ 83 bool 84 client_gl_compositor_init(struct client_gl_compositor *c,
··· 23 */ 24 25 /*! 26 + * @class client_gl_swapchain 27 + * 28 * Wraps the real compositor swapchain providing a OpenGL based interface. 29 * 30 * Almost a one to one mapping to a OpenXR swapchain. 31 * 32 * @ingroup comp_client 33 + * @implements xrt_swapchain_gl 34 */ 35 struct client_gl_swapchain 36 { ··· 40 }; 41 42 /*! 43 + * @class client_gl_compositor 44 + * 45 * Wraps the real compositor providing a OpenGL based interface. 46 * 47 * @ingroup comp_client 48 + * @implements xrt_compositor_gl 49 */ 50 struct client_gl_compositor 51 { ··· 62 */ 63 64 /*! 65 + * Down-cast helper. 66 + * @private @memberof client_gl_swapchain 67 */ 68 static inline struct client_gl_swapchain * 69 client_gl_swapchain(struct xrt_swapchain *xsc) ··· 72 } 73 74 /*! 75 + * Down-cast helper. 76 + * @private @memberof client_gl_compositor 77 */ 78 static inline struct client_gl_compositor * 79 client_gl_compositor(struct xrt_compositor *xc) ··· 87 88 /*! 89 * Fill in a client_gl_compositor and do common OpenGL sanity checking. 90 + * 91 + * OpenGL can have multiple backing window systems we have to interact with, so 92 + * there isn't just one unified OpenGL client constructor. 93 + * 94 + * @public @memberof client_gl_compositor 95 + * @relatesalso xrt_compositor_fd 96 */ 97 bool 98 client_gl_compositor_init(struct client_gl_compositor *c,
+6 -4
src/xrt/compositor/client/comp_gl_xlib_client.h
··· 18 19 20 /*! 21 * A client facing xlib OpenGL base compositor. 22 * 23 * @ingroup comp_client 24 */ 25 struct client_gl_xlib_compositor 26 { ··· 29 }; 30 31 /*! 32 - * Convenience function to convert a xrt_compositor to a 33 - * client_gl_xlib_compositor. 34 * 35 - * @ingroup comp_client 36 */ 37 static inline struct client_gl_xlib_compositor * 38 client_gl_xlib_compositor(struct xrt_compositor *xc) ··· 43 /*! 44 * Create a new client_gl_xlib_compositor. 45 * 46 - * @ingroup comp_client 47 */ 48 struct client_gl_xlib_compositor * 49 client_gl_xlib_compositor_create(struct xrt_compositor_fd *xcfd,
··· 18 19 20 /*! 21 + * @class client_gl_xlib_compositor 22 * A client facing xlib OpenGL base compositor. 23 * 24 * @ingroup comp_client 25 + * @extends client_gl_compositor 26 */ 27 struct client_gl_xlib_compositor 28 { ··· 31 }; 32 33 /*! 34 + * Down-cast helper. 35 * 36 + * @private @memberof client_gl_xlib_compositor 37 */ 38 static inline struct client_gl_xlib_compositor * 39 client_gl_xlib_compositor(struct xrt_compositor *xc) ··· 44 /*! 45 * Create a new client_gl_xlib_compositor. 46 * 47 + * @public @memberof client_gl_xlib_compositor 48 + * @relatesalso xrt_compositor_fd 49 */ 50 struct client_gl_xlib_compositor * 51 client_gl_xlib_compositor_create(struct xrt_compositor_fd *xcfd,
+15 -5
src/xrt/compositor/client/comp_vk_client.h
··· 32 * Almost a one to one mapping to a OpenXR swapchain. 33 * 34 * @ingroup comp_client 35 */ 36 struct client_vk_swapchain 37 { 38 struct xrt_swapchain_vk base; 39 struct xrt_swapchain_fd *xscfd; 40 struct client_vk_compositor *c; 41 }; 42 43 /*! 44 * Wraps the real compositor providing a Vulkan based interface. 45 * 46 * @ingroup comp_client 47 */ 48 struct client_vk_compositor 49 { 50 struct xrt_compositor_vk base; 51 52 struct xrt_compositor_fd *xcfd; 53 54 struct vk_bundle vk; ··· 62 */ 63 64 /*! 65 - * Convenience function to convert a xrt_swapchain to a client_vk_swapchain. 66 * 67 - * @ingroup comp_client 68 */ 69 static inline struct client_vk_swapchain * 70 client_vk_swapchain(struct xrt_swapchain *xsc) ··· 73 } 74 75 /*! 76 - * Convenience function to convert a xrt_compositor to a client_vk_compositor. 77 * 78 - * @ingroup comp_client 79 */ 80 static inline struct client_vk_compositor * 81 client_vk_compositor(struct xrt_compositor *xc) ··· 86 /*! 87 * Create a new client_vk_compositor. 88 * 89 - * @ingroup comp_client 90 */ 91 struct client_vk_compositor * 92 client_vk_compositor_create(struct xrt_compositor_fd *xcfd,
··· 32 * Almost a one to one mapping to a OpenXR swapchain. 33 * 34 * @ingroup comp_client 35 + * @implements xrt_swapchain_vk 36 */ 37 struct client_vk_swapchain 38 { 39 struct xrt_swapchain_vk base; 40 + 41 + //! Owning reference to the backing fd swapchain. 42 struct xrt_swapchain_fd *xscfd; 43 + 44 + //! Non-owning reference to our parent compositor. 45 struct client_vk_compositor *c; 46 }; 47 48 /*! 49 + * @class client_vk_compositor 50 + * 51 * Wraps the real compositor providing a Vulkan based interface. 52 * 53 * @ingroup comp_client 54 + * @implements xrt_compositor_vk 55 */ 56 struct client_vk_compositor 57 { 58 struct xrt_compositor_vk base; 59 60 + //! Owning reference to the backing fd compositor 61 struct xrt_compositor_fd *xcfd; 62 63 struct vk_bundle vk; ··· 71 */ 72 73 /*! 74 + * Down-cast helper. 75 * 76 + * @private @memberof client_vk_swapchain 77 */ 78 static inline struct client_vk_swapchain * 79 client_vk_swapchain(struct xrt_swapchain *xsc) ··· 82 } 83 84 /*! 85 + * Down-cast helper. 86 * 87 + * @private @memberof client_vk_compositor 88 */ 89 static inline struct client_vk_compositor * 90 client_vk_compositor(struct xrt_compositor *xc) ··· 95 /*! 96 * Create a new client_vk_compositor. 97 * 98 + * @public @memberof client_vk_compositor 99 + * @relatesalso xrt_compositor_fd 100 */ 101 struct client_vk_compositor * 102 client_vk_compositor_create(struct xrt_compositor_fd *xcfd,
+23 -11
src/xrt/compositor/main/comp_compositor.h
··· 37 * A single swapchain image, holds the needed state for tracking image usage. 38 * 39 * @ingroup comp_main 40 */ 41 struct comp_swapchain_image 42 { ··· 59 * Not used by the window backend that uses the vk_swapchain to render to. 60 * 61 * @ingroup comp_main 62 */ 63 struct comp_swapchain 64 { ··· 74 */ 75 struct u_index_fifo fifo; 76 }; 77 - 78 enum comp_layer_type 79 { 80 COMP_LAYER_STEREO_PROJECTION, 81 COMP_LAYER_QUAD, 82 }; 83 ··· 85 * A quad layer. 86 * 87 * @ingroup comp_main 88 */ 89 struct comp_layer_quad 90 { ··· 101 * A stereo projection layer. 102 * 103 * @ingroup comp_main 104 */ 105 struct comp_layer_stereo 106 { ··· 116 * A single layer. 117 * 118 * @ingroup comp_main 119 */ 120 struct comp_layer 121 { ··· 133 * A stack of layers. 134 * 135 * @ingroup comp_main 136 */ 137 struct comp_layer_slot 138 { ··· 147 * Main compositor struct tying everything in the compositor together. 148 * 149 * @ingroup comp_main 150 */ 151 struct comp_compositor 152 { ··· 245 /*! 246 * Convenience function to convert a xrt_swapchain to a comp_swapchain. 247 * 248 - * @ingroup comp_main 249 */ 250 static inline struct comp_swapchain * 251 comp_swapchain(struct xrt_swapchain *xsc) ··· 256 /*! 257 * Convenience function to convert a xrt_compositor to a comp_compositor. 258 * 259 - * @ingroup comp_main 260 */ 261 static inline struct comp_compositor * 262 comp_compositor(struct xrt_compositor *xc) ··· 268 * Do garbage collection, destroying any resources that has been scheduled for 269 * destruction from other threads. 270 * 271 - * @ingroup comp_main 272 */ 273 void 274 comp_compositor_garbage_collect(struct comp_compositor *c); ··· 276 /*! 277 * A compositor function that is implemented in the swapchain code. 278 * 279 - * @ingroup comp_main 280 */ 281 struct xrt_swapchain * 282 comp_swapchain_create(struct xrt_compositor *xc, ··· 295 * does the actual destruction and is called from @ref 296 * comp_compositor_garbage_collect. 297 * 298 - * @ingroup comp_main 299 */ 300 void 301 comp_swapchain_really_destroy(struct comp_swapchain *sc); ··· 303 /*! 304 * Printer helper. 305 * 306 - * @ingroup comp_main 307 */ 308 void 309 comp_compositor_print(struct comp_compositor *c, ··· 314 /*! 315 * Spew level logging. 316 * 317 - * @ingroup comp_main 318 */ 319 #define COMP_SPEW(c, ...) \ 320 do { \ ··· 326 /*! 327 * Debug level logging. 328 * 329 - * @ingroup comp_main 330 */ 331 #define COMP_DEBUG(c, ...) \ 332 do { \ ··· 338 /*! 339 * Mode printing. 340 * 341 - * @ingroup comp_main 342 */ 343 #define COMP_PRINT_MODE(c, ...) \ 344 do { \ ··· 350 /*! 351 * Error level logging. 352 * 353 - * @ingroup comp_main 354 */ 355 #define COMP_ERROR(c, ...) \ 356 do { \
··· 37 * A single swapchain image, holds the needed state for tracking image usage. 38 * 39 * @ingroup comp_main 40 + * @see comp_swapchain 41 */ 42 struct comp_swapchain_image 43 { ··· 60 * Not used by the window backend that uses the vk_swapchain to render to. 61 * 62 * @ingroup comp_main 63 + * @implements xrt_swapchain_fd 64 + * @see comp_compositor 65 */ 66 struct comp_swapchain 67 { ··· 77 */ 78 struct u_index_fifo fifo; 79 }; 80 + /*! 81 + * Tag for distinguishing the union contents of @ref comp_layer. 82 + */ 83 enum comp_layer_type 84 { 85 + //! comp_layer::stereo is initialized 86 COMP_LAYER_STEREO_PROJECTION, 87 + //! comp_layer::quad is initialized 88 COMP_LAYER_QUAD, 89 }; 90 ··· 92 * A quad layer. 93 * 94 * @ingroup comp_main 95 + * @see comp_layer 96 */ 97 struct comp_layer_quad 98 { ··· 109 * A stereo projection layer. 110 * 111 * @ingroup comp_main 112 + * @see comp_layer 113 */ 114 struct comp_layer_stereo 115 { ··· 125 * A single layer. 126 * 127 * @ingroup comp_main 128 + * @see comp_layer_slot 129 */ 130 struct comp_layer 131 { ··· 143 * A stack of layers. 144 * 145 * @ingroup comp_main 146 + * @see comp_compositor 147 */ 148 struct comp_layer_slot 149 { ··· 158 * Main compositor struct tying everything in the compositor together. 159 * 160 * @ingroup comp_main 161 + * @implements xrt_compositor_fd 162 */ 163 struct comp_compositor 164 { ··· 257 /*! 258 * Convenience function to convert a xrt_swapchain to a comp_swapchain. 259 * 260 + * @private @memberof comp_swapchain 261 */ 262 static inline struct comp_swapchain * 263 comp_swapchain(struct xrt_swapchain *xsc) ··· 268 /*! 269 * Convenience function to convert a xrt_compositor to a comp_compositor. 270 * 271 + * @private @memberof comp_compositor 272 */ 273 static inline struct comp_compositor * 274 comp_compositor(struct xrt_compositor *xc) ··· 280 * Do garbage collection, destroying any resources that has been scheduled for 281 * destruction from other threads. 282 * 283 + * @public @memberof comp_compositor 284 */ 285 void 286 comp_compositor_garbage_collect(struct comp_compositor *c); ··· 288 /*! 289 * A compositor function that is implemented in the swapchain code. 290 * 291 + * @public @memberof comp_compositor 292 */ 293 struct xrt_swapchain * 294 comp_swapchain_create(struct xrt_compositor *xc, ··· 307 * does the actual destruction and is called from @ref 308 * comp_compositor_garbage_collect. 309 * 310 + * @private @memberof comp_swapchain 311 */ 312 void 313 comp_swapchain_really_destroy(struct comp_swapchain *sc); ··· 315 /*! 316 * Printer helper. 317 * 318 + * @public @memberof comp_compositor 319 */ 320 void 321 comp_compositor_print(struct comp_compositor *c, ··· 326 /*! 327 * Spew level logging. 328 * 329 + * @relates comp_compositor 330 */ 331 #define COMP_SPEW(c, ...) \ 332 do { \ ··· 338 /*! 339 * Debug level logging. 340 * 341 + * @relates comp_compositor 342 */ 343 #define COMP_DEBUG(c, ...) \ 344 do { \ ··· 350 /*! 351 * Mode printing. 352 * 353 + * @relates comp_compositor 354 */ 355 #define COMP_PRINT_MODE(c, ...) \ 356 do { \ ··· 362 /*! 363 * Error level logging. 364 * 365 + * @relates comp_compositor 366 */ 367 #define COMP_ERROR(c, ...) \ 368 do { \
+7 -2
src/xrt/compositor/main/comp_window.h
··· 25 */ 26 27 /*! 28 * A output device or a window, often directly connected to the device. 29 * 30 * @ingroup comp_main ··· 61 * Create a xcb window. 62 * 63 * @ingroup comp_main 64 */ 65 struct comp_window * 66 comp_window_xcb_create(struct comp_compositor *c); ··· 71 * Create a wayland window. 72 * 73 * @ingroup comp_main 74 */ 75 struct comp_window * 76 comp_window_wayland_create(struct comp_compositor *c); ··· 78 79 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT 80 /*! 81 - * Create a direct surface to a HMD over RandR. 82 * 83 * @ingroup comp_main 84 */ 85 struct comp_window * 86 comp_window_direct_randr_create(struct comp_compositor *c); 87 88 /*! 89 - * Create a direct surface to a HMD on NVIDIA. 90 * 91 * @ingroup comp_main 92 */ 93 struct comp_window * 94 comp_window_direct_nvidia_create(struct comp_compositor *c);
··· 25 */ 26 27 /*! 28 + * @interface comp_window 29 * A output device or a window, often directly connected to the device. 30 * 31 * @ingroup comp_main ··· 62 * Create a xcb window. 63 * 64 * @ingroup comp_main 65 + * @public @memberof comp_window_xcb 66 */ 67 struct comp_window * 68 comp_window_xcb_create(struct comp_compositor *c); ··· 73 * Create a wayland window. 74 * 75 * @ingroup comp_main 76 + * @public @memberof comp_window_wayland 77 */ 78 struct comp_window * 79 comp_window_wayland_create(struct comp_compositor *c); ··· 81 82 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT 83 /*! 84 + * Create a direct surface to an HMD over RandR. 85 * 86 * @ingroup comp_main 87 + * @public @memberof comp_window_direct_randr 88 */ 89 struct comp_window * 90 comp_window_direct_randr_create(struct comp_compositor *c); 91 92 /*! 93 + * Create a direct surface to an HMD on NVIDIA. 94 * 95 * @ingroup comp_main 96 + * @public @memberof comp_window_direct_nvidia 97 */ 98 struct comp_window * 99 comp_window_direct_nvidia_create(struct comp_compositor *c);
+3 -1
src/xrt/compositor/main/comp_window_direct_nvidia.c
··· 31 /*! 32 * Direct mode "window" into a device, using Vulkan direct mode extension 33 * and xcb. 34 */ 35 struct comp_window_direct_nvidia 36 { ··· 43 44 /* 45 * 46 - * Pre decalre functions 47 * 48 */ 49
··· 31 /*! 32 * Direct mode "window" into a device, using Vulkan direct mode extension 33 * and xcb. 34 + * 35 + * @implements comp_window 36 */ 37 struct comp_window_direct_nvidia 38 { ··· 45 46 /* 47 * 48 + * Forward declare functions 49 * 50 */ 51
+3 -1
src/xrt/compositor/main/comp_window_direct_randr.c
··· 39 /*! 40 * Direct mode "window" into a device, using Vulkan direct mode extension 41 * and xcb. 42 */ 43 struct comp_window_direct_randr 44 { ··· 56 57 /* 58 * 59 - * Pre decalre functions 60 * 61 */ 62
··· 39 /*! 40 * Direct mode "window" into a device, using Vulkan direct mode extension 41 * and xcb. 42 + * 43 + * @implements comp_window 44 */ 45 struct comp_window_direct_randr 46 { ··· 58 59 /* 60 * 61 + * Forward declare functions 62 * 63 */ 64
+2
src/xrt/compositor/main/comp_window_wayland.c
··· 29 30 /*! 31 * A Wayland connection and window. 32 */ 33 struct comp_window_wayland 34 {
··· 29 30 /*! 31 * A Wayland connection and window. 32 + * 33 + * @implements comp_window 34 */ 35 struct comp_window_wayland 36 {
+2
src/xrt/compositor/main/comp_window_xcb.c
··· 43 44 /*! 45 * A xcb connection and window. 46 */ 47 struct comp_window_xcb 48 {
··· 43 44 /*! 45 * A xcb connection and window. 46 + * 47 + * @implements comp_window 48 */ 49 struct comp_window_xcb 50 {
+3
src/xrt/drivers/arduino/arduino_device.c
··· 57 struct arduino_parsed_sample sample; 58 }; 59 60 struct arduino_device 61 { 62 struct xrt_device base;
··· 57 struct arduino_parsed_sample sample; 58 }; 59 60 + /*! 61 + * @implements xrt_device 62 + */ 63 struct arduino_device 64 { 65 struct xrt_device base;
+4
src/xrt/drivers/arduino/arduino_prober.c
··· 35 * Arduino prober struct. 36 * 37 * @ingroup drv_arduino 38 */ 39 struct arduino_prober 40 { ··· 52 * 53 */ 54 55 static inline struct arduino_prober * 56 arduino_prober(struct xrt_auto_prober *p) 57 { 58 return (struct arduino_prober *)p; 59 } 60 61 static void 62 arduino_prober_destroy(struct xrt_auto_prober *p) 63 { ··· 66 free(ap); 67 } 68 69 static struct xrt_device * 70 arduino_prober_autoprobe(struct xrt_auto_prober *xap, 71 cJSON *attached_data,
··· 35 * Arduino prober struct. 36 * 37 * @ingroup drv_arduino 38 + * @implements xrt_auto_prober 39 */ 40 struct arduino_prober 41 { ··· 53 * 54 */ 55 56 + //! @private @memberof arduino_prober 57 static inline struct arduino_prober * 58 arduino_prober(struct xrt_auto_prober *p) 59 { 60 return (struct arduino_prober *)p; 61 } 62 63 + //! @public @memberof arduino_prober 64 static void 65 arduino_prober_destroy(struct xrt_auto_prober *p) 66 { ··· 69 free(ap); 70 } 71 72 + //! @public @memberof arduino_prober 73 static struct xrt_device * 74 arduino_prober_autoprobe(struct xrt_auto_prober *xap, 75 cJSON *attached_data,
+3
src/xrt/drivers/daydream/daydream_device.h
··· 61 struct daydream_parsed_sample sample; 62 }; 63 64 struct daydream_device 65 { 66 struct xrt_device base;
··· 61 struct daydream_parsed_sample sample; 62 }; 63 64 + /*! 65 + * @implements xrt_device 66 + */ 67 struct daydream_device 68 { 69 struct xrt_device base;
+5 -1
src/xrt/drivers/daydream/daydream_prober.c
··· 27 * 28 */ 29 30 - // Should the experimental PSVR driver be enabled. 31 DEBUG_GET_ONCE_BOOL_OPTION(daydream_enable, "DAYDREAM_ENABLE", true) 32 DEBUG_GET_ONCE_BOOL_OPTION(daydream_spew, "DAYDREAM_PRINT_SPEW", false) 33 DEBUG_GET_ONCE_BOOL_OPTION(daydream_debug, "DAYDREAM_PRINT_DEBUG", false) ··· 36 * Daydream prober struct. 37 * 38 * @ingroup drv_daydream 39 */ 40 struct daydream_prober 41 { ··· 53 * 54 */ 55 56 static inline struct daydream_prober * 57 daydream_prober(struct xrt_auto_prober *p) 58 { 59 return (struct daydream_prober *)p; 60 } 61 62 static void 63 daydream_prober_destroy(struct xrt_auto_prober *p) 64 { ··· 67 free(pdaydream); 68 } 69 70 static struct xrt_device * 71 daydream_prober_autoprobe(struct xrt_auto_prober *xap, 72 cJSON *attached_data,
··· 27 * 28 */ 29 30 + // Should the experimental Daydream driver be enabled. 31 DEBUG_GET_ONCE_BOOL_OPTION(daydream_enable, "DAYDREAM_ENABLE", true) 32 DEBUG_GET_ONCE_BOOL_OPTION(daydream_spew, "DAYDREAM_PRINT_SPEW", false) 33 DEBUG_GET_ONCE_BOOL_OPTION(daydream_debug, "DAYDREAM_PRINT_DEBUG", false) ··· 36 * Daydream prober struct. 37 * 38 * @ingroup drv_daydream 39 + * @implements xrt_auto_prober 40 */ 41 struct daydream_prober 42 { ··· 54 * 55 */ 56 57 + //! @private @memberof daydream_prober 58 static inline struct daydream_prober * 59 daydream_prober(struct xrt_auto_prober *p) 60 { 61 return (struct daydream_prober *)p; 62 } 63 64 + //! @public @memberof daydream_prober 65 static void 66 daydream_prober_destroy(struct xrt_auto_prober *p) 67 { ··· 70 free(pdaydream); 71 } 72 73 + //! @public @memberof daydream_prober 74 static struct xrt_device * 75 daydream_prober_autoprobe(struct xrt_auto_prober *xap, 76 cJSON *attached_data,
+3
src/xrt/drivers/dummy/dummy_hmd.c
··· 32 * 33 */ 34 35 struct dummy_hmd 36 { 37 struct xrt_device base;
··· 32 * 33 */ 34 35 + /*! 36 + * @implements xrt_device 37 + */ 38 struct dummy_hmd 39 { 40 struct xrt_device base;
+6 -1
src/xrt/drivers/dummy/dummy_prober.c
··· 17 18 #include "dummy_interface.h" 19 20 - 21 struct dummy_prober 22 { 23 struct xrt_auto_prober base; 24 }; 25 26 static inline struct dummy_prober * 27 dummy_prober(struct xrt_auto_prober *p) 28 { 29 return (struct dummy_prober *)p; 30 } 31 32 static void 33 dummy_prober_destroy(struct xrt_auto_prober *p) 34 { ··· 37 free(dp); 38 } 39 40 static struct xrt_device * 41 dummy_prober_autoprobe(struct xrt_auto_prober *xap, 42 cJSON *attached_data,
··· 17 18 #include "dummy_interface.h" 19 20 + /*! 21 + * @implements xrt_auto_prober 22 + */ 23 struct dummy_prober 24 { 25 struct xrt_auto_prober base; 26 }; 27 28 + //! @private @memberof dummy_prober 29 static inline struct dummy_prober * 30 dummy_prober(struct xrt_auto_prober *p) 31 { 32 return (struct dummy_prober *)p; 33 } 34 35 + //! @public @memberof dummy_prober 36 static void 37 dummy_prober_destroy(struct xrt_auto_prober *p) 38 { ··· 41 free(dp); 42 } 43 44 + //! @public @memberof dummy_prober 45 static struct xrt_device * 46 dummy_prober_autoprobe(struct xrt_auto_prober *xap, 47 cJSON *attached_data,
+3
src/xrt/drivers/hdk/hdk_device.h
··· 24 HDK_VARIANT_2 25 }; 26 27 struct hdk_device 28 { 29 struct xrt_device base;
··· 24 HDK_VARIANT_2 25 }; 26 27 + /*! 28 + * @implements xrt_device 29 + */ 30 struct hdk_device 31 { 32 struct xrt_device base;
+2
src/xrt/drivers/hydra/hydra_driver.c
··· 154 * A Razer Hydra system containing two controllers. 155 * 156 * @ingroup drv_hydra 157 */ 158 struct hydra_system 159 { ··· 191 * A Razer Hydra device, representing just a single controller. 192 * 193 * @ingroup drv_hydra 194 */ 195 struct hydra_device 196 {
··· 154 * A Razer Hydra system containing two controllers. 155 * 156 * @ingroup drv_hydra 157 + * @extends xrt_tracking_origin 158 */ 159 struct hydra_system 160 { ··· 192 * A Razer Hydra device, representing just a single controller. 193 * 194 * @ingroup drv_hydra 195 + * @implements xrt_device 196 */ 197 struct hydra_device 198 {
+2
src/xrt/drivers/north_star/ns_hmd.h
··· 118 * Information about the whole North Star headset. 119 * 120 * @ingroup drv_ns 121 */ 122 struct ns_hmd 123 { ··· 139 * The mesh generator for the North Star distortion. 140 * 141 * @ingroup drv_ns 142 */ 143 struct ns_mesh 144 {
··· 118 * Information about the whole North Star headset. 119 * 120 * @ingroup drv_ns 121 + * @implements xrt_device 122 */ 123 struct ns_hmd 124 { ··· 140 * The mesh generator for the North Star distortion. 141 * 142 * @ingroup drv_ns 143 + * @implements u_uv_generator 144 */ 145 struct ns_mesh 146 {
+6
src/xrt/drivers/north_star/ns_prober.c
··· 24 DEBUG_GET_ONCE_BOOL_OPTION(ns_spew, "NS_PRINT_SPEW", false) 25 DEBUG_GET_ONCE_BOOL_OPTION(ns_debug, "NS_PRINT_DEBUG", false) 26 27 struct ns_prober 28 { 29 struct xrt_auto_prober base; ··· 32 bool print_debug; 33 }; 34 35 static inline struct ns_prober * 36 ns_prober(struct xrt_auto_prober *p) 37 { 38 return (struct ns_prober *)p; 39 } 40 41 static void 42 ns_prober_destroy(struct xrt_auto_prober *p) 43 { ··· 46 free(nsp); 47 } 48 49 static struct xrt_device * 50 ns_prober_autoprobe(struct xrt_auto_prober *xap, 51 cJSON *attached_data,
··· 24 DEBUG_GET_ONCE_BOOL_OPTION(ns_spew, "NS_PRINT_SPEW", false) 25 DEBUG_GET_ONCE_BOOL_OPTION(ns_debug, "NS_PRINT_DEBUG", false) 26 27 + /*! 28 + * @implements xrt_auto_prober 29 + */ 30 struct ns_prober 31 { 32 struct xrt_auto_prober base; ··· 35 bool print_debug; 36 }; 37 38 + //! @private @memberof ns_prober 39 static inline struct ns_prober * 40 ns_prober(struct xrt_auto_prober *p) 41 { 42 return (struct ns_prober *)p; 43 } 44 45 + //! @public @memberof ns_prober 46 static void 47 ns_prober_destroy(struct xrt_auto_prober *p) 48 { ··· 51 free(nsp); 52 } 53 54 + //! @public @memberof ns_prober 55 static struct xrt_device * 56 ns_prober_autoprobe(struct xrt_auto_prober *xap, 57 cJSON *attached_data,
+3
src/xrt/drivers/ohmd/oh_device.h
··· 19 typedef struct ohmd_context ohmd_context; 20 typedef struct ohmd_device ohmd_device; 21 22 struct oh_device 23 { 24 struct xrt_device base;
··· 19 typedef struct ohmd_context ohmd_context; 20 typedef struct ohmd_device ohmd_device; 21 22 + /*! 23 + * @implements xrt_device 24 + */ 25 struct oh_device 26 { 27 struct xrt_device base;
+6
src/xrt/drivers/ohmd/oh_prober.c
··· 24 DEBUG_GET_ONCE_BOOL_OPTION(oh_debug, "OH_PRINT_DEBUG", false) 25 DEBUG_GET_ONCE_BOOL_OPTION(oh_external, "OH_EXTERNAL_DRIVER", false) 26 27 struct oh_prober 28 { 29 struct xrt_auto_prober base; ··· 32 bool print_debug; 33 }; 34 35 static inline struct oh_prober * 36 oh_prober(struct xrt_auto_prober *p) 37 { 38 return (struct oh_prober *)p; 39 } 40 41 static void 42 oh_prober_destroy(struct xrt_auto_prober *p) 43 { ··· 51 free(ohp); 52 } 53 54 static struct xrt_device * 55 oh_prober_autoprobe(struct xrt_auto_prober *xap, 56 cJSON *attached_data,
··· 24 DEBUG_GET_ONCE_BOOL_OPTION(oh_debug, "OH_PRINT_DEBUG", false) 25 DEBUG_GET_ONCE_BOOL_OPTION(oh_external, "OH_EXTERNAL_DRIVER", false) 26 27 + /*! 28 + * @implements xrt_auto_prober 29 + */ 30 struct oh_prober 31 { 32 struct xrt_auto_prober base; ··· 35 bool print_debug; 36 }; 37 38 + //! @private @memberof oh_prober 39 static inline struct oh_prober * 40 oh_prober(struct xrt_auto_prober *p) 41 { 42 return (struct oh_prober *)p; 43 } 44 45 + //! @public @memberof oh_prober 46 static void 47 oh_prober_destroy(struct xrt_auto_prober *p) 48 { ··· 56 free(ohp); 57 } 58 59 + //! @public @memberof oh_prober 60 static struct xrt_device * 61 oh_prober_autoprobe(struct xrt_auto_prober *xap, 62 cJSON *attached_data,
+2
src/xrt/drivers/psmv/psmv_driver.c
··· 440 * Translated to axis that means the ball is on the Y+ axis, the buttons on the 441 * Z+ axis, the trigger on the Z- axis, the USB port on the Y- axis, the start 442 * button on the X+ axis, select button on the X- axis. 443 */ 444 struct psmv_device 445 {
··· 440 * Translated to axis that means the ball is on the Y+ axis, the buttons on the 441 * Z+ axis, the trigger on the Z- axis, the USB port on the Y- axis, the start 442 * button on the X+ axis, select button on the X- axis. 443 + * 444 + * @implements xrt_device 445 */ 446 struct psmv_device 447 {
+1
src/xrt/drivers/psvr/psvr_device.c
··· 49 * Private struct for the @ref drv_psvr device. 50 * 51 * @ingroup drv_psvr 52 */ 53 struct psvr_device 54 {
··· 49 * Private struct for the @ref drv_psvr device. 50 * 51 * @ingroup drv_psvr 52 + * @implements xrt_device 53 */ 54 struct psvr_device 55 {
+1
src/xrt/drivers/psvr/psvr_interface.h
··· 24 * Create a probe for PSVR devices. 25 * 26 * @ingroup drv_psvr 27 */ 28 struct xrt_auto_prober * 29 psvr_create_auto_prober(void);
··· 24 * Create a probe for PSVR devices. 25 * 26 * @ingroup drv_psvr 27 + * @relates xrt_auto_prober 28 */ 29 struct xrt_auto_prober * 30 psvr_create_auto_prober(void);
+4
src/xrt/drivers/psvr/psvr_prober.c
··· 37 * PSVR prober struct. 38 * 39 * @ingroup drv_psvr 40 */ 41 struct psvr_prober 42 { ··· 54 * 55 */ 56 57 static inline struct psvr_prober * 58 psvr_prober(struct xrt_auto_prober *p) 59 { 60 return (struct psvr_prober *)p; 61 } 62 63 static void 64 psvr_prober_destroy(struct xrt_auto_prober *p) 65 { ··· 68 free(ppsvr); 69 } 70 71 static struct xrt_device * 72 psvr_prober_autoprobe(struct xrt_auto_prober *xap, 73 cJSON *attached_data,
··· 37 * PSVR prober struct. 38 * 39 * @ingroup drv_psvr 40 + * @implements xrt_auto_prober 41 */ 42 struct psvr_prober 43 { ··· 55 * 56 */ 57 58 + //! @private @memberof psvr_prober 59 static inline struct psvr_prober * 60 psvr_prober(struct xrt_auto_prober *p) 61 { 62 return (struct psvr_prober *)p; 63 } 64 65 + //! @public @memberof psvr_prober 66 static void 67 psvr_prober_destroy(struct xrt_auto_prober *p) 68 { ··· 71 free(ppsvr); 72 } 73 74 + //! @public @memberof psvr_prober 75 static struct xrt_device * 76 psvr_prober_autoprobe(struct xrt_auto_prober *xap, 77 cJSON *attached_data,
+3
src/xrt/drivers/realsense/rs_6dof.c
··· 28 29 30 31 struct rs_6dof 32 { 33 struct xrt_device base;
··· 28 29 30 31 + /*! 32 + * @implements xrt_device 33 + */ 34 struct rs_6dof 35 { 36 struct xrt_device base;
+7
src/xrt/drivers/survive/survive_driver.c
··· 106 static bool survive_already_initialized = false; 107 108 #define MAX_PENDING_EVENTS 30 109 struct survive_device 110 { 111 struct xrt_device base; ··· 128 VIVE_VARIANT_INDEX 129 }; 130 131 struct survive_system 132 { 133 struct xrt_tracking_origin base;
··· 106 static bool survive_already_initialized = false; 107 108 #define MAX_PENDING_EVENTS 30 109 + 110 + /*! 111 + * @implements xrt_device 112 + */ 113 struct survive_device 114 { 115 struct xrt_device base; ··· 132 VIVE_VARIANT_INDEX 133 }; 134 135 + /*! 136 + * @extends xrt_tracking_origin 137 + */ 138 struct survive_system 139 { 140 struct xrt_tracking_origin base;
+33 -1
src/xrt/drivers/v4l2/v4l2_driver.c
··· 35 * 36 */ 37 38 #define V_SPEW(p, ...) \ 39 do { \ 40 if (p->print_spew) { \ ··· 44 } \ 45 } while (false) 46 47 #define V_DEBUG(p, ...) \ 48 do { \ 49 if (p->print_debug) { \ ··· 53 } \ 54 } while (false) 55 56 #define V_ERROR(p, ...) \ 57 do { \ 58 fprintf(stderr, "%s - ", __func__); \ ··· 91 * 92 */ 93 94 struct v4l2_frame 95 { 96 struct xrt_frame base; ··· 100 struct v4l2_buffer v_buf; 101 }; 102 103 struct v4l2_control_state 104 { 105 int force; ··· 110 }; 111 112 /*! 113 - * A single open v4l2 capture device, starts it's own thread and waits on it. 114 */ 115 struct v4l2_fs 116 {
··· 35 * 36 */ 37 38 + /*! 39 + * Spew level logging. 40 + * 41 + * Outputs a line, from the given format string and arguments, only if 42 + * v4l2_fs::print_spew is true. 43 + * @relates v4l2_fs 44 + */ 45 #define V_SPEW(p, ...) \ 46 do { \ 47 if (p->print_spew) { \ ··· 51 } \ 52 } while (false) 53 54 + /*! 55 + * Debug level logging. 56 + * 57 + * Outputs a line, from the given format string and arguments, only if 58 + * v4l2_fs::print_debug is true. 59 + * 60 + * @relates v4l2_fs 61 + */ 62 #define V_DEBUG(p, ...) \ 63 do { \ 64 if (p->print_debug) { \ ··· 68 } \ 69 } while (false) 70 71 + /*! 72 + * Error level logging. 73 + * 74 + * Outputs a line, from the given format string and arguments. 75 + * 76 + * @relates v4l2_fs 77 + */ 78 #define V_ERROR(p, ...) \ 79 do { \ 80 fprintf(stderr, "%s - ", __func__); \ ··· 113 * 114 */ 115 116 + /*! 117 + * @extends xrt_frame 118 + * @ingroup drv_v4l2 119 + */ 120 struct v4l2_frame 121 { 122 struct xrt_frame base; ··· 126 struct v4l2_buffer v_buf; 127 }; 128 129 + /*! 130 + * @ingroup drv_v4l2 131 + */ 132 struct v4l2_control_state 133 { 134 int force; ··· 139 }; 140 141 /*! 142 + * A single open v4l2 capture device, starts its own thread and waits on it. 143 + * 144 + * @implements xrt_frame_node 145 + * @implements xrt_fs 146 */ 147 struct v4l2_fs 148 {
+1
src/xrt/drivers/v4l2/v4l2_interface.h
··· 28 * Descriptor of a v4l2 source. 29 * 30 * @ingroup drv_v4l2 31 */ 32 struct v4l2_source_descriptor 33 {
··· 28 * Descriptor of a v4l2 source. 29 * 30 * @ingroup drv_v4l2 31 + * @extends xrt_fs_mode 32 */ 33 struct v4l2_source_descriptor 34 {
+1
src/xrt/drivers/vive/vive_controller_driver.c
··· 127 * A Vive Controller device, representing just a single controller. 128 * 129 * @ingroup drv_vive 130 */ 131 struct vive_controller_device 132 {
··· 127 * A Vive Controller device, representing just a single controller. 128 * 129 * @ingroup drv_vive 130 + * @implements xrt_device 131 */ 132 struct vive_controller_device 133 {
+3
src/xrt/drivers/vive/vive_device.h
··· 48 VIVE_VARIANT_INDEX 49 }; 50 51 struct vive_device 52 { 53 struct xrt_device base;
··· 48 VIVE_VARIANT_INDEX 49 }; 50 51 + /*! 52 + * @implements xrt_device 53 + */ 54 struct vive_device 55 { 56 struct xrt_device base;
+138 -42
src/xrt/include/xrt/xrt_compositor.h
··· 70 }; 71 72 /*! 73 - * Common swapchain base. 74 * 75 * @ingroup xrt_iface 76 */ ··· 106 }; 107 108 /*! 109 - * Helper for xrt_swapchain::acquire_image. 110 * 111 - * @ingroup xrt_iface 112 */ 113 static inline bool 114 xrt_swapchain_acquire_image(struct xrt_swapchain *xsc, uint32_t *index) ··· 117 } 118 119 /*! 120 - * Helper for xrt_swapchain::wait_image. 121 * 122 - * @ingroup xrt_iface 123 */ 124 static inline bool 125 xrt_swapchain_wait_image(struct xrt_swapchain *xsc, ··· 130 } 131 132 /*! 133 - * Helper for xrt_swapchain::release_image. 134 * 135 - * @ingroup xrt_iface 136 */ 137 static inline bool 138 xrt_swapchain_release_image(struct xrt_swapchain *xsc, uint32_t index) ··· 141 } 142 143 /*! 144 - * Helper for xrt_swapchain::destroy, does a null check and sets xc_ptr to 145 - * null if freed. 146 * 147 - * @ingroup xrt_iface 148 */ 149 static inline void 150 xrt_swapchain_destroy(struct xrt_swapchain **xsc_ptr) ··· 159 } 160 161 /*! 162 - * Common compositor base. 163 * 164 * @ingroup xrt_iface 165 */ ··· 241 void (*discard_frame)(struct xrt_compositor *xc); 242 243 /*! 244 - * Begins layer submission, this and the other layer_* calls equivalent 245 - * to xrEndFrame, except over multiple class. It's only after 246 * @p layer_commit that layers will be displayed. From the point of view 247 * of the swapchain the image is used as soon as it's given in a call. 248 */ ··· 252 /*! 253 * Adds a stereo projection layer for submissions. 254 * 255 * @param timestamp When should this layer be shown. 256 * @param xdev The device the layer is relative to. 257 * @param name Which pose this layer is relative to. ··· 294 * Adds a quad layer for submission, the center of the quad is specified 295 * by the pose and extends outwards from it. 296 * 297 * @param timestamp When should this layer be shown. 298 * @param xdev The device the layer is relative to. 299 * @param name Which pose this layer is relative to. ··· 337 }; 338 339 /*! 340 - * Helper for xrt_compositor::create_swapchain 341 * 342 - * @ingroup xrt_iface 343 */ 344 static inline struct xrt_swapchain * 345 xrt_comp_create_swapchain(struct xrt_compositor *xc, ··· 359 } 360 361 /*! 362 - * Helper for xrt_compositor::poll_events 363 * 364 - * @ingroup xrt_iface 365 */ 366 static inline void 367 xrt_comp_poll_events(struct xrt_compositor *xc, uint64_t *WIP) ··· 370 } 371 372 /*! 373 - * Helper for xrt_compositor::prepare_session 374 * 375 - * @ingroup xrt_iface 376 */ 377 static inline void 378 xrt_comp_prepare_session(struct xrt_compositor *xc) ··· 381 } 382 383 /*! 384 - * Helper for xrt_compositor::begin_session 385 * 386 - * @ingroup xrt_iface 387 */ 388 static inline void 389 xrt_comp_begin_session(struct xrt_compositor *xc, enum xrt_view_type view_type) ··· 392 } 393 394 /*! 395 - * Helper for xrt_compositor::end_session 396 * 397 - * @ingroup xrt_iface 398 */ 399 static inline void 400 xrt_comp_end_session(struct xrt_compositor *xc) ··· 403 } 404 405 /*! 406 - * Helper for xrt_compositor::wait_frame 407 * 408 - * @ingroup xrt_iface 409 */ 410 static inline void 411 xrt_comp_wait_frame(struct xrt_compositor *xc, ··· 416 } 417 418 /*! 419 - * Helper for xrt_compositor::begin_frame 420 * 421 - * @ingroup xrt_iface 422 */ 423 static inline void 424 xrt_comp_begin_frame(struct xrt_compositor *xc) ··· 427 } 428 429 /*! 430 - * Helper for xrt_compositor::discard_frame 431 * 432 - * @ingroup xrt_iface 433 */ 434 static inline void 435 xrt_comp_discard_frame(struct xrt_compositor *xc) ··· 438 } 439 440 /*! 441 - * Helper for xrt_compositor::layer_begin 442 * 443 - * @ingroup xrt_iface 444 */ 445 static inline void 446 xrt_comp_layer_begin(struct xrt_compositor *xc, ··· 450 } 451 452 /*! 453 - * Helper for xrt_compositor::layer_stereo_projection 454 * 455 - * @ingroup xrt_iface 456 */ 457 static inline void 458 xrt_comp_layer_stereo_projection(struct xrt_compositor *xc, ··· 481 } 482 483 /*! 484 - * Helper for xrt_compositor::layer_quad 485 * 486 - * @ingroup xrt_iface 487 */ 488 static inline void 489 xrt_comp_layer_quad(struct xrt_compositor *xc, ··· 505 } 506 507 /*! 508 - * Helper for xrt_compositor::layer_commit 509 * 510 - * @ingroup xrt_iface 511 */ 512 static inline void 513 xrt_comp_layer_commit(struct xrt_compositor *xc) ··· 516 } 517 518 /*! 519 - * Helper for xrt_compositor::destroy, does a null check and sets xc_ptr to 520 - * null if freed. 521 * 522 - * @ingroup xrt_iface 523 */ 524 static inline void 525 xrt_comp_destroy(struct xrt_compositor **xc_ptr) ··· 541 */ 542 543 /*! 544 * @ingroup xrt_iface comp_client 545 */ 546 struct xrt_swapchain_gl 547 { 548 struct xrt_swapchain base; 549 550 // GLuint ··· 554 }; 555 556 /*! 557 * @ingroup xrt_iface comp_client 558 */ 559 struct xrt_compositor_gl 560 { 561 struct xrt_compositor base; 562 }; 563 564 static inline struct xrt_swapchain_gl * 565 xrt_swapchain_gl(struct xrt_swapchain *xsc) 566 { 567 return (struct xrt_swapchain_gl *)xsc; 568 } 569 570 static inline struct xrt_compositor_gl * 571 xrt_compositor_gl(struct xrt_compositor *xc) 572 { ··· 592 * Base class for a Vulkan client swapchain. 593 * 594 * @ingroup xrt_iface comp_client 595 */ 596 struct xrt_swapchain_vk 597 { 598 struct xrt_swapchain base; 599 600 VkImage images[XRT_MAX_SWAPCHAIN_IMAGES]; ··· 605 * Base class for a Vulkan client compositor. 606 * 607 * @ingroup xrt_iface comp_client 608 */ 609 struct xrt_compositor_vk 610 { 611 struct xrt_compositor base; 612 }; 613 614 static inline struct xrt_swapchain_vk * 615 xrt_swapchain_vk(struct xrt_swapchain *xsc) 616 { 617 return (struct xrt_swapchain_vk *)xsc; 618 } 619 620 static inline struct xrt_compositor_vk * 621 xrt_compositor_vk(struct xrt_compositor *xc) 622 { ··· 634 * A single image of a fd based swapchain. 635 * 636 * @ingroup xrt_iface comp 637 */ 638 struct xrt_image_fd 639 { ··· 643 }; 644 645 /*! 646 - * A swapchain that exposes fd to be imported into a client API. 647 * 648 * @ingroup xrt_iface comp 649 */ 650 struct xrt_swapchain_fd 651 { 652 struct xrt_swapchain base; 653 654 struct xrt_image_fd images[XRT_MAX_SWAPCHAIN_IMAGES]; 655 }; 656 657 /*! 658 - * Main compositor. 659 * 660 * @ingroup xrt_iface comp 661 */ 662 struct xrt_compositor_fd 663 { 664 struct xrt_compositor base; 665 }; 666 667 static inline struct xrt_swapchain_fd * 668 xrt_swapchain_fd(struct xrt_swapchain *xsc) 669 { 670 return (struct xrt_swapchain_fd *)xsc; 671 } 672 673 static inline struct xrt_compositor_fd * 674 xrt_compositor_fd(struct xrt_compositor *xc) 675 {
··· 70 }; 71 72 /*! 73 + * @interface xrt_swapchain 74 + * Common swapchain interface/base. 75 * 76 * @ingroup xrt_iface 77 */ ··· 107 }; 108 109 /*! 110 + * @copydoc xrt_swapchain::acquire_image 111 * 112 + * Helper for calling through the function pointer. 113 + * 114 + * @public @memberof xrt_swapchain 115 */ 116 static inline bool 117 xrt_swapchain_acquire_image(struct xrt_swapchain *xsc, uint32_t *index) ··· 120 } 121 122 /*! 123 + * @copydoc xrt_swapchain::wait_image 124 + * 125 + * Helper for calling through the function pointer. 126 * 127 + * @public @memberof xrt_swapchain 128 */ 129 static inline bool 130 xrt_swapchain_wait_image(struct xrt_swapchain *xsc, ··· 135 } 136 137 /*! 138 + * @copydoc xrt_swapchain::release_image 139 + * 140 + * Helper for calling through the function pointer. 141 * 142 + * @public @memberof xrt_swapchain 143 */ 144 static inline bool 145 xrt_swapchain_release_image(struct xrt_swapchain *xsc, uint32_t index) ··· 148 } 149 150 /*! 151 + * @copydoc xrt_swapchain::destroy 152 + * 153 + * Helper for calling through the function pointer: does a null check and sets 154 + * xsc_ptr to null if freed. 155 * 156 + * @public @memberof xrt_swapchain 157 */ 158 static inline void 159 xrt_swapchain_destroy(struct xrt_swapchain **xsc_ptr) ··· 168 } 169 170 /*! 171 + * @interface xrt_compositor 172 + * 173 + * Common compositor client interface/base. 174 * 175 * @ingroup xrt_iface 176 */ ··· 252 void (*discard_frame)(struct xrt_compositor *xc); 253 254 /*! 255 + * Begins layer submission, this and the other layer_* calls are 256 + * equivalent to xrEndFrame, except over multiple calls. It's only after 257 * @p layer_commit that layers will be displayed. From the point of view 258 * of the swapchain the image is used as soon as it's given in a call. 259 */ ··· 263 /*! 264 * Adds a stereo projection layer for submissions. 265 * 266 + * @param xc Self pointer 267 * @param timestamp When should this layer be shown. 268 * @param xdev The device the layer is relative to. 269 * @param name Which pose this layer is relative to. ··· 306 * Adds a quad layer for submission, the center of the quad is specified 307 * by the pose and extends outwards from it. 308 * 309 + * @param xc Self pointer 310 * @param timestamp When should this layer be shown. 311 * @param xdev The device the layer is relative to. 312 * @param name Which pose this layer is relative to. ··· 350 }; 351 352 /*! 353 + * @copydoc xrt_compositor::create_swapchain 354 + * 355 + * Helper for calling through the function pointer. 356 * 357 + * @public @memberof xrt_compositor 358 */ 359 static inline struct xrt_swapchain * 360 xrt_comp_create_swapchain(struct xrt_compositor *xc, ··· 374 } 375 376 /*! 377 + * @copydoc xrt_compositor::poll_events 378 * 379 + * Helper for calling through the function pointer. 380 + * 381 + * @public @memberof xrt_compositor 382 */ 383 static inline void 384 xrt_comp_poll_events(struct xrt_compositor *xc, uint64_t *WIP) ··· 387 } 388 389 /*! 390 + * @copydoc xrt_compositor::prepare_session 391 * 392 + * Helper for calling through the function pointer. 393 + * 394 + * @public @memberof xrt_compositor 395 */ 396 static inline void 397 xrt_comp_prepare_session(struct xrt_compositor *xc) ··· 400 } 401 402 /*! 403 + * @copydoc xrt_compositor::begin_session 404 * 405 + * Helper for calling through the function pointer. 406 + * 407 + * @public @memberof xrt_compositor 408 */ 409 static inline void 410 xrt_comp_begin_session(struct xrt_compositor *xc, enum xrt_view_type view_type) ··· 413 } 414 415 /*! 416 + * @copydoc xrt_compositor::end_session 417 + * 418 + * Helper for calling through the function pointer. 419 * 420 + * @public @memberof xrt_compositor 421 */ 422 static inline void 423 xrt_comp_end_session(struct xrt_compositor *xc) ··· 426 } 427 428 /*! 429 + * @copydoc xrt_compositor::wait_frame 430 + * 431 + * Helper for calling through the function pointer. 432 * 433 + * @public @memberof xrt_compositor 434 */ 435 static inline void 436 xrt_comp_wait_frame(struct xrt_compositor *xc, ··· 441 } 442 443 /*! 444 + * @copydoc xrt_compositor::begin_frame 445 * 446 + * Helper for calling through the function pointer. 447 + * 448 + * @public @memberof xrt_compositor 449 */ 450 static inline void 451 xrt_comp_begin_frame(struct xrt_compositor *xc) ··· 454 } 455 456 /*! 457 + * @copydoc xrt_compositor::discard_frame 458 + * 459 + * Helper for calling through the function pointer. 460 * 461 + * @public @memberof xrt_compositor 462 */ 463 static inline void 464 xrt_comp_discard_frame(struct xrt_compositor *xc) ··· 467 } 468 469 /*! 470 + * @copydoc xrt_compositor::layer_begin 471 * 472 + * Helper for calling through the function pointer. 473 + * 474 + * @public @memberof xrt_compositor 475 */ 476 static inline void 477 xrt_comp_layer_begin(struct xrt_compositor *xc, ··· 481 } 482 483 /*! 484 + * @copydoc xrt_compositor::layer_stereo_projection 485 * 486 + * Helper for calling through the function pointer. 487 + * 488 + * @public @memberof xrt_compositor 489 */ 490 static inline void 491 xrt_comp_layer_stereo_projection(struct xrt_compositor *xc, ··· 514 } 515 516 /*! 517 + * @copydoc xrt_compositor::layer_quad 518 + * 519 + * Helper for calling through the function pointer. 520 * 521 + * @public @memberof xrt_compositor 522 */ 523 static inline void 524 xrt_comp_layer_quad(struct xrt_compositor *xc, ··· 540 } 541 542 /*! 543 + * @copydoc xrt_compositor::layer_commit 544 * 545 + * Helper for calling through the function pointer. 546 + * 547 + * @public @memberof xrt_compositor 548 */ 549 static inline void 550 xrt_comp_layer_commit(struct xrt_compositor *xc) ··· 553 } 554 555 /*! 556 + * @copydoc xrt_compositor::destroy 557 + * 558 + * Helper for calling through the function pointer: does a null check and sets 559 + * xc_ptr to null if freed. 560 * 561 + * @public @memberof xrt_compositor 562 */ 563 static inline void 564 xrt_comp_destroy(struct xrt_compositor **xc_ptr) ··· 580 */ 581 582 /*! 583 + * Base class for an OpenGL (ES) client swapchain. 584 * @ingroup xrt_iface comp_client 585 + * @extends xrt_swapchain 586 */ 587 struct xrt_swapchain_gl 588 { 589 + //! @public Base 590 struct xrt_swapchain base; 591 592 // GLuint ··· 596 }; 597 598 /*! 599 + * Base class for an OpenGL (ES) client compositor. 600 * @ingroup xrt_iface comp_client 601 + * @extends xrt_compositor 602 */ 603 struct xrt_compositor_gl 604 { 605 struct xrt_compositor base; 606 }; 607 608 + /*! 609 + * Down-cast helper. 610 + * 611 + * @private @memberof xrt_swapchain_gl 612 + * 613 + * @todo unused - remove? 614 + */ 615 static inline struct xrt_swapchain_gl * 616 xrt_swapchain_gl(struct xrt_swapchain *xsc) 617 { 618 return (struct xrt_swapchain_gl *)xsc; 619 } 620 621 + /*! 622 + * Down-cast helper. 623 + * 624 + * @private @memberof xrt_compositor_gl 625 + * 626 + * @todo unused - remove? 627 + */ 628 static inline struct xrt_compositor_gl * 629 xrt_compositor_gl(struct xrt_compositor *xc) 630 { ··· 650 * Base class for a Vulkan client swapchain. 651 * 652 * @ingroup xrt_iface comp_client 653 + * @extends xrt_swapchain 654 */ 655 struct xrt_swapchain_vk 656 { 657 + //! @public Base 658 struct xrt_swapchain base; 659 660 VkImage images[XRT_MAX_SWAPCHAIN_IMAGES]; ··· 665 * Base class for a Vulkan client compositor. 666 * 667 * @ingroup xrt_iface comp_client 668 + * @extends xrt_compositor 669 */ 670 struct xrt_compositor_vk 671 { 672 + //! @public Base 673 struct xrt_compositor base; 674 }; 675 676 + /*! 677 + * Down-cast helper. 678 + * 679 + * @private @memberof xrt_swapchain_vk 680 + * 681 + * @todo unused - remove? 682 + */ 683 static inline struct xrt_swapchain_vk * 684 xrt_swapchain_vk(struct xrt_swapchain *xsc) 685 { 686 return (struct xrt_swapchain_vk *)xsc; 687 } 688 689 + /*! 690 + * Down-cast helper. 691 + * 692 + * @private @memberof xrt_compositor_vk 693 + * 694 + * @todo unused - remove? 695 + */ 696 static inline struct xrt_compositor_vk * 697 xrt_compositor_vk(struct xrt_compositor *xc) 698 { ··· 710 * A single image of a fd based swapchain. 711 * 712 * @ingroup xrt_iface comp 713 + * @see xrt_swapchain_fd 714 */ 715 struct xrt_image_fd 716 { ··· 720 }; 721 722 /*! 723 + * @interface xrt_swapchain_fd 724 + * Base class for a swapchain that exposes fd to be imported into a client API. 725 * 726 * @ingroup xrt_iface comp 727 + * @extends xrt_swapchain 728 */ 729 struct xrt_swapchain_fd 730 { 731 + //! @public Base 732 struct xrt_swapchain base; 733 734 struct xrt_image_fd images[XRT_MAX_SWAPCHAIN_IMAGES]; 735 }; 736 737 /*! 738 + * @interface xrt_compositor_fd 739 + * 740 + * Main compositor server interface. 741 * 742 * @ingroup xrt_iface comp 743 + * @extends xrt_compositor 744 */ 745 struct xrt_compositor_fd 746 { 747 + //! @public Base 748 struct xrt_compositor base; 749 }; 750 751 + /*! 752 + * Down-cast helper. 753 + * 754 + * @public @memberof xrt_swapchain_fd 755 + */ 756 static inline struct xrt_swapchain_fd * 757 xrt_swapchain_fd(struct xrt_swapchain *xsc) 758 { 759 return (struct xrt_swapchain_fd *)xsc; 760 } 761 762 + /*! 763 + * Down-cast helper. 764 + * 765 + * @public @memberof xrt_compositor_fd 766 + * 767 + * @todo unused - remove? 768 + */ 769 static inline struct xrt_compositor_fd * 770 xrt_compositor_fd(struct xrt_compositor *xc) 771 {
+12
src/xrt/include/xrt/xrt_device.h
··· 202 }; 203 204 /*! 205 * A single HMD or input device. 206 * 207 * @ingroup xrt_iface ··· 311 312 /*! 313 * Helper function for @ref xrt_device::update_inputs. 314 */ 315 static inline void 316 xrt_device_update_inputs(struct xrt_device *xdev) ··· 320 321 /*! 322 * Helper function for @ref xrt_device::get_tracked_pose. 323 */ 324 static inline void 325 xrt_device_get_tracked_pose(struct xrt_device *xdev, ··· 334 335 /*! 336 * Helper function for @ref xrt_device::set_output. 337 */ 338 static inline void 339 xrt_device_set_output(struct xrt_device *xdev, ··· 345 346 /*! 347 * Helper function for @ref xrt_device::get_view_pose. 348 */ 349 static inline void 350 xrt_device_get_view_pose(struct xrt_device *xdev, ··· 357 358 /*! 359 * Helper function for @ref xrt_device::destroy. 360 */ 361 static inline void 362 xrt_device_destroy(struct xrt_device **xdev_ptr)
··· 202 }; 203 204 /*! 205 + * @interface xrt_device 206 + * 207 * A single HMD or input device. 208 * 209 * @ingroup xrt_iface ··· 313 314 /*! 315 * Helper function for @ref xrt_device::update_inputs. 316 + * 317 + * @public @memberof xrt_device 318 */ 319 static inline void 320 xrt_device_update_inputs(struct xrt_device *xdev) ··· 324 325 /*! 326 * Helper function for @ref xrt_device::get_tracked_pose. 327 + * 328 + * @public @memberof xrt_device 329 */ 330 static inline void 331 xrt_device_get_tracked_pose(struct xrt_device *xdev, ··· 340 341 /*! 342 * Helper function for @ref xrt_device::set_output. 343 + * 344 + * @public @memberof xrt_device 345 */ 346 static inline void 347 xrt_device_set_output(struct xrt_device *xdev, ··· 353 354 /*! 355 * Helper function for @ref xrt_device::get_view_pose. 356 + * 357 + * @public @memberof xrt_device 358 */ 359 static inline void 360 xrt_device_get_view_pose(struct xrt_device *xdev, ··· 367 368 /*! 369 * Helper function for @ref xrt_device::destroy. 370 + * 371 + * @public @memberof xrt_device 372 */ 373 static inline void 374 xrt_device_destroy(struct xrt_device **xdev_ptr)
+12 -3
src/xrt/include/xrt/xrt_frame.h
··· 44 45 46 /*! 47 * A object that is sent frames. 48 * 49 * @ingroup xrt_iface 50 */ ··· 58 }; 59 60 /*! 61 * A interface object used for destroying a frame graph. 62 * 63 * @see container_of ··· 105 * @param[in] src Object to be have it's refcount increased @p dst is set to 106 * this. 107 * @ingroup xrt_iface 108 */ 109 static inline void 110 xrt_frame_reference(struct xrt_frame **dst, struct xrt_frame *src) ··· 131 /*! 132 * Add a node to a context. 133 * 134 - * @ingroup xrt_iface 135 */ 136 static inline void 137 xrt_frame_context_add(struct xrt_frame_context *xfctx, ··· 142 } 143 144 /*! 145 - * Destroy all child nodes, but free the context itself. 146 * 147 - * @ingroup xrt_iface 148 */ 149 static inline void 150 xrt_frame_context_destroy_nodes(struct xrt_frame_context *xfctx)
··· 44 45 46 /*! 47 + * @interface xrt_frame_sink 48 + * 49 * A object that is sent frames. 50 + * 51 + * All objects that implement @ref xrt_frame_sink **must** also implement @ref 52 + * xrt_frame_node, and should take an @ref xrt_frame_context to register 53 + * themselves with in their constructor. 54 * 55 * @ingroup xrt_iface 56 */ ··· 64 }; 65 66 /*! 67 + * @interface xrt_frame_node 68 + * 69 * A interface object used for destroying a frame graph. 70 * 71 * @see container_of ··· 113 * @param[in] src Object to be have it's refcount increased @p dst is set to 114 * this. 115 * @ingroup xrt_iface 116 + * @relates xrt_frame 117 */ 118 static inline void 119 xrt_frame_reference(struct xrt_frame **dst, struct xrt_frame *src) ··· 140 /*! 141 * Add a node to a context. 142 * 143 + * @public @memberof xrt_frame_context 144 */ 145 static inline void 146 xrt_frame_context_add(struct xrt_frame_context *xfctx, ··· 151 } 152 153 /*! 154 + * Destroy all child nodes, but do not free the context itself. 155 * 156 + * @public @memberof xrt_frame_context 157 */ 158 static inline void 159 xrt_frame_context_destroy_nodes(struct xrt_frame_context *xfctx)
+28 -12
src/xrt/include/xrt/xrt_frameserver.h
··· 27 * floats for broad applicability. 28 * 29 * @ingroup xrt_iface 30 */ 31 struct xrt_fs_capture_parameters 32 { ··· 34 float exposure; 35 }; 36 37 struct xrt_fs_mode 38 { 39 uint32_t width; ··· 43 }; 44 45 /*! 46 - * Frameserver that generates frame, multiple subframes (like stereo and 47 * mipmaps) can be generate in one frame. 48 * 49 * @ingroup xrt_iface ··· 56 char name[512]; 57 58 /*! 59 - * All frames produced by this frameserver is tagged with this id. 60 */ 61 uint64_t source_id; 62 ··· 100 */ 101 102 /*! 103 - * Helper for xrt_fs::enumerate_modes. 104 * 105 - * @ingroup xrt_iface 106 */ 107 static inline bool 108 xrt_fs_enumerate_modes(struct xrt_fs *xfs, ··· 113 } 114 115 /*! 116 - * Helper for xrt_fs::configure_capture. 117 * 118 - * @ingroup xrt_iface 119 */ 120 static inline bool 121 xrt_fs_configure_capture(struct xrt_fs *xfs, ··· 125 } 126 127 /*! 128 - * Helper for xrt_fs::stream_start. 129 * 130 - * @ingroup xrt_iface 131 */ 132 static inline bool 133 xrt_fs_stream_start(struct xrt_fs *xfs, ··· 138 } 139 140 /*! 141 - * Helper for xrt_fs::stream_stop. 142 * 143 - * @ingroup xrt_iface 144 */ 145 static inline bool 146 xrt_fs_stream_stop(struct xrt_fs *xfs) ··· 149 } 150 151 /*! 152 - * Helper for xrt_fs::is_running. 153 * 154 - * @ingroup xrt_iface 155 */ 156 static inline bool 157 xrt_fs_is_running(struct xrt_fs *xfs)
··· 27 * floats for broad applicability. 28 * 29 * @ingroup xrt_iface 30 + * @see xrt_fs 31 */ 32 struct xrt_fs_capture_parameters 33 { ··· 35 float exposure; 36 }; 37 38 + /*! 39 + * @see xrt_fs 40 + * @ingroup xrt_iface 41 + */ 42 struct xrt_fs_mode 43 { 44 uint32_t width; ··· 48 }; 49 50 /*! 51 + * @interface xrt_fs 52 + * Frameserver that generates frames. Multiple subframes (like stereo and 53 * mipmaps) can be generate in one frame. 54 * 55 * @ingroup xrt_iface ··· 62 char name[512]; 63 64 /*! 65 + * All frames produced by this frameserver are tagged with this id. 66 */ 67 uint64_t source_id; 68 ··· 106 */ 107 108 /*! 109 + * @copydoc xrt_fs::enumerate_modes 110 * 111 + * Helper for calling through the function pointer. 112 + * 113 + * @public @memberof xrt_fs 114 */ 115 static inline bool 116 xrt_fs_enumerate_modes(struct xrt_fs *xfs, ··· 121 } 122 123 /*! 124 + * @copydoc xrt_fs::configure_capture 125 * 126 + * Helper for calling through the function pointer. 127 + * 128 + * @public @memberof xrt_fs 129 */ 130 static inline bool 131 xrt_fs_configure_capture(struct xrt_fs *xfs, ··· 135 } 136 137 /*! 138 + * @copydoc xrt_fs::stream_start 139 * 140 + * Helper for calling through the function pointer. 141 + * 142 + * @public @memberof xrt_fs 143 */ 144 static inline bool 145 xrt_fs_stream_start(struct xrt_fs *xfs, ··· 150 } 151 152 /*! 153 + * @copydoc xrt_fs::stream_stop 154 * 155 + * Helper for calling through the function pointer. 156 + * 157 + * @public @memberof xrt_fs 158 */ 159 static inline bool 160 xrt_fs_stream_stop(struct xrt_fs *xfs) ··· 163 } 164 165 /*! 166 + * @copydoc xrt_fs::is_running 167 * 168 + * Helper for calling through the function pointer. 169 + * 170 + * @public @memberof xrt_fs 171 */ 172 static inline bool 173 xrt_fs_is_running(struct xrt_fs *xfs)
+3
src/xrt/include/xrt/xrt_gfx_egl.h
··· 25 struct time_state; 26 27 /*! 28 * @ingroup xrt_iface 29 */ 30 struct xrt_compositor_gl * 31 xrt_gfx_provider_create_gl_egl(struct xrt_compositor_fd *xcfd,
··· 25 struct time_state; 26 27 /*! 28 + * Create an OpenGL(ES) compositor client using EGL. 29 + * 30 * @ingroup xrt_iface 31 + * @public @memberof xrt_compositor_fd 32 */ 33 struct xrt_compositor_gl * 34 xrt_gfx_provider_create_gl_egl(struct xrt_compositor_fd *xcfd,
+1
src/xrt/include/xrt/xrt_gfx_fd.h
··· 23 * Creates the main fd compositor. 24 * 25 * @ingroup xrt_iface 26 */ 27 struct xrt_compositor_fd * 28 xrt_gfx_provider_create_fd(struct xrt_device *xdev, bool flip_y);
··· 23 * Creates the main fd compositor. 24 * 25 * @ingroup xrt_iface 26 + * @relates xrt_compositor_fd 27 */ 28 struct xrt_compositor_fd * 29 xrt_gfx_provider_create_fd(struct xrt_device *xdev, bool flip_y);
+3
src/xrt/include/xrt/xrt_gfx_vk.h
··· 38 xrt_gfx_vk_get_versions(struct xrt_api_requirements *ver); 39 40 /*! 41 * @ingroup xrt_iface 42 */ 43 struct xrt_compositor_vk * 44 xrt_gfx_vk_provider_create(struct xrt_compositor_fd *xcfd,
··· 38 xrt_gfx_vk_get_versions(struct xrt_api_requirements *ver); 39 40 /*! 41 + * Create a Vulkan compositor client. 42 + * 43 * @ingroup xrt_iface 44 + * @public @memberof xrt_compositor_fd 45 */ 46 struct xrt_compositor_vk * 47 xrt_gfx_vk_provider_create(struct xrt_compositor_fd *xcfd,
+3
src/xrt/include/xrt/xrt_gfx_xlib.h
··· 24 struct time_state; 25 26 /*! 27 * @ingroup xrt_iface 28 */ 29 struct xrt_compositor_gl * 30 xrt_gfx_provider_create_gl_xlib(struct xrt_compositor_fd *xcfd,
··· 24 struct time_state; 25 26 /*! 27 + * Create an OpenGL compositor client using xlib. 28 + * 29 * @ingroup xrt_iface 30 + * @public @memberof xrt_compositor_fd 31 */ 32 struct xrt_compositor_gl * 33 xrt_gfx_provider_create_gl_xlib(struct xrt_compositor_fd *xcfd,
+15 -21
src/xrt/include/xrt/xrt_instance.h
··· 26 */ 27 28 /*! 29 * This interface acts as a root object for Monado. 30 * It typically either wraps an @ref xrt_prober or forms a connection to an 31 * out-of-process XR service. ··· 37 * interface, which is exposed by implementing xrt_instance_create(). 38 * 39 * Additional information can be found in @ref md_targets 40 */ 41 struct xrt_instance 42 { ··· 130 }; 131 132 /*! 133 - * @name Method call helpers for xrt_instance 134 - * Calling code should prefer using these instead of directly using the function 135 - * pointer members. 136 - * @{ 137 - */ 138 - /*! 139 - * Helper function for @ref xrt_instance::select. 140 * 141 - * See @ref xrt_instance::select for documentation. 142 * 143 - * @relates xrt_instance 144 */ 145 static inline int 146 xrt_instance_select(struct xrt_instance *xinst, ··· 151 } 152 153 /*! 154 - * Helper function for @ref xrt_instance::create_fd_compositor. 155 * 156 - * See @ref xrt_instance::create_fd_compositor for documentation. 157 * 158 - * @relates xrt_instance 159 */ 160 static inline int 161 xrt_instance_create_fd_compositor(struct xrt_instance *xinst, ··· 167 } 168 169 /*! 170 - * Helper function for @ref xrt_instance::get_prober. 171 * 172 - * See @ref xrt_instance::get_prober for documentation. 173 * 174 - * @relates xrt_instance 175 */ 176 static inline int 177 xrt_instance_get_prober(struct xrt_instance *xinst, struct xrt_prober **out_xp) ··· 180 } 181 182 /*! 183 - * Helper function for @ref xrt_instance::destroy. 184 * 185 * @param[in,out] xinst_ptr A pointer to your instance implementation pointer. 186 * 187 * Will destroy the instance if *xinst_ptr is not NULL. Will then set *xinst_ptr 188 * to NULL. 189 * 190 - * @relates xrt_instance 191 */ 192 static inline void 193 xrt_instance_destroy(struct xrt_instance **xinst_ptr) ··· 200 xinst->destroy(xinst); 201 *xinst_ptr = NULL; 202 } 203 - /*! 204 - * @} 205 - */ 206 - 207 208 /*! 209 * @name Factory
··· 26 */ 27 28 /*! 29 + * @interface xrt_instance 30 + * 31 * This interface acts as a root object for Monado. 32 * It typically either wraps an @ref xrt_prober or forms a connection to an 33 * out-of-process XR service. ··· 39 * interface, which is exposed by implementing xrt_instance_create(). 40 * 41 * Additional information can be found in @ref md_targets 42 + * 43 + * @sa ipc_instance_create 44 */ 45 struct xrt_instance 46 { ··· 134 }; 135 136 /*! 137 + * @copydoc xrt_instance::select 138 * 139 + * Helper for calling through the function pointer. 140 * 141 + * @public @memberof xrt_instance 142 */ 143 static inline int 144 xrt_instance_select(struct xrt_instance *xinst, ··· 149 } 150 151 /*! 152 + * @copydoc xrt_instance::create_fd_compositor 153 * 154 + * Helper for calling through the function pointer. 155 * 156 + * @public @memberof xrt_instance 157 */ 158 static inline int 159 xrt_instance_create_fd_compositor(struct xrt_instance *xinst, ··· 165 } 166 167 /*! 168 + * @copydoc xrt_instance::get_prober 169 * 170 + * Helper for calling through the function pointer. 171 * 172 + * @public @memberof xrt_instance 173 */ 174 static inline int 175 xrt_instance_get_prober(struct xrt_instance *xinst, struct xrt_prober **out_xp) ··· 178 } 179 180 /*! 181 + * Destroy an xrt_instance - helper function. 182 * 183 * @param[in,out] xinst_ptr A pointer to your instance implementation pointer. 184 * 185 * Will destroy the instance if *xinst_ptr is not NULL. Will then set *xinst_ptr 186 * to NULL. 187 * 188 + * @public @memberof xrt_instance 189 */ 190 static inline void 191 xrt_instance_destroy(struct xrt_instance **xinst_ptr) ··· 198 xinst->destroy(xinst); 199 *xinst_ptr = NULL; 200 } 201 202 /*! 203 * @name Factory
+18 -21
src/xrt/include/xrt/xrt_prober.h
··· 224 /*! 225 * Helper function for @ref xrt_prober::probe. 226 * 227 - * @ingroup xrt_iface 228 - * @relates xrt_prober 229 */ 230 static inline int 231 xrt_prober_probe(struct xrt_prober *xp) ··· 236 /*! 237 * Helper function for @ref xrt_prober::dump. 238 * 239 - * @ingroup xrt_iface 240 - * @relates xrt_prober 241 */ 242 static inline int 243 xrt_prober_dump(struct xrt_prober *xp) ··· 248 /*! 249 * Helper function for @ref xrt_prober::select. 250 * 251 - * @ingroup xrt_iface 252 - * @relates xrt_prober 253 */ 254 static inline int 255 xrt_prober_select(struct xrt_prober *xp, ··· 262 /*! 263 * Helper function for @ref xrt_prober::open_hid_interface. 264 * 265 - * @ingroup xrt_iface 266 - * @relates xrt_prober 267 */ 268 static inline int 269 xrt_prober_open_hid_interface(struct xrt_prober *xp, ··· 277 /*! 278 * Helper function for @ref xrt_prober::get_string_descriptor. 279 * 280 - * @ingroup xrt_iface 281 - * @relates xrt_prober 282 */ 283 static inline int 284 xrt_prober_get_string_descriptor(struct xrt_prober *xp, ··· 294 /*! 295 * Helper function for @ref xrt_prober::can_open. 296 * 297 - * @ingroup xrt_iface 298 - * @relates xrt_prober 299 */ 300 static inline bool 301 xrt_prober_can_open(struct xrt_prober *xp, struct xrt_prober_device *xpdev) ··· 307 /*! 308 * Helper function for @ref xrt_prober::xrt_prober_open_video_device. 309 * 310 - * @ingroup xrt_iface 311 - * @relates xrt_prober 312 */ 313 static inline int 314 xrt_prober_open_video_device(struct xrt_prober *xp, ··· 322 /*! 323 * Helper function for @ref xrt_prober::list_video_devices. 324 * 325 - * @ingroup xrt_iface 326 - * @relates xrt_prober 327 */ 328 static inline int 329 xrt_prober_list_video_devices(struct xrt_prober *xp, ··· 336 /*! 337 * Helper function for @ref xrt_prober::destroy. 338 * 339 - * @ingroup xrt_iface 340 - * @relates xrt_prober 341 */ 342 static inline void 343 xrt_prober_destroy(struct xrt_prober **xp_ptr) ··· 360 * created xrt_prober instance. 361 * @param[in] list Prober entry list 362 * 363 - * @ingroup xrt_iface 364 - * @relates xrt_prober 365 */ 366 int 367 xrt_prober_create_with_lists(struct xrt_prober **out_xp, 368 struct xrt_prober_entry_lists *list); 369 370 bool 371 xrt_prober_match_string(struct xrt_prober *xp, 372 struct xrt_prober_device *dev, ··· 380 */ 381 382 /*! 383 - * A simple prober to probe for a HMD device connected to the system. 384 * 385 * @ingroup xrt_iface 386 */
··· 224 /*! 225 * Helper function for @ref xrt_prober::probe. 226 * 227 + * @public @memberof xrt_prober 228 */ 229 static inline int 230 xrt_prober_probe(struct xrt_prober *xp) ··· 235 /*! 236 * Helper function for @ref xrt_prober::dump. 237 * 238 + * @public @memberof xrt_prober 239 */ 240 static inline int 241 xrt_prober_dump(struct xrt_prober *xp) ··· 246 /*! 247 * Helper function for @ref xrt_prober::select. 248 * 249 + * @public @memberof xrt_prober 250 */ 251 static inline int 252 xrt_prober_select(struct xrt_prober *xp, ··· 259 /*! 260 * Helper function for @ref xrt_prober::open_hid_interface. 261 * 262 + * @public @memberof xrt_prober 263 */ 264 static inline int 265 xrt_prober_open_hid_interface(struct xrt_prober *xp, ··· 273 /*! 274 * Helper function for @ref xrt_prober::get_string_descriptor. 275 * 276 + * @public @memberof xrt_prober 277 */ 278 static inline int 279 xrt_prober_get_string_descriptor(struct xrt_prober *xp, ··· 289 /*! 290 * Helper function for @ref xrt_prober::can_open. 291 * 292 + * @public @memberof xrt_prober 293 */ 294 static inline bool 295 xrt_prober_can_open(struct xrt_prober *xp, struct xrt_prober_device *xpdev) ··· 301 /*! 302 * Helper function for @ref xrt_prober::xrt_prober_open_video_device. 303 * 304 + * @public @memberof xrt_prober 305 */ 306 static inline int 307 xrt_prober_open_video_device(struct xrt_prober *xp, ··· 315 /*! 316 * Helper function for @ref xrt_prober::list_video_devices. 317 * 318 + * @public @memberof xrt_prober 319 */ 320 static inline int 321 xrt_prober_list_video_devices(struct xrt_prober *xp, ··· 328 /*! 329 * Helper function for @ref xrt_prober::destroy. 330 * 331 + * @public @memberof xrt_prober 332 */ 333 static inline void 334 xrt_prober_destroy(struct xrt_prober **xp_ptr) ··· 351 * created xrt_prober instance. 352 * @param[in] list Prober entry list 353 * 354 + * @public @memberof xrt_prober 355 */ 356 int 357 xrt_prober_create_with_lists(struct xrt_prober **out_xp, 358 struct xrt_prober_entry_lists *list); 359 360 + /*! 361 + * @public @memberof xrt_prober 362 + */ 363 bool 364 xrt_prober_match_string(struct xrt_prober *xp, 365 struct xrt_prober_device *dev, ··· 373 */ 374 375 /*! 376 + * @interface xrt_auto_prober 377 + * 378 + * An interface to be exposed by a device driver that should probe for the 379 + * existence of its own device on the system, rather than using shared probers 380 + * with vendor/product IDs, etc. 381 * 382 * @ingroup xrt_iface 383 */
+13
src/xrt/include/xrt/xrt_tracking.h
··· 49 50 /*! 51 * A tracking system or device origin. 52 */ 53 struct xrt_tracking_origin 54 { ··· 66 }; 67 68 /*! 69 * Tracking factory. 70 */ 71 struct xrt_tracking_factory ··· 98 }; 99 100 /*! 101 * A single tracked PS Move controller, camera and ball are not synced. 102 * 103 * @todo How do we communicate ball colour change? ··· 140 }; 141 142 /*! 143 * A tracked PSVR headset. 144 * 145 * @todo How do we communicate led lighting status? ··· 180 * 181 */ 182 183 static inline void 184 xrt_tracked_psmv_get_tracked_pose(struct xrt_tracked_psmv *psmv, 185 enum xrt_input_name name, ··· 189 psmv->get_tracked_pose(psmv, name, when_ns, out_relation); 190 } 191 192 static inline void 193 xrt_tracked_psmv_push_imu(struct xrt_tracked_psmv *psmv, 194 timepoint_ns timestamp_ns, ··· 197 psmv->push_imu(psmv, timestamp_ns, sample); 198 } 199 200 static inline void 201 xrt_tracked_psmv_destroy(struct xrt_tracked_psmv **xtmv_ptr) 202 { ··· 209 *xtmv_ptr = NULL; 210 } 211 212 static inline void 213 xrt_tracked_psvr_get_tracked_pose(struct xrt_tracked_psvr *psvr, 214 timepoint_ns when_ns, ··· 217 psvr->get_tracked_pose(psvr, when_ns, out_relation); 218 } 219 220 static inline void 221 xrt_tracked_psvr_push_imu(struct xrt_tracked_psvr *psvr, 222 timepoint_ns timestamp_ns, ··· 225 psvr->push_imu(psvr, timestamp_ns, sample); 226 } 227 228 static inline void 229 xrt_tracked_psvr_destroy(struct xrt_tracked_psvr **xtvr_ptr) 230 {
··· 49 50 /*! 51 * A tracking system or device origin. 52 + * 53 + * Tracking systems will typically extend this structure. 54 */ 55 struct xrt_tracking_origin 56 { ··· 68 }; 69 70 /*! 71 + * @interface xrt_tracking_factory 72 * Tracking factory. 73 */ 74 struct xrt_tracking_factory ··· 101 }; 102 103 /*! 104 + * @interface xrt_tracked_psmv 105 + * 106 * A single tracked PS Move controller, camera and ball are not synced. 107 * 108 * @todo How do we communicate ball colour change? ··· 145 }; 146 147 /*! 148 + * @interface xrt_tracked_psvr 149 + * 150 * A tracked PSVR headset. 151 * 152 * @todo How do we communicate led lighting status? ··· 187 * 188 */ 189 190 + //! @public @memberof xrt_tracked_psmv 191 static inline void 192 xrt_tracked_psmv_get_tracked_pose(struct xrt_tracked_psmv *psmv, 193 enum xrt_input_name name, ··· 197 psmv->get_tracked_pose(psmv, name, when_ns, out_relation); 198 } 199 200 + //! @public @memberof xrt_tracked_psmv 201 static inline void 202 xrt_tracked_psmv_push_imu(struct xrt_tracked_psmv *psmv, 203 timepoint_ns timestamp_ns, ··· 206 psmv->push_imu(psmv, timestamp_ns, sample); 207 } 208 209 + //! @public @memberof xrt_tracked_psmv 210 static inline void 211 xrt_tracked_psmv_destroy(struct xrt_tracked_psmv **xtmv_ptr) 212 { ··· 219 *xtmv_ptr = NULL; 220 } 221 222 + //! @public @memberof xrt_tracked_psmv 223 static inline void 224 xrt_tracked_psvr_get_tracked_pose(struct xrt_tracked_psvr *psvr, 225 timepoint_ns when_ns, ··· 228 psvr->get_tracked_pose(psvr, when_ns, out_relation); 229 } 230 231 + //! @public @memberof xrt_tracked_psmv 232 static inline void 233 xrt_tracked_psvr_push_imu(struct xrt_tracked_psvr *psvr, 234 timepoint_ns timestamp_ns, ··· 237 psvr->push_imu(psvr, timestamp_ns, sample); 238 } 239 240 + //! @public @memberof xrt_tracked_psmv 241 static inline void 242 xrt_tracked_psvr_destroy(struct xrt_tracked_psvr **xtvr_ptr) 243 {
+8 -2
src/xrt/ipc/ipc_client.h
··· 86 87 } ipc_connection_t; 88 89 - 90 ipc_result_t 91 ipc_client_send_message(ipc_connection_t *ipc_c, void *message, size_t size); 92 ··· 105 size_t reply_size, 106 int *fds, 107 size_t num_fds); 108 - 109 110 /* 111 *
··· 86 87 } ipc_connection_t; 88 89 + /*! 90 + * @name IPC low-level interface 91 + * These functions are called by generated IPC client code. 92 + * @{ 93 + */ 94 ipc_result_t 95 ipc_client_send_message(ipc_connection_t *ipc_c, void *message, size_t size); 96 ··· 109 size_t reply_size, 110 int *fds, 111 size_t num_fds); 112 + /*! 113 + * @} 114 + */ 115 116 /* 117 *
+8 -1
src/xrt/ipc/ipc_client_compositor.c
··· 32 * Internal structs and helpers. 33 * 34 */ 35 - 36 struct ipc_client_compositor 37 { 38 struct xrt_compositor_fd base; ··· 50 } layers; 51 }; 52 53 struct ipc_client_swapchain 54 { 55 struct xrt_swapchain_fd base;
··· 32 * Internal structs and helpers. 33 * 34 */ 35 + /*! 36 + * Client proxy for an xrt_compositor_fd implementation over IPC. 37 + * @implements xrt_compositor_fd 38 + */ 39 struct ipc_client_compositor 40 { 41 struct xrt_compositor_fd base; ··· 53 } layers; 54 }; 55 56 + /*! 57 + * Client proxy for an xrt_swapchain_fd implementation over IPC. 58 + * @implements xrt_swapchain_fd 59 + */ 60 struct ipc_client_swapchain 61 { 62 struct xrt_swapchain_fd base;
+7
src/xrt/ipc/ipc_client_device.c
··· 35 * 36 */ 37 38 struct ipc_client_device 39 { 40 struct xrt_device base; ··· 125 } 126 } 127 128 struct xrt_device * 129 ipc_client_device_create(ipc_connection_t *ipc_c, 130 struct xrt_tracking_origin *xtrack,
··· 35 * 36 */ 37 38 + /*! 39 + * An IPC client proxy for an @ref xrt_device. 40 + * @implements xrt_device 41 + */ 42 struct ipc_client_device 43 { 44 struct xrt_device base; ··· 129 } 130 } 131 132 + /*! 133 + * @public @memberof ipc_client_device 134 + */ 135 struct xrt_device * 136 ipc_client_device_create(ipc_connection_t *ipc_c, 137 struct xrt_tracking_origin *xtrack,
+7
src/xrt/ipc/ipc_client_hmd.c
··· 35 * 36 */ 37 38 struct ipc_client_hmd 39 { 40 struct xrt_device base; ··· 117 } 118 } 119 120 struct xrt_device * 121 ipc_client_hmd_create(ipc_connection_t *ipc_c, 122 struct xrt_tracking_origin *xtrack,
··· 35 * 36 */ 37 38 + /*! 39 + * An IPC client proxy for an HMD @ref xrt_device. 40 + * @implements xrt_device 41 + */ 42 struct ipc_client_hmd 43 { 44 struct xrt_device base; ··· 121 } 122 } 123 124 + /*! 125 + * @public @memberof ipc_client_hmd 126 + */ 127 struct xrt_device * 128 ipc_client_hmd_create(ipc_connection_t *ipc_c, 129 struct xrt_tracking_origin *xtrack,
+9
src/xrt/ipc/ipc_client_instance.c
··· 34 * 35 */ 36 37 struct ipc_client_instance 38 { 39 struct xrt_instance base; 40 41 ipc_connection_t ipc_c; ··· 173 * 174 */ 175 176 int 177 ipc_instance_create(struct xrt_instance **out_xinst) 178 {
··· 34 * 35 */ 36 37 + /*! 38 + * @implements xrt_instance 39 + */ 40 struct ipc_client_instance 41 { 42 + //! @public Base 43 struct xrt_instance base; 44 45 ipc_connection_t ipc_c; ··· 177 * 178 */ 179 180 + /*! 181 + * Constructor for xrt_instance IPC client proxy. 182 + * 183 + * @public @memberof ipc_instance 184 + */ 185 int 186 ipc_instance_create(struct xrt_instance **out_xinst) 187 {
+3
src/xrt/state_trackers/gui/gui_common.h
··· 55 }; 56 57 /*! 58 * A single currently running scene. 59 */ 60 struct gui_scene 61 {
··· 55 }; 56 57 /*! 58 + * @interface gui_scene 59 * A single currently running scene. 60 + * 61 + * @ingroup gui 62 */ 63 struct gui_scene 64 {
+5
src/xrt/state_trackers/gui/gui_ogl.c
··· 16 #include <pthread.h> 17 18 19 struct gui_ogl_sink 20 { 21 struct gui_ogl_texture tex;
··· 16 #include <pthread.h> 17 18 19 + /*! 20 + * An @ref xrt_frame_sink that shows sunk frames in the GUI. 21 + * @implements xrt_frame_sink 22 + * @implements xrt_frame_node 23 + */ 24 struct gui_ogl_sink 25 { 26 struct gui_ogl_texture tex;
+4 -1
src/xrt/state_trackers/gui/gui_scene_calibrate.c
··· 29 30 #include <assert.h> 31 32 - 33 struct calibration_scene 34 { 35 struct gui_scene base;
··· 29 30 #include <assert.h> 31 32 + /*! 33 + * An OpenCV-based camera calibration scene. 34 + * @implements gui_scene 35 + */ 36 struct calibration_scene 37 { 38 struct gui_scene base;
+4
src/xrt/state_trackers/gui/gui_scene_debug.c
··· 31 32 #include <float.h> 33 34 struct debug_scene 35 { 36 struct gui_scene base;
··· 31 32 #include <float.h> 33 34 + /*! 35 + * A GUI scene showing the variable tracking provided by @ref util/u_var.h 36 + * @implements gui_scene 37 + */ 38 struct debug_scene 39 { 40 struct gui_scene base;
+4
src/xrt/state_trackers/gui/gui_scene_main_menu.c
··· 15 16 static ImVec2 button_dims = {256, 0}; 17 18 struct main_menu 19 { 20 struct gui_scene base;
··· 15 16 static ImVec2 button_dims = {256, 0}; 17 18 + /*! 19 + * A main menu GUI scene allowing selection of which scene to proceed to. 20 + * @implements gui_scene 21 + */ 22 struct main_menu 23 { 24 struct gui_scene base;
+4
src/xrt/state_trackers/gui/gui_scene_video.c
··· 18 #include "gui_imgui.h" 19 20 21 struct video_select 22 { 23 struct gui_scene base;
··· 18 #include "gui_imgui.h" 19 20 21 + /*! 22 + * A GUI scene that lets the user select a user device. 23 + * @implements gui_scene 24 + */ 25 struct video_select 26 { 27 struct gui_scene base;
+81 -1
src/xrt/state_trackers/prober/p_prober.h
··· 80 #endif 81 82 /*! 83 - * A prober device. 84 */ 85 struct prober_device 86 { ··· 127 #endif 128 }; 129 130 struct prober 131 { 132 struct xrt_prober base; ··· 180 181 /*! 182 * Load the JSON config file. 183 */ 184 void 185 p_json_open_or_create_main_file(struct prober *p); 186 187 /*! 188 * Extract tracking settings from the JSON. 189 */ 190 bool 191 p_json_get_tracking_settings(struct prober *p, struct xrt_settings_tracking *s); 192 193 /*! 194 * Dump the given device to stdout. 195 */ 196 void 197 p_dump_device(struct prober *p, struct prober_device *pdev, int id); 198 199 /*! 200 * Get or create a @ref prober_device from the device. 201 */ 202 int 203 p_dev_get_usb_dev(struct prober *p, ··· 209 210 /*! 211 * Get or create a @ref prober_device from the device. 212 */ 213 int 214 p_dev_get_bluetooth_dev(struct prober *p, ··· 218 struct prober_device **out_pdev); 219 220 /*! 221 * Init the tracking factory. 222 */ 223 int 224 p_tracking_init(struct prober *p); 225 226 /*! 227 * Teardown the tracking factory. 228 */ 229 void 230 p_tracking_teardown(struct prober *p); 231 232 #ifdef XRT_HAVE_LIBUSB 233 int 234 p_libusb_init(struct prober *p); 235 236 void 237 p_libusb_teardown(struct prober *p); 238 239 int 240 p_libusb_probe(struct prober *p); 241 242 int 243 p_libusb_get_string_descriptor(struct prober *p, 244 struct prober_device *pdev, ··· 246 unsigned char *buffer, 247 int length); 248 249 bool 250 p_libusb_can_open(struct prober *p, struct prober_device *pdev); 251 #endif 252 253 #ifdef XRT_HAVE_LIBUVC 254 int 255 p_libuvc_init(struct prober *p); 256 257 void 258 p_libuvc_teardown(struct prober *p); 259 260 int 261 p_libuvc_probe(struct prober *p); 262 #endif 263 264 #ifdef XRT_HAVE_LIBUDEV 265 int 266 p_udev_probe(struct prober *p); 267 #endif
··· 80 #endif 81 82 /*! 83 + * A single device found by a @ref prober. 84 + * 85 + * @implements xrt_prober_device 86 */ 87 struct prober_device 88 { ··· 129 #endif 130 }; 131 132 + /*! 133 + * @implements xrt_prober 134 + */ 135 struct prober 136 { 137 struct xrt_prober base; ··· 185 186 /*! 187 * Load the JSON config file. 188 + * 189 + * @public @memberof prober 190 */ 191 void 192 p_json_open_or_create_main_file(struct prober *p); 193 194 /*! 195 * Extract tracking settings from the JSON. 196 + * 197 + * @public @memberof prober 198 + * @relatesalso xrt_settings_tracking 199 */ 200 bool 201 p_json_get_tracking_settings(struct prober *p, struct xrt_settings_tracking *s); 202 203 /*! 204 * Dump the given device to stdout. 205 + * 206 + * @public @memberof prober 207 */ 208 void 209 p_dump_device(struct prober *p, struct prober_device *pdev, int id); 210 211 /*! 212 * Get or create a @ref prober_device from the device. 213 + * 214 + * @public @memberof prober 215 */ 216 int 217 p_dev_get_usb_dev(struct prober *p, ··· 223 224 /*! 225 * Get or create a @ref prober_device from the device. 226 + * 227 + * @public @memberof prober 228 */ 229 int 230 p_dev_get_bluetooth_dev(struct prober *p, ··· 234 struct prober_device **out_pdev); 235 236 /*! 237 + * @name Tracking systems 238 + * @{ 239 + */ 240 + /*! 241 * Init the tracking factory. 242 + * 243 + * @private @memberof prober 244 + * @relatesalso xrt_tracking_factory 245 */ 246 int 247 p_tracking_init(struct prober *p); 248 249 /*! 250 * Teardown the tracking factory. 251 + * 252 + * @private @memberof prober 253 + * @relatesalso xrt_tracking_factory 254 */ 255 void 256 p_tracking_teardown(struct prober *p); 257 258 + /*! 259 + * @} 260 + */ 261 + 262 #ifdef XRT_HAVE_LIBUSB 263 + /*! 264 + * @name libusb 265 + * @{ 266 + */ 267 + /*! 268 + * @private @memberof prober 269 + */ 270 int 271 p_libusb_init(struct prober *p); 272 273 + /*! 274 + * @private @memberof prober 275 + */ 276 void 277 p_libusb_teardown(struct prober *p); 278 279 + /*! 280 + * @private @memberof prober 281 + */ 282 int 283 p_libusb_probe(struct prober *p); 284 285 + /*! 286 + * @private @memberof prober 287 + */ 288 int 289 p_libusb_get_string_descriptor(struct prober *p, 290 struct prober_device *pdev, ··· 292 unsigned char *buffer, 293 int length); 294 295 + /*! 296 + * @private @memberof prober 297 + */ 298 bool 299 p_libusb_can_open(struct prober *p, struct prober_device *pdev); 300 + 301 + /*! 302 + * @} 303 + */ 304 #endif 305 306 #ifdef XRT_HAVE_LIBUVC 307 + /*! 308 + * @name libuvc 309 + * @{ 310 + */ 311 + /*! 312 + * @private @memberof prober 313 + */ 314 int 315 p_libuvc_init(struct prober *p); 316 317 + /*! 318 + * @private @memberof prober 319 + */ 320 void 321 p_libuvc_teardown(struct prober *p); 322 323 + /*! 324 + * @private @memberof prober 325 + */ 326 int 327 p_libuvc_probe(struct prober *p); 328 + 329 + /*! 330 + * @} 331 + */ 332 #endif 333 334 #ifdef XRT_HAVE_LIBUDEV 335 + /*! 336 + * @name udev 337 + * @{ 338 + */ 339 + /*! 340 + * @private @memberof prober 341 + */ 342 int 343 p_udev_probe(struct prober *p); 344 + /*! 345 + * @} 346 + */ 347 #endif
+4
src/xrt/state_trackers/prober/p_tracking.c
··· 32 * 33 */ 34 35 struct p_factory 36 { 37 //! Base struct.
··· 32 * 33 */ 34 35 + /*! 36 + * @implements xrt_tracking_factory 37 + * @extends xrt_tracking_origin 38 + */ 39 struct p_factory 40 { 41 //! Base struct.
+7
src/xrt/targets/common/target_instance_parts.h
··· 22 * 23 */ 24 25 struct t_instance 26 { 27 struct xrt_instance base;
··· 22 * 23 */ 24 25 + /*! 26 + * Main "real" instance implementation. 27 + * 28 + * Used in instances both with and without compositor access. 29 + * 30 + * @implements xrt_instance 31 + */ 32 struct t_instance 33 { 34 struct xrt_instance base;
+6 -5
src/xrt/targets/gui/gui_sdl2.h
··· 29 * Common struct holding state for the GUI interface. 30 * 31 * @ingroup gui 32 */ 33 struct sdl2_program 34 { ··· 43 /*! 44 * Init SDL2, create and show a window and bring up any other structs needed. 45 * 46 - * @ingroup gui 47 */ 48 int 49 gui_sdl2_init(struct sdl2_program *p); 50 51 /*! 52 - * Loop until user request quit and show Imgui interface. 53 * 54 - * @ingroup gui 55 */ 56 void 57 gui_sdl2_imgui_loop(struct sdl2_program *p); ··· 59 /*! 60 * Loop until quit signal has been received. 61 * 62 - * @ingroup gui 63 */ 64 void 65 gui_sdl2_loop(struct sdl2_program *p); ··· 67 /*! 68 * Destroy all SDL things and quit SDL. 69 * 70 - * @ingroup gui 71 */ 72 void 73 gui_sdl2_quit(struct sdl2_program *p);
··· 29 * Common struct holding state for the GUI interface. 30 * 31 * @ingroup gui 32 + * @extends gui_program 33 */ 34 struct sdl2_program 35 { ··· 44 /*! 45 * Init SDL2, create and show a window and bring up any other structs needed. 46 * 47 + * @public @memberof sdl2_program 48 */ 49 int 50 gui_sdl2_init(struct sdl2_program *p); 51 52 /*! 53 + * Loop until user requests quit, and show Imgui interface. 54 * 55 + * @public @memberof sdl2_program 56 */ 57 void 58 gui_sdl2_imgui_loop(struct sdl2_program *p); ··· 60 /*! 61 * Loop until quit signal has been received. 62 * 63 + * @public @memberof sdl2_program 64 */ 65 void 66 gui_sdl2_loop(struct sdl2_program *p); ··· 68 /*! 69 * Destroy all SDL things and quit SDL. 70 * 71 + * @public @memberof sdl2_program 72 */ 73 void 74 gui_sdl2_quit(struct sdl2_program *p);
+1
src/xrt/targets/openxr/oxr_sdl2_hack.c
··· 48 49 /*! 50 * Common struct holding state for the GUI interface. 51 */ 52 struct sdl2_program 53 {
··· 48 49 /*! 50 * Common struct holding state for the GUI interface. 51 + * @extends gui_program 52 */ 53 struct sdl2_program 54 {