The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

d/vive: Add device bindings

authored by

Christoph Haag and committed by
Jakob Bornecrantz
ffa7cc84 4b261219

+55
+55
src/xrt/drivers/vive/vive_controller.c
··· 1061 1061 return NULL; 1062 1062 } 1063 1063 1064 + /* 1065 + * 1066 + * Bindings 1067 + * 1068 + */ 1069 + 1070 + static struct xrt_binding_input_pair simple_inputs_index[4] = { 1071 + {XRT_INPUT_SIMPLE_SELECT_CLICK, XRT_INPUT_INDEX_TRIGGER_VALUE}, 1072 + {XRT_INPUT_SIMPLE_MENU_CLICK, XRT_INPUT_INDEX_B_CLICK}, 1073 + {XRT_INPUT_SIMPLE_GRIP_POSE, XRT_INPUT_INDEX_GRIP_POSE}, 1074 + {XRT_INPUT_SIMPLE_AIM_POSE, XRT_INPUT_INDEX_AIM_POSE}, 1075 + }; 1076 + 1077 + static struct xrt_binding_output_pair simple_outputs_index[1] = { 1078 + {XRT_OUTPUT_NAME_SIMPLE_VIBRATION, XRT_OUTPUT_NAME_INDEX_HAPTIC}, 1079 + }; 1080 + 1081 + static struct xrt_binding_input_pair simple_inputs_vive[4] = { 1082 + {XRT_INPUT_SIMPLE_SELECT_CLICK, XRT_INPUT_VIVE_TRIGGER_VALUE}, 1083 + {XRT_INPUT_SIMPLE_MENU_CLICK, XRT_INPUT_VIVE_MENU_CLICK}, 1084 + {XRT_INPUT_SIMPLE_GRIP_POSE, XRT_INPUT_VIVE_GRIP_POSE}, 1085 + {XRT_INPUT_SIMPLE_AIM_POSE, XRT_INPUT_VIVE_AIM_POSE}, 1086 + }; 1087 + 1088 + static struct xrt_binding_output_pair simple_outputs_vive[1] = { 1089 + {XRT_OUTPUT_NAME_SIMPLE_VIBRATION, XRT_OUTPUT_NAME_VIVE_HAPTIC}, 1090 + }; 1091 + 1092 + static struct xrt_binding_profile binding_profiles_index[1] = { 1093 + { 1094 + .name = XRT_DEVICE_SIMPLE_CONTROLLER, 1095 + .inputs = simple_inputs_index, 1096 + .num_inputs = ARRAY_SIZE(simple_inputs_index), 1097 + .outputs = simple_outputs_index, 1098 + .num_outputs = ARRAY_SIZE(simple_outputs_index), 1099 + }, 1100 + }; 1101 + 1102 + static struct xrt_binding_profile binding_profiles_vive[1] = { 1103 + { 1104 + .name = XRT_DEVICE_SIMPLE_CONTROLLER, 1105 + .inputs = simple_inputs_vive, 1106 + .num_inputs = ARRAY_SIZE(simple_inputs_vive), 1107 + .outputs = simple_outputs_vive, 1108 + .num_outputs = ARRAY_SIZE(simple_outputs_vive), 1109 + }, 1110 + }; 1111 + 1064 1112 #define SET_WAND_INPUT(NAME, NAME2) \ 1065 1113 do { \ 1066 1114 (d->base.inputs[VIVE_CONTROLLER_INDEX_##NAME].name = \ ··· 1164 1212 d->base.update_inputs = 1165 1213 vive_controller_device_update_wand_inputs; 1166 1214 1215 + d->base.binding_profiles = binding_profiles_vive; 1216 + d->base.num_binding_profiles = 1217 + ARRAY_SIZE(binding_profiles_vive); 1218 + 1167 1219 d->base.device_type = XRT_DEVICE_TYPE_ANY_HAND_CONTROLLER; 1168 1220 } else if (d->variant == CONTROLLER_INDEX_LEFT || 1169 1221 d->variant == CONTROLLER_INDEX_RIGHT) { ··· 1206 1258 &d->hand_tracking, hand, 1207 1259 XRT_HAND_TRACKING_MODEL_FINGERL_CURL, 1.0); 1208 1260 1261 + d->base.binding_profiles = binding_profiles_index; 1262 + d->base.num_binding_profiles = 1263 + ARRAY_SIZE(binding_profiles_index); 1209 1264 1210 1265 if (d->variant == CONTROLLER_INDEX_LEFT) { 1211 1266 d->base.device_type =