diff --git a/src/xrt/state_trackers/gui/gui_common.h b/src/xrt/state_trackers/gui/gui_common.h index 3117fdefa..21f592c66 100644 --- a/src/xrt/state_trackers/gui/gui_common.h +++ b/src/xrt/state_trackers/gui/gui_common.h @@ -47,6 +47,7 @@ struct gui_program struct gui_scene_manager *gsm; struct xrt_device *xdevs[NUM_XDEVS]; + struct xrt_instance *instance; struct xrt_prober *xp; struct gui_ogl_texture *texs[256]; diff --git a/src/xrt/state_trackers/gui/gui_prober.c b/src/xrt/state_trackers/gui/gui_prober.c index cd5e7c2e2..cb33933b4 100644 --- a/src/xrt/state_trackers/gui/gui_prober.c +++ b/src/xrt/state_trackers/gui/gui_prober.c @@ -7,6 +7,7 @@ */ #include "xrt/xrt_prober.h" +#include "xrt/xrt_instance.h" #include "util/u_time.h" #include "gui_common.h" @@ -37,17 +38,23 @@ gui_prober_init(struct gui_program *p) int ret = 0; // Initialize the prober. - ret = xrt_prober_create(&p->xp); + ret = xrt_instance_create(&p->instance); + if (ret != 0) { + return do_exit(p, ret); + } + ret = xrt_instance_get_prober(p->instance, &p->xp); if (ret != 0) { return do_exit(p, ret); } - // Need to prime the prober with devices before dumping and listing. - ret = xrt_prober_probe(p->xp); - if (ret != 0) { - return do_exit(p, ret); + if (p->xp != NULL) { + // Need to prime the prober with devices before dumping and + // listing. + ret = xrt_prober_probe(p->xp); + if (ret != 0) { + return do_exit(p, ret); + } } - return 0; } @@ -57,7 +64,7 @@ gui_prober_select(struct gui_program *p) int ret; // Multiple devices can be found. - ret = xrt_prober_select(p->xp, p->xdevs, NUM_XDEVS); + ret = xrt_instance_select(p->instance, p->xdevs, NUM_XDEVS); if (ret != 0) { return ret; } @@ -89,5 +96,5 @@ gui_prober_teardown(struct gui_program *p) p->xdevs[i] = NULL; } - xrt_prober_destroy(&p->xp); + xrt_instance_destroy(&p->instance); } diff --git a/src/xrt/state_trackers/gui/gui_scene_video.c b/src/xrt/state_trackers/gui/gui_scene_video.c index a90be1749..498201450 100644 --- a/src/xrt/state_trackers/gui/gui_scene_video.c +++ b/src/xrt/state_trackers/gui/gui_scene_video.c @@ -170,6 +170,10 @@ create(void) void gui_scene_select_video_calibrate(struct gui_program *p) { + if (p->xp == NULL) { + // No prober, nothing to create. + return; + } struct video_select *vs = create(); gui_scene_push_front(p, &vs->base); diff --git a/src/xrt/targets/gui/CMakeLists.txt b/src/xrt/targets/gui/CMakeLists.txt index c8aa8b2ca..fe2483a7e 100644 --- a/src/xrt/targets/gui/CMakeLists.txt +++ b/src/xrt/targets/gui/CMakeLists.txt @@ -8,7 +8,6 @@ set(SOURCE_FILES gui_sdl2.c gui_sdl2_imgui.c gui_sdl2_main.c - gui_sdl2_prober.c ) add_executable(gui @@ -26,8 +25,7 @@ target_link_libraries(gui PRIVATE aux_util aux_math st_gui - st_prober - target_lists + target_instance_no_comp imgui_impl_sdl ) target_include_directories(gui PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/..) diff --git a/src/xrt/targets/gui/gui_sdl2_prober.c b/src/xrt/targets/gui/gui_sdl2_prober.c deleted file mode 100644 index f2f2bf794..000000000 --- a/src/xrt/targets/gui/gui_sdl2_prober.c +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2019, Collabora, Ltd. -// SPDX-License-Identifier: BSL-1.0 -/*! - * @file - * @brief Enable the use of the prober in the gui application. - * @author Jakob Bornecrantz - */ - -#include "target_lists.h" - - -int -xrt_prober_create(struct xrt_prober **out_xp) -{ - return xrt_prober_create_with_lists(out_xp, &target_lists); -} diff --git a/src/xrt/targets/gui/meson.build b/src/xrt/targets/gui/meson.build index e71192c0c..c86cc32e0 100644 --- a/src/xrt/targets/gui/meson.build +++ b/src/xrt/targets/gui/meson.build @@ -19,7 +19,6 @@ gui = executable( 'gui_sdl2.c', 'gui_sdl2_imgui.c', 'gui_sdl2_main.c', - 'gui_sdl2_prober.c', '../../../external/imgui/imgui/cimgui_sdl.cpp', '../../../external/imgui/imgui/imgui_impl_sdl.cpp', '../../../external/imgui/imgui/imgui_impl_sdl.h', @@ -31,7 +30,7 @@ gui = executable( lib_aux_math, lib_st_prober, lib_st_gui, - lib_target_lists, + lib_target_instance_no_comp, ] + driver_libs, include_directories: [ aux_include,