The open source OpenXR runtime
0
fork

Configure Feed

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

d/wmr: Add debug gain control

Add a control to the debug UI for adjusting the
camera gain setting when testing.

+18
+18
src/xrt/drivers/wmr/wmr_camera.c
··· 82 82 83 83 struct libusb_transfer *xfers[NUM_XFERS]; 84 84 85 + uint8_t last_gain, debug_gain; 86 + 85 87 struct u_sink_debug debug_sinks[2]; 86 88 87 89 enum u_logging_level log_level; ··· 291 293 xrt_frame_reference(&xf, NULL); 292 294 293 295 cam->last_seq = seq; 296 + if (cam->last_gain != cam->debug_gain) { 297 + int i; 298 + 299 + for (i = 0; i < cam->config_count; i++) { 300 + const struct wmr_camera_config *config = &cam->configs[i]; 301 + if (config->purpose != WMR_CAMERA_PURPOSE_HEAD_TRACKING) { 302 + continue; 303 + } 304 + wmr_camera_set_gain(cam, config->location, cam->debug_gain); 305 + } 306 + } 307 + 294 308 out: 295 309 libusb_submit_transfer(xfer); 296 310 } ··· 309 323 int res, i; 310 324 311 325 cam->log_level = log_level; 326 + cam->debug_gain = DEFAULT_GAIN; 312 327 313 328 if (os_thread_helper_init(&cam->usb_thread) != 0) { 314 329 WMR_CAM_ERROR(cam, "Failed to initialise threading"); ··· 349 364 u_sink_debug_init(&cam->debug_sinks[1]); 350 365 u_var_add_root(cam, "WMR Camera", true); 351 366 u_var_add_log_level(cam, &cam->log_level, "Log level"); 367 + u_var_add_u8(cam, &cam->debug_gain, "Gain"); 352 368 u_var_add_sink_debug(cam, &cam->debug_sinks[0], "SLAM"); 353 369 u_var_add_sink_debug(cam, &cam->debug_sinks[1], "Controllers"); 354 370 ··· 502 518 .gain = __cpu_to_le16(gain), 503 519 .camera_id2 = __cpu_to_le16(camera_id), 504 520 }; 521 + 522 + cam->last_gain = gain; 505 523 506 524 return send_buffer_to_device(cam, (uint8_t *)&cmd, sizeof(cmd)); 507 525 }