Monado OpenXR Runtime
android_sensors.c File Reference

Android sensors driver code. More...

#include "android_sensors.h"
#include "util/u_debug.h"
#include "util/u_device.h"
#include "util/u_distortion_mesh.h"
#include "util/u_var.h"
#include "util/u_visibility_mask.h"
#include "cardboard_device.pb.h"
#include "pb_decode.h"
#include "android/android_globals.h"
#include "android/android_content.h"
#include "android/android_custom_surface.h"
#include <xrt/xrt_config_android.h>
Include dependency graph for android_sensors.c:

Macros

#define LOOPER_ID_USER   3
 
#define POLL_RATE_USEC   (1000L / 60) * 1000
 
#define DEG_TO_RAD(x)   (float)(x * M_PI / 180.0)
 

Functions

static struct android_deviceandroid_device (struct xrt_device *xdev)
 
static bool read_file (pb_istream_t *stream, uint8_t *buf, size_t count)
 
static bool read_buffer (pb_istream_t *stream, const pb_field_t *field, void **arg)
 
static bool load_cardboard_distortion (struct android_device *d, struct xrt_android_display_metrics *metrics, struct u_cardboard_distortion_arguments *args)
 
static int android_sensor_callback (ASensorEvent *event, struct android_device *d)
 
static int32_t android_get_sensor_poll_rate (const struct android_device *d)
 
static void * android_run_thread (void *ptr)
 
static void android_device_destroy (struct xrt_device *xdev)
 
static xrt_result_t android_device_get_tracked_pose (struct xrt_device *xdev, enum xrt_input_name name, int64_t at_timestamp_ns, struct xrt_space_relation *out_relation)
 
static xrt_result_t android_device_compute_distortion (struct xrt_device *xdev, uint32_t view, float u, float v, struct xrt_uv_triplet *result)
 
struct android_deviceandroid_device_create (void)
 

Detailed Description

Function Documentation

◆ android_device_get_tracked_pose()

static xrt_result_t android_device_get_tracked_pose ( struct xrt_device xdev,
enum xrt_input_name  name,
int64_t  at_timestamp_ns,
struct xrt_space_relation out_relation 
)
static
Todo:
assuming that orientation is actually currently tracked.