The open source OpenXR runtime

ipc: Create android_instance_base if required.

Co-authored-by: Jarvis Huang <quic_jarvhuan@quicinc.com>
Part-of: <https://gitlab.freedesktop.org/monado/monado/-/merge_requests/1655>

+29 -2
+5
src/xrt/ipc/CMakeLists.txt
··· 85 85 endif() 86 86 target_link_libraries(ipc_client PRIVATE aux_util ipc_shared) 87 87 88 + if(ANDROID) 89 + # Need android_instance_base on the client side too. 90 + target_link_libraries(ipc_client PRIVATE aux_android) 91 + endif() 92 + 88 93 ### 89 94 # Server 90 95
+24 -2
src/xrt/ipc/client/ipc_client_instance.c
··· 54 54 #endif 55 55 56 56 #ifdef XRT_OS_ANDROID 57 - #include "android/android_globals.h" 57 + #include "xrt/xrt_android.h" 58 58 #include "android/ipc_client_android.h" 59 + #include "android/android_instance_base.h" 59 60 #endif // XRT_OS_ANDROID 60 61 61 62 DEBUG_GET_ONCE_LOG_OPTION(ipc_log, "IPC_LOG", U_LOGGING_WARN) ··· 82 83 83 84 struct xrt_device *xdevs[XRT_SYSTEM_MAX_DEVICES]; 84 85 size_t xdev_count; 86 + 87 + #ifdef XRT_OS_ANDROID 88 + struct android_instance_base android; 89 + #endif 85 90 }; 86 91 87 92 static inline struct ipc_client_instance * ··· 232 237 } 233 238 ii->xtrack_count = 0; 234 239 240 + #ifdef XRT_OS_ANDROID 241 + android_instance_base_cleanup(&(ii->android), xinst); 242 + ipc_client_android_destroy(&(ii->ipc_c.ica)); 243 + #endif // XRT_OS_ANDROID 244 + 235 245 #ifdef XRT_OS_WINDOWS 236 246 timeEndPeriod(1); 237 247 #endif ··· 265 275 timeBeginPeriod(1); 266 276 #endif 267 277 268 - xrt_result_t xret = ipc_client_connection_init(&ii->ipc_c, debug_get_log_option_ipc_log(), i_info); 278 + xrt_result_t xret; 279 + #ifdef XRT_OS_ANDROID 280 + xret = android_instance_base_init(&ii->android, &ii->base, i_info); 269 281 if (xret != XRT_SUCCESS) { 282 + free(ii); 283 + return xret; 284 + } 285 + #endif 286 + 287 + xret = ipc_client_connection_init(&ii->ipc_c, debug_get_log_option_ipc_log(), i_info); 288 + if (xret != XRT_SUCCESS) { 289 + #ifdef XRT_OS_ANDROID 290 + android_instance_base_cleanup(&(ii->android), &(ii->base)); 291 + #endif 270 292 free(ii); 271 293 return xret; 272 294 }