The open source OpenXR runtime
at main 1.8 kB view raw
1// Copyright 2020-2023, Collabora, Ltd. 2// SPDX-License-Identifier: BSL-1.0 3/*! 4 * @file 5 * @brief Interface to simulated driver. 6 * @author Jakob Bornecrantz <jakob@collabora.com> 7 * @ingroup drv_simulated 8 */ 9 10#pragma once 11 12#include "xrt/xrt_compiler.h" 13#include "util/u_logging.h" 14 15 16#ifdef __cplusplus 17extern "C" { 18#endif 19 20 21/*! 22 * @defgroup drv_simulated Simulated driver 23 * @ingroup drv 24 * 25 * @brief Simple do-nothing simulated driver. 26 */ 27 28/*! 29 * @dir drivers/simulated 30 * 31 * @brief @ref drv_simulated files. 32 */ 33 34/*! 35 * What type of movement should the simulated device do. 36 * 37 * @ingroup drv_simulated 38 */ 39enum simulated_movement 40{ 41 SIMULATED_MOVEMENT_WOBBLE, 42 SIMULATED_MOVEMENT_ROTATE, 43 SIMULATED_MOVEMENT_STATIONARY, 44}; 45 46/*! 47 * Return the logging level that we want for the simulated related code. 48 * 49 * @ingroup drv_simulated 50 */ 51enum u_logging_level 52simulated_log_level(void); 53 54/*! 55 * Create a auto prober for simulated devices. 56 * 57 * @ingroup drv_simulated 58 */ 59struct xrt_auto_prober * 60simulated_create_auto_prober(void); 61 62/*! 63 * Create a simulated hmd. 64 * 65 * @ingroup drv_simulated 66 */ 67struct xrt_device * 68simulated_hmd_create(enum simulated_movement movement, const struct xrt_pose *center); 69 70/*! 71 * Create a simulated controller. 72 * 73 * Supported configs: 74 * 75 * * XRT_DEVICE_SIMPLE_CONTROLLER 76 * * XRT_DEVICE_TYPE_ANY_CONTROLLER 77 * * XRT_DEVICE_WMR_CONTROLLER 78 * * XRT_DEVICE_TYPE_LEFT_CONTROLLER 79 * * XRT_DEVICE_TYPE_RIGHT_CONTROLLER 80 * * XRT_DEVICE_ML2_CONTROLLER 81 * * XRT_DEVICE_TYPE_ANY_CONTROLLER 82 * 83 * @ingroup drv_simulated 84 */ 85struct xrt_device * 86simulated_create_controller(enum xrt_device_name name, 87 enum xrt_device_type type, 88 const struct xrt_pose *center, 89 struct xrt_tracking_origin *origin); 90 91 92#ifdef __cplusplus 93} 94#endif