The open source OpenXR runtime
0
fork

Configure Feed

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

d/remote: Use better logging helpers

+58 -21
+52 -21
src/xrt/drivers/remote/r_hub.c
··· 9 9 10 10 #include "util/u_var.h" 11 11 #include "util/u_misc.h" 12 - #include "util/u_logging.h" 12 + #include "util/u_debug.h" 13 13 14 14 #include "r_interface.h" 15 15 #include "r_internal.h" ··· 37 37 38 38 /* 39 39 * 40 - * Function. 40 + * Small helpers. 41 + * 42 + */ 43 + 44 + DEBUG_GET_ONCE_LOG_OPTION(remote_log, "REMOTE_LOG", U_LOGGING_INFO) 45 + 46 + // clang-format off 47 + #define R_TRACE(R, ...) U_LOG_IFL_T((R)->rc.log_level, __VA_ARGS__) 48 + #define R_DEBUG(R, ...) U_LOG_IFL_D((R)->rc.log_level, __VA_ARGS__) 49 + #define R_INFO(R, ...) U_LOG_IFL_I((R)->rc.log_level, __VA_ARGS__) 50 + #define R_WARN(R, ...) U_LOG_IFL_W((R)->rc.log_level, __VA_ARGS__) 51 + #define R_ERROR(R, ...) U_LOG_IFL_E((R)->rc.log_level, __VA_ARGS__) 52 + 53 + #define RC_TRACE(RC, ...) U_LOG_IFL_T((RC)->log_level, __VA_ARGS__) 54 + #define RC_DEBUG(RC, ...) U_LOG_IFL_D((RC)->log_level, __VA_ARGS__) 55 + #define RC_INFO(RC, ...) U_LOG_IFL_I((RC)->log_level, __VA_ARGS__) 56 + #define RC_WARN(RC, ...) U_LOG_IFL_W((RC)->log_level, __VA_ARGS__) 57 + #define RC_ERROR(RC, ...) U_LOG_IFL_E((RC)->log_level, __VA_ARGS__) 58 + // clang-format on 59 + 60 + 61 + /* 62 + * 63 + * Socket functions. 41 64 * 42 65 */ 43 66 ··· 49 72 50 73 ret = socket(AF_INET, SOCK_STREAM, 0); 51 74 if (ret < 0) { 52 - U_LOG_E("socket failed: %i", ret); 75 + R_ERROR(r, "socket: %i", ret); 53 76 return ret; 54 77 } 55 78 ··· 58 81 int flag = 1; 59 82 ret = setsockopt(r->accept_fd, SOL_SOCKET, SO_REUSEADDR, &flag, sizeof(flag)); 60 83 if (ret < 0) { 61 - U_LOG_E("setsockopt failed: %i", ret); 84 + R_ERROR(r, "setsockopt: %i", ret); 62 85 close(r->accept_fd); 63 86 r->accept_fd = -1; 64 87 return ret; ··· 70 93 71 94 ret = bind(r->accept_fd, (struct sockaddr *)&server_address, sizeof(server_address)); 72 95 if (ret < 0) { 73 - U_LOG_E("bind failed: %i", ret); 96 + R_ERROR(r, "bind: %i", ret); 74 97 close(r->accept_fd); 75 98 r->accept_fd = -1; 76 99 return ret; ··· 103 126 } while (ret == 0); 104 127 105 128 if (ret < 0) { 106 - U_LOG_E("select failed: %i", ret); 129 + R_ERROR(r, "select: %i", ret); 107 130 return ret; 108 131 } 109 132 110 133 socklen_t addr_length = (socklen_t)sizeof(addr); 111 134 ret = accept(r->accept_fd, (struct sockaddr *)&addr, &addr_length); 112 135 if (ret < 0) { 113 - U_LOG_E("accept failed: %i", ret); 136 + R_ERROR(r, "accept: %i", ret); 114 137 return ret; 115 138 } 116 139 ··· 119 142 int flags = 1; 120 143 ret = setsockopt(conn_fd, SOL_TCP, TCP_NODELAY, (void *)&flags, sizeof(flags)); 121 144 if (ret < 0) { 122 - U_LOG_E("setsockopt failed: %i", ret); 145 + R_ERROR(r, "setsockopt: %i", ret); 123 146 close(conn_fd); 124 147 return ret; 125 148 } 126 149 127 150 r->rc.fd = conn_fd; 128 151 129 - U_LOG_I("Connection received! %i", r->rc.fd); 152 + R_INFO(r, "Connection received! %i", r->rc.fd); 130 153 131 154 return 0; 132 155 } ··· 139 162 140 163 ret = setup_accept_fd(r); 141 164 if (ret < 0) { 142 - U_LOG_I("Leaving thread"); 165 + R_INFO(r, "Leaving thread"); 143 166 return NULL; 144 167 } 145 168 146 169 while (r->accept_fd >= 0) { 147 - U_LOG_I("Listening on port '%i'.", r->port); 170 + R_INFO(r, "Listening on port '%i'.", r->port); 148 171 149 172 ret = do_accept(r); 150 173 if (ret < 0) { 151 - U_LOG_I("Leaving thread"); 174 + R_INFO(r, "Leaving thread"); 152 175 return NULL; 153 176 } 154 177 ··· 167 190 } 168 191 } 169 192 170 - U_LOG_I("Leaving thread"); 193 + R_INFO(r, "Leaving thread"); 194 + 171 195 return NULL; 172 196 } 173 197 ··· 241 265 r->reset.right.pose.position.z = -0.5f; 242 266 r->reset.right.pose.orientation.w = 1.0f; 243 267 r->latest = r->reset; 268 + r->rc.log_level = debug_get_log_option_remote_log(); 244 269 r->gui.hmd = true; 245 270 r->gui.left = true; 246 271 r->gui.right = true; ··· 252 277 253 278 ret = os_thread_helper_init(&r->oth); 254 279 if (ret != 0) { 255 - U_LOG_E("Failed to init threading!"); 280 + R_ERROR(r, "Failed to init threading!"); 256 281 r_hub_destroy(&r->base); 257 282 return XRT_ERROR_ALLOCATION; 258 283 } 259 284 260 285 ret = os_thread_helper_start(&r->oth, run_thread, r); 261 286 if (ret != 0) { 262 - U_LOG_E("Failed to start thread!"); 287 + R_ERROR(r, "Failed to start thread!"); 263 288 r_hub_destroy(&r->base); 264 289 return XRT_ERROR_ALLOCATION; 265 290 } ··· 326 351 int conn_fd; 327 352 int ret; 328 353 354 + // Set log level. 355 + rc->log_level = debug_get_log_option_remote_log(); 356 + 357 + // Address 329 358 addr.sin_family = AF_INET; 330 359 addr.sin_port = htons(port); 331 360 332 361 ret = inet_pton(AF_INET, ip_addr, &addr.sin_addr); 333 362 if (ret < 0) { 334 - U_LOG_E("socket failed: %i", ret); 363 + RC_ERROR(rc, "inet_pton: %i", ret); 335 364 return ret; 336 365 } 337 366 338 367 ret = socket(AF_INET, SOCK_STREAM, 0); 339 368 if (ret < 0) { 340 - U_LOG_E("socket failed: %i", ret); 369 + RC_ERROR(rc, "socket: %i", ret); 341 370 return ret; 342 371 } 343 372 ··· 345 374 346 375 ret = connect(conn_fd, (struct sockaddr *)&addr, sizeof(addr)); 347 376 if (ret < 0) { 348 - U_LOG_E("connect failed: %i", ret); 377 + RC_ERROR(rc, "connect: %i", ret); 349 378 close(conn_fd); 350 379 return ret; 351 380 } ··· 353 382 int flags = 1; 354 383 ret = setsockopt(conn_fd, SOL_TCP, TCP_NODELAY, (void *)&flags, sizeof(flags)); 355 384 if (ret < 0) { 356 - U_LOG_E("setsockopt failed: %i", ret); 385 + RC_ERROR(rc, "setsockopt: %i", ret); 357 386 close(conn_fd); 358 387 return ret; 359 388 } ··· 374 403 375 404 ssize_t ret = read(rc->fd, ptr, size - current); 376 405 if (ret < 0) { 406 + RC_ERROR(rc, "read: %zi", ret); 377 407 return ret; 378 408 } 379 409 if (ret > 0) { 380 410 current += (size_t)ret; 381 411 } else { 382 - U_LOG_I("Disconnected!"); 412 + RC_INFO(rc, "Disconnected!"); 383 413 return -1; 384 414 } 385 415 } ··· 398 428 399 429 ssize_t ret = write(rc->fd, ptr, size - current); 400 430 if (ret < 0) { 431 + RC_ERROR(rc, "write: %zi", ret); 401 432 return ret; 402 433 } 403 434 if (ret > 0) { 404 435 current += (size_t)ret; 405 436 } else { 406 - U_LOG_I("Disconnected!"); 437 + RC_INFO(rc, "Disconnected!"); 407 438 return -1; 408 439 } 409 440 }
+6
src/xrt/drivers/remote/r_interface.h
··· 10 10 #pragma once 11 11 12 12 #include "xrt/xrt_defines.h" 13 + #include "util/u_logging.h" 14 + 13 15 14 16 #ifdef __cplusplus 15 17 extern "C" { ··· 81 83 */ 82 84 struct r_remote_connection 83 85 { 86 + //! Logging level to be used. 87 + enum u_logging_level log_level; 88 + 89 + //! Socket. 84 90 int fd; 85 91 }; 86 92