The open source OpenXR runtime

xrt: Add xrt_device::is_form_factor_available

authored by

Jarvis Huang and committed by
Jakob Bornecrantz
b93d1ea8 fdec80cd

+30
+5
src/xrt/include/xrt/xrt_defines.h
··· 1143 1143 xrt_atomic_s32_inc_return(&xref->count); 1144 1144 } 1145 1145 1146 + enum xrt_form_factor 1147 + { 1148 + XRT_FORM_FACTOR_HMD, //!< Head mounted display. 1149 + XRT_FORM_FACTOR_HANDHELD //!< Handheld display. 1150 + }; 1146 1151 1147 1152 #ifdef __cplusplus 1148 1153 }
+25
src/xrt/include/xrt/xrt_device.h
··· 260 260 bool position_tracking_supported; 261 261 bool hand_tracking_supported; 262 262 bool force_feedback_supported; 263 + bool form_factor_check_supported; 263 264 264 265 /*! 265 266 * Update any attached inputs. ··· 398 399 * Destroy device. 399 400 */ 400 401 void (*destroy)(struct xrt_device *xdev); 402 + 403 + /*! 404 + * @brief Check if given form factor is available or not. 405 + * 406 + * This should only be used in HMD device, if the device driver supports form factor check. 407 + * 408 + * @param[in] xdev The device. 409 + * @param[in] form_factor Form factor to check. 410 + * 411 + * @return true if given form factor is available; otherwise false. 412 + */ 413 + bool (*is_form_factor_available)(struct xrt_device *xdev, enum xrt_form_factor form_factor); 401 414 }; 402 415 403 416 /*! ··· 510 523 *xdev_ptr = NULL; 511 524 } 512 525 526 + /*! 527 + * Helper function for @ref xrt_device::is_form_factor_available. 528 + * 529 + * @copydoc xrt_device::is_form_factor_available 530 + * 531 + * @public @memberof xrt_device 532 + */ 533 + static inline bool 534 + xrt_device_is_form_factor_available(struct xrt_device *xdev, enum xrt_form_factor form_factor) 535 + { 536 + return xdev->is_form_factor_available(xdev, form_factor); 537 + } 513 538 514 539 #ifdef __cplusplus 515 540 } // extern "C"