From 205798b611021bcf3edcc2688c326e7817351ee7 Mon Sep 17 00:00:00 2001 From: fufesou Date: Mon, 5 Jun 2023 08:36:32 -0700 Subject: [PATCH] debug virtual display with dummy one Signed-off-by: fufesou --- src/server/connection.rs | 4 ++++ src/server/video_service.rs | 11 +++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/server/connection.rs b/src/server/connection.rs index a5ef3f20f..19405c359 100644 --- a/src/server/connection.rs +++ b/src/server/connection.rs @@ -639,6 +639,10 @@ impl Connection { if active_conns_lock.is_empty() { video_service::reset_resolutions(); } + #[cfg(all(windows, feature = "virtual_display_driver"))] + if active_conns_lock.is_empty() { + video_service::try_plug_out_virtual_display(); + } log::info!("#{} connection loop exited", id); } diff --git a/src/server/video_service.rs b/src/server/video_service.rs index c58d7d12d..06908085f 100644 --- a/src/server/video_service.rs +++ b/src/server/video_service.rs @@ -495,11 +495,14 @@ fn check_get_displays_changed_msg() -> Option { Some(msg_out) } +#[cfg(all(windows, feature = "virtual_display_driver"))] +pub fn try_plug_out_virtual_display() { + let _res = virtual_display_manager::plug_out_headless(); +} + fn run(sp: GenericService) -> ResultType<()> { #[cfg(not(any(target_os = "android", target_os = "ios")))] let _wake_lock = get_wake_lock(); - #[cfg(all(windows, feature = "virtual_display_driver"))] - let _res = virtual_display_manager::plug_out_headless(); // ensure_inited() is needed because release_resource() may be called. #[cfg(target_os = "linux")] @@ -1015,10 +1018,6 @@ fn try_get_displays() -> ResultType> { } else { displays = Display::all()?; } - } else { - if virtual_display_manager::plug_out_headless() { - displays = Display::all()?; - } } Ok(displays) }