Monado OpenXR Runtime
protocol.h File Reference

Parser for a small subset of the SolarXR Flatbuffers protocol, as defined at https://github.com/SlimeVR/SolarXR-Protocol. More...

#include "xrt/xrt_defines.h"
#include <assert.h>
Include dependency graph for protocol.h:

Go to the source code of this file.

Data Structures

struct  solarxr_tracker_id
 
struct  solarxr_tracker_info
 
struct  solarxr_tracker_data_t
 
struct  solarxr_tracker_data
 
struct  solarxr_device_data_t
 
struct  solarxr_device_data
 
struct  solarxr_bone_t
 
struct  solarxr_bone
 
struct  solarxr_data_feed_update
 
union  solarxr_data_feed_message
 
struct  solarxr_data_feed_message_header_t
 
struct  solarxr_data_feed_message_header
 
struct  solarxr_steamvr_trackers_setting
 
struct  solarxr_settings_response
 
union  solarxr_rpc_message
 
struct  solarxr_rpc_message_header_t
 
struct  solarxr_rpc_message_header
 
struct  solarxr_message_bundle_t
 
struct  solarxr_message_bundle
 

Macros

#define FLATBUFFERS_VECTOR(type_)
 

Typedefs

typedef uint32_t flatbuffers_uoffset_t
 

Enumerations

enum  solarxr_body_part {
  SOLARXR_BODY_PART_NONE = 0 , SOLARXR_BODY_PART_HEAD = 1 , SOLARXR_BODY_PART_NECK = 2 , SOLARXR_BODY_PART_CHEST = 3 ,
  SOLARXR_BODY_PART_WAIST = 4 , SOLARXR_BODY_PART_HIP = 5 , SOLARXR_BODY_PART_LEFT_UPPER_LEG = 6 , SOLARXR_BODY_PART_RIGHT_UPPER_LEG = 7 ,
  SOLARXR_BODY_PART_LEFT_LOWER_LEG = 8 , SOLARXR_BODY_PART_RIGHT_LOWER_LEG = 9 , SOLARXR_BODY_PART_LEFT_FOOT = 10 , SOLARXR_BODY_PART_RIGHT_FOOT = 11 ,
  SOLARXR_BODY_PART_LEFT_LOWER_ARM = 14 , SOLARXR_BODY_PART_RIGHT_LOWER_ARM = 15 , SOLARXR_BODY_PART_LEFT_UPPER_ARM = 16 , SOLARXR_BODY_PART_RIGHT_UPPER_ARM = 17 ,
  SOLARXR_BODY_PART_LEFT_HAND = 18 , SOLARXR_BODY_PART_RIGHT_HAND = 19 , SOLARXR_BODY_PART_LEFT_SHOULDER = 20 , SOLARXR_BODY_PART_RIGHT_SHOULDER = 21 ,
  SOLARXR_BODY_PART_UPPER_CHEST = 22 , SOLARXR_BODY_PART_LEFT_HIP = 23 , SOLARXR_BODY_PART_RIGHT_HIP = 24 , SOLARXR_BODY_PART_LEFT_THUMB_PROXIMAL = 25 ,
  SOLARXR_BODY_PART_LEFT_THUMB_INTERMEDIATE = 26 , SOLARXR_BODY_PART_LEFT_THUMB_DISTAL = 27 , SOLARXR_BODY_PART_LEFT_INDEX_PROXIMAL = 28 , SOLARXR_BODY_PART_LEFT_INDEX_INTERMEDIATE = 29 ,
  SOLARXR_BODY_PART_LEFT_INDEX_DISTAL = 30 , SOLARXR_BODY_PART_LEFT_MIDDLE_PROXIMAL = 31 , SOLARXR_BODY_PART_LEFT_MIDDLE_INTERMEDIATE = 32 , SOLARXR_BODY_PART_LEFT_MIDDLE_DISTAL = 33 ,
  SOLARXR_BODY_PART_LEFT_RING_PROXIMAL = 34 , SOLARXR_BODY_PART_LEFT_RING_INTERMEDIATE = 35 , SOLARXR_BODY_PART_LEFT_RING_DISTAL = 36 , SOLARXR_BODY_PART_LEFT_LITTLE_PROXIMAL = 37 ,
  SOLARXR_BODY_PART_LEFT_LITTLE_INTERMEDIATE = 38 , SOLARXR_BODY_PART_LEFT_LITTLE_DISTAL = 39 , SOLARXR_BODY_PART_RIGHT_THUMB_PROXIMAL = 40 , SOLARXR_BODY_PART_RIGHT_THUMB_INTERMEDIATE = 41 ,
  SOLARXR_BODY_PART_RIGHT_THUMB_DISTAL = 42 , SOLARXR_BODY_PART_RIGHT_INDEX_PROXIMAL = 43 , SOLARXR_BODY_PART_RIGHT_INDEX_INTERMEDIATE = 44 , SOLARXR_BODY_PART_RIGHT_INDEX_DISTAL = 45 ,
  SOLARXR_BODY_PART_RIGHT_MIDDLE_PROXIMAL = 46 , SOLARXR_BODY_PART_RIGHT_MIDDLE_INTERMEDIATE = 47 , SOLARXR_BODY_PART_RIGHT_MIDDLE_DISTAL = 48 , SOLARXR_BODY_PART_RIGHT_RING_PROXIMAL = 49 ,
  SOLARXR_BODY_PART_RIGHT_RING_INTERMEDIATE = 50 , SOLARXR_BODY_PART_RIGHT_RING_DISTAL = 51 , SOLARXR_BODY_PART_RIGHT_LITTLE_PROXIMAL = 52 , SOLARXR_BODY_PART_RIGHT_LITTLE_INTERMEDIATE = 53 ,
  SOLARXR_BODY_PART_RIGHT_LITTLE_DISTAL = 54 , SOLARXR_BODY_PART_MAX_ENUM
}
 
enum  solarxr_data_feed_message_type { SOLARXR_DATA_FEED_MESSAGE_POLL_DATA_FEED = 1 , SOLARXR_DATA_FEED_MESSAGE_DATA_FEED_UPDATE = 3 }
 
enum  solarxr_rpc_message_type { SOLARXR_RPC_MESSAGE_TYPE_SETTINGS_REQUEST = 6 , SOLARXR_RPC_MESSAGE_TYPE_SETTINGS_RESPONSE = 7 }
 

Functions

bool read_solarxr_message_bundle (struct solarxr_message_bundle *out, const uint8_t buffer[], size_t buffer_len, const solarxr_message_bundle_t *ref)
 
bool read_solarxr_data_feed_message_header (struct solarxr_data_feed_message_header *out, const uint8_t buffer[], size_t buffer_len, const solarxr_data_feed_message_header_t *ref)
 
bool read_solarxr_rpc_message_header (struct solarxr_rpc_message_header *out, const uint8_t buffer[], size_t buffer_len, const solarxr_rpc_message_header_t *ref)
 
bool read_solarxr_device_data (struct solarxr_device_data *out, const uint8_t buffer[], size_t buffer_len, const solarxr_device_data_t *ref)
 
bool read_solarxr_tracker_data (struct solarxr_tracker_data *out, const uint8_t buffer[], size_t buffer_len, const solarxr_tracker_data_t *ref)
 
bool read_solarxr_bone (struct solarxr_bone *out, const uint8_t buffer[], size_t buffer_len, const solarxr_bone_t *ref)
 

Detailed Description

Parser for a small subset of the SolarXR Flatbuffers protocol, as defined at https://github.com/SlimeVR/SolarXR-Protocol.

Macro Definition Documentation

◆ FLATBUFFERS_VECTOR

#define FLATBUFFERS_VECTOR (   type_)
Value:
struct \
{ \
uint32_t length; \
const type_ *data; \
}