|
Monado OpenXR Runtime
|
A helper to implement a xrt_system, takes care of multiplexing events to sessions. More...
#include <util/u_system.h>


Public Member Functions | |
| struct u_system * | u_system_create (void) |
| Create a u_system, creates a fully working system. More... | |
| void | u_system_add_session (struct u_system *usys, struct xrt_session *xs, struct xrt_session_event_sink *xses) |
| Add a xrt_session to be tracked and to receive multiplexed events. More... | |
| void | u_system_remove_session (struct u_system *usys, struct xrt_session *xs, struct xrt_session_event_sink *xses) |
Remove a xrt_session from tracking, it will no longer receive events, the given xses needs to match when it was added. More... | |
| void | u_system_broadcast_event (struct u_system *usys, const union xrt_session_event *xse) |
| Broadcast event to all sessions under this system. More... | |
| void | u_system_set_system_compositor (struct u_system *usys, struct xrt_system_compositor *xsysc) |
| Set the system compositor, used in the xrt_system_create_session call. More... | |
| void | u_system_fill_properties (struct u_system *usys, const char *name) |
| Fill system properties. More... | |
Static Public Member Functions | |
| static void | u_system_destroy (struct u_system **usys_ptr) |
| Destroy an u_system_create allocated u_system - helper function. More... | |
Static Public Member Functions inherited from xrt_system | |
| static xrt_result_t | xrt_system_create_session (struct xrt_system *xsys, const struct xrt_session_info *xsi, struct xrt_session **out_xs, struct xrt_compositor_native **out_xcn) |
| Create a xrt_session and optionally a xrt_compositor_native for this system. More... | |
| static void | xrt_system_destroy (struct xrt_system **xsys_ptr) |
| Destroy an xrt_system - helper function. More... | |
Data Fields | |
| struct xrt_system | base |
| struct xrt_session_event_sink | broadcast |
| Pushes events to all sessions created from this system. More... | |
| struct { | |
| struct os_mutex mutex | |
| uint32_t count | |
| Number of session and event sink pairs. More... | |
| uint32_t capacity | |
| Capacity of the session array. More... | |
| struct u_system_session_pair * pairs | |
| Array of session and event sink pairs. More... | |
| } | sessions |
| struct xrt_system_compositor * | xsysc |
| Used to implement xrt_system::create_session, can be NULL. More... | |
Data Fields inherited from xrt_system | |
| xrt_result_t(* | create_session )(struct xrt_system *xsys, const struct xrt_session_info *xsi, struct xrt_session **out_xs, struct xrt_compositor_native **out_xcn) |
| Create a xrt_session and optionally a xrt_compositor_native for this system. More... | |
| void(* | destroy )(struct xrt_system *xsys) |
| Destroy the system, must be destroyed after system devices and system compositor has been destroyed. More... | |
| struct xrt_system_properties | properties |
Protected Member Functions | |
| bool | u_system_init (struct u_system *usys, void(*destroy_fn)(struct xrt_system *)) |
| Inits a u_system struct when used as a parent class, only to be used by base class. More... | |
| void | u_system_fini (struct u_system *usys) |
| Finalizes a u_system struct when used as a parent class, only to be used by base class. More... | |
A helper to implement a xrt_system, takes care of multiplexing events to sessions.
|
inlinestatic |
Destroy an u_system_create allocated u_system - helper function.
| [in,out] | usys_ptr | A pointer to the u_system_create allocated struct pointer. |
Will destroy the system devices if *usys_ptr is not NULL. Will then set *usys_ptr to NULL.
References xrt_system::destroy.
| struct xrt_session_event_sink u_system::broadcast |
Pushes events to all sessions created from this system.
| uint32_t u_system::capacity |
Capacity of the session array.
Referenced by u_system_add_session().
| uint32_t u_system::count |
Number of session and event sink pairs.
Referenced by u_system_add_session(), u_system_broadcast_event(), u_system_fini(), and u_system_remove_session().
| struct u_system_session_pair* u_system::pairs |
Array of session and event sink pairs.
Referenced by u_system_add_session(), u_system_broadcast_event(), u_system_fini(), and u_system_remove_session().
| struct xrt_system_compositor* u_system::xsysc |
Used to implement xrt_system::create_session, can be NULL.
This field should be set with u_system_set_system_compositor.
Referenced by u_system_set_system_compositor().