diff --git a/src/confighttp.cpp b/src/confighttp.cpp index 15c13f66..86fa17f8 100644 --- a/src/confighttp.cpp +++ b/src/confighttp.cpp @@ -547,7 +547,7 @@ namespace confighttp { outputTree.put("platform", SUNSHINE_PLATFORM); outputTree.put("version", PROJECT_VER); #ifdef _WIN32 - outputTree.put("vdisplaySupported", proc::vdisplayDriverInitialized ? "true" : "false"); + outputTree.put("vdisplayStatus", proc::vdisplayDriverInitialized ? "true" : "false"); #endif auto vars = config::parse_config(file_handler::read_file(config::sunshine.config_file.c_str())); diff --git a/src/platform/windows/virtual_display.cpp b/src/platform/windows/virtual_display.cpp index 033e5cd6..f11fa48f 100644 --- a/src/platform/windows/virtual_display.cpp +++ b/src/platform/windows/virtual_display.cpp @@ -84,22 +84,6 @@ bool setPrimaryDisplay(const wchar_t* primaryDeviceName) { return true; } -bool openVDisplayDevice() { - SUDOVDA_DRIVER_HANDLE = OpenDevice(&SUVDA_INTERFACE_GUID); - if (SUDOVDA_DRIVER_HANDLE == INVALID_HANDLE_VALUE) { - return false; - } - - if (!CheckProtocolCompatible(SUDOVDA_DRIVER_HANDLE)) { - printf("[SUDOVDA] SUDOVDA protocol not compatible with driver!\n"); - CloseHandle(SUDOVDA_DRIVER_HANDLE); - SUDOVDA_DRIVER_HANDLE = INVALID_HANDLE_VALUE; - return false; - } - - return true; -} - bool startPingThread() { if (SUDOVDA_DRIVER_HANDLE == INVALID_HANDLE_VALUE) { return false; @@ -129,6 +113,22 @@ bool startPingThread() { return true; } +bool openVDisplayDevice() { + SUDOVDA_DRIVER_HANDLE = OpenDevice(&SUVDA_INTERFACE_GUID); + if (SUDOVDA_DRIVER_HANDLE == INVALID_HANDLE_VALUE) { + return false; + } + + if (!CheckProtocolCompatible(SUDOVDA_DRIVER_HANDLE)) { + printf("[SUDOVDA] SUDOVDA protocol not compatible with driver!\n"); + CloseHandle(SUDOVDA_DRIVER_HANDLE); + SUDOVDA_DRIVER_HANDLE = INVALID_HANDLE_VALUE; + return false; + } + + return startPingThread(); +} + std::wstring createVirtualDisplay( const char* s_client_uid, const char* s_client_name, diff --git a/src/platform/windows/virtual_display.h b/src/platform/windows/virtual_display.h index ba0cec84..5a1d7b9d 100644 --- a/src/platform/windows/virtual_display.h +++ b/src/platform/windows/virtual_display.h @@ -15,8 +15,8 @@ namespace VDISPLAY { LONG changeDisplaySettings(const wchar_t* deviceName, int width, int height, int refresh_rate); bool setPrimaryDisplay(const wchar_t* primaryDeviceName); - bool openVDisplayDevice(); bool startPingThread(); + bool openVDisplayDevice(); std::wstring createVirtualDisplay( const char* s_client_uid, const char* s_client_name, diff --git a/src_assets/common/assets/web/config.html b/src_assets/common/assets/web/config.html index 2102aced..9d570c81 100644 --- a/src_assets/common/assets/web/config.html +++ b/src_assets/common/assets/web/config.html @@ -53,6 +53,7 @@ v-if="currentTab === 'av'" :config="config" :platform="platform" + :vdisplay="vdisplayStatus" > @@ -131,6 +132,7 @@ restarted: false, config: null, currentTab: "general", + vdisplayStatus: false, global_prep_cmd: [], tabs: [ // TODO: Move the options to each Component instead, encapsulate. { @@ -309,6 +311,9 @@ delete this.config.status; delete this.config.version; + this.vdisplayStatus = this.config.vdisplayStatus === 'true'; + delete this.config.vdisplayStatus; + // TODO: let each tab's Component handle it's own data instead of doing it here // Populate default values from tabs options diff --git a/src_assets/common/assets/web/configs/tabs/AudioVideo.vue b/src_assets/common/assets/web/configs/tabs/AudioVideo.vue index ce2dec7a..9dde4099 100644 --- a/src_assets/common/assets/web/configs/tabs/AudioVideo.vue +++ b/src_assets/common/assets/web/configs/tabs/AudioVideo.vue @@ -11,6 +11,7 @@ import DisplayModesSettings from "./audiovideo/DisplayModesSettings.vue"; const props = defineProps([ 'platform', 'config', + 'vdisplay', 'min_fps_factor', ]) @@ -95,6 +96,7 @@ const config = ref(props.config) diff --git a/src_assets/common/assets/web/configs/tabs/audiovideo/DisplayModesSettings.vue b/src_assets/common/assets/web/configs/tabs/audiovideo/DisplayModesSettings.vue index b901e1ca..1c708b7a 100644 --- a/src_assets/common/assets/web/configs/tabs/audiovideo/DisplayModesSettings.vue +++ b/src_assets/common/assets/web/configs/tabs/audiovideo/DisplayModesSettings.vue @@ -6,6 +6,7 @@ import PlatformLayout from '../../../PlatformLayout.vue' const props = defineProps([ 'platform', 'config', + 'vdisplay', 'min_fps_factor', ]) @@ -24,6 +25,9 @@ const fpsIn = ref("")
{{ $t('config.min_fps_factor_desc') }}
+
+ +