The open source OpenXR runtime
0
fork

Configure Feed

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

d/wmr: Tidy prober code

authored by

Jakob Bornecrantz and committed by
Jakob Bornecrantz
ebb7c3ca 828dacc1

+29 -47
+29 -47
src/xrt/drivers/wmr/wmr_prober.c
··· 51 51 static bool 52 52 check_and_get_interface(struct xrt_prober_device *device, 53 53 enum u_logging_level log_level, 54 - enum wmr_headset_type *out_hmd_type, 55 - int *out_interface) 54 + enum wmr_headset_type *out_hmd_type) 56 55 { 57 56 switch (device->vendor_id) { 58 57 case HP_VID: 59 - if (device->product_id != REVERB_G1_PID && device->product_id != REVERB_G2_PID && 60 - device->product_id != VR1000_PID) { 61 - return false; 62 - } 58 + U_LOG_IFL_T(log_level, "HP_VID"); 63 59 64 - 65 - if (device->product_id == REVERB_G1_PID) 66 - *out_hmd_type = WMR_HEADSET_REVERB_G1; 67 - else if (device->product_id == REVERB_G2_PID) 68 - *out_hmd_type = WMR_HEADSET_REVERB_G2; 69 - else if (device->product_id == VR1000_PID) 70 - *out_hmd_type = WMR_HEADSET_HP_VR1000; 71 - else 72 - return false; 73 - 74 - *out_interface = 0; 75 - return true; 60 + switch (device->product_id) { 61 + case REVERB_G1_PID: *out_hmd_type = WMR_HEADSET_REVERB_G1; return true; 62 + case REVERB_G2_PID: *out_hmd_type = WMR_HEADSET_REVERB_G2; return true; 63 + case VR1000_PID: *out_hmd_type = WMR_HEADSET_HP_VR1000; return true; 64 + default: U_LOG_IFL_T(log_level, "No matching PID!"); return false; 65 + } 76 66 77 67 case LENOVO_VID: 78 - if (device->product_id != EXPLORER_PID) { 79 - return false; 68 + U_LOG_IFL_T(log_level, "LENOVO_VID"); 69 + 70 + switch (device->product_id) { 71 + case EXPLORER_PID: *out_hmd_type = WMR_HEADSET_LENOVO_EXPLORER; return true; 72 + default: U_LOG_IFL_T(log_level, "No matching PID!"); return false; 80 73 } 81 74 82 - *out_hmd_type = WMR_HEADSET_LENOVO_EXPLORER; 83 - *out_interface = 0; 84 - return true; 85 - 86 75 case SAMSUNG_VID: 87 - if (device->product_id == ODYSSEY_PLUS_PID) { 88 - *out_hmd_type = WMR_HEADSET_SAMSUNG_800ZAA; 89 - *out_interface = 0; 90 - return true; 91 - } else if (device->product_id == ODYSSEY_PID) { 76 + U_LOG_IFL_T(log_level, "SAMSUNG_VID"); 77 + 78 + switch (device->product_id) { 79 + case ODYSSEY_PLUS_PID: *out_hmd_type = WMR_HEADSET_SAMSUNG_800ZAA; return true; 80 + case ODYSSEY_PID: 92 81 U_LOG_IFL_W(log_level, "Original Odyssey may not be well-supported - continuing anyway."); 93 82 *out_hmd_type = WMR_HEADSET_SAMSUNG_XE700X3AI; 94 - *out_interface = 0; 95 83 return true; 96 - } else { 97 - return false; 84 + default: U_LOG_IFL_T(log_level, "No matching PID!"); return false; 98 85 } 99 86 100 87 case QUANTA_VID: 101 - if (device->product_id != MEDION_ERAZER_X1000_PID) { 102 - return false; 103 - } 88 + U_LOG_IFL_T(log_level, "QUANTA_VID"); 104 89 105 - *out_hmd_type = WMR_HEADSET_MEDION_ERAZER_X1000; 106 - *out_interface = 0; 107 - return true; 90 + switch (device->product_id) { 91 + case MEDION_ERAZER_X1000_PID: *out_hmd_type = WMR_HEADSET_MEDION_ERAZER_X1000; return true; 92 + default: U_LOG_IFL_T(log_level, "No matching PID!"); return false; 93 + } 108 94 109 95 default: return false; 110 96 } ··· 116 102 size_t device_count, 117 103 enum u_logging_level log_level, 118 104 enum wmr_headset_type *out_hmd_type, 119 - struct xrt_prober_device **out_device, 120 - int *out_interface) 105 + struct xrt_prober_device **out_device) 121 106 { 122 107 struct xrt_prober_device *dev = NULL; 123 - int interface = 0; 124 108 125 109 for (size_t i = 0; i < device_count; i++) { 126 110 bool match = false; ··· 129 113 continue; 130 114 } 131 115 132 - match = check_and_get_interface(devices[i], log_level, out_hmd_type, &interface); 116 + match = check_and_get_interface(devices[i], log_level, out_hmd_type); 133 117 134 118 if (!match) { 135 119 continue; ··· 155 139 156 140 157 141 *out_device = dev; 158 - *out_interface = interface; 159 142 160 143 return dev != NULL; 161 144 } ··· 182 165 struct xrt_prober_device *dev_holo = devices[index]; 183 166 struct xrt_prober_device *dev_companion = NULL; 184 167 enum wmr_headset_type hmd_type = WMR_HEADSET_GENERIC; 185 - int interface_holo = 2; 186 - int interface_companion = 0; 168 + const int interface_holo = 2; 169 + const int interface_companion = 0; 187 170 188 171 unsigned char buf[256] = {0}; 189 172 int result = xrt_prober_get_string_descriptor(xp, dev_holo, XRT_PROBER_STRING_PRODUCT, buf, sizeof(buf)); ··· 198 181 MS_HOLOLENS_MANUFACTURER_STRING, MS_HOLOLENS_PRODUCT_STRING, dev_holo->vendor_id, 199 182 dev_holo->product_id); 200 183 201 - if (!find_companion_device(xp, devices, device_count, log_level, &hmd_type, &dev_companion, 202 - &interface_companion)) { 184 + if (!find_companion_device(xp, devices, device_count, log_level, &hmd_type, &dev_companion)) { 203 185 U_LOG_IFL_E(log_level, "Did not find HoloLens Sensors' companion device"); 204 186 return -1; 205 187 }