From ccc133cf6d4958a10d7a5195b7f45ef216e96246 Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Mon, 28 Aug 2023 16:33:53 +0200 Subject: [PATCH 1/2] [bugfix-313] Restore SteamVR shortly after launching BS and on disabling FPFC Mode --- src/main/ipcs/bs-launcher-ipcs.ts | 6 ++++++ src/main/services/bs-launcher.service.ts | 6 +++--- .../slides/launch/launch-slide.component.tsx | 5 +++++ src/renderer/services/bs-launcher.service.ts | 7 +++++-- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/main/ipcs/bs-launcher-ipcs.ts b/src/main/ipcs/bs-launcher-ipcs.ts index 1a272778..c9265bf3 100644 --- a/src/main/ipcs/bs-launcher-ipcs.ts +++ b/src/main/ipcs/bs-launcher-ipcs.ts @@ -15,3 +15,9 @@ ipc.on("create-launch-shortcut", (req, reply) => { const bsLauncher = BSLauncherService.getInstance(); reply(from(bsLauncher.createLaunchShortcut(req.args))); }); + + +ipc.on("bs-launch.restore-steamvr", (_, reply) => { + const bsLauncher = BSLauncherService.getInstance(); + reply(from(bsLauncher.restoreSteamVR())); +}); diff --git a/src/main/services/bs-launcher.service.ts b/src/main/services/bs-launcher.service.ts index d7e18031..ed87019f 100644 --- a/src/main/services/bs-launcher.service.ts +++ b/src/main/services/bs-launcher.service.ts @@ -144,7 +144,6 @@ export class BSLauncherService { await this.backupSteamVR().catch(() => { return this.restoreSteamVR(); }); - await lastValueFrom(timer(2_000)); } else if(!launchOptions.version.oculus){ await this.restoreSteamVR(); } @@ -163,13 +162,14 @@ export class BSLauncherService { bsProcess.removeAllListeners("error"); bsProcess.removeAllListeners("exit"); resolve(-1); - }, 4000); + }, 15_000); }).then(exitCode => { log.info("BS process exit code", exitCode); }).catch(err => { - log.error(err); obs.error({type: BSLaunchError.BS_EXIT_ERROR, data: err} as BSLaunchErrorData); + }).finally(() => { + this.restoreSteamVR().catch(log.error); }); })().then(() => { diff --git a/src/renderer/components/version-viewer/slides/launch/launch-slide.component.tsx b/src/renderer/components/version-viewer/slides/launch/launch-slide.component.tsx index 54e52d8d..5a184635 100644 --- a/src/renderer/components/version-viewer/slides/launch/launch-slide.component.tsx +++ b/src/renderer/components/version-viewer/slides/launch/launch-slide.component.tsx @@ -31,6 +31,11 @@ export function LaunchSlide({ version }: Props) { configService.set("additionnal-args", additionalArgsString); }, [additionalArgsString]); + useEffect(() => { + if(desktopMode){ return; } + bsLauncherService.restoreSteamVR(); + }, [desktopMode]); + const setMode = (mode: LaunchMods, value: boolean) => { if (mode === LaunchMods.DEBUG_MOD) { setDebugMode(value); diff --git a/src/renderer/services/bs-launcher.service.ts b/src/renderer/services/bs-launcher.service.ts index c1832eb2..602548f1 100644 --- a/src/renderer/services/bs-launcher.service.ts +++ b/src/renderer/services/bs-launcher.service.ts @@ -2,7 +2,7 @@ import { LaunchOption, BSLaunchEvent, BSLaunchWarning, BSLaunchEventData, BSLaun import { BSVersion } from 'shared/bs-version.interface'; import { IpcService } from "./ipc.service"; import { NotificationService } from "./notification.service"; -import { BehaviorSubject, Observable, filter } from "rxjs"; +import { BehaviorSubject, Observable, filter, lastValueFrom } from "rxjs"; import { ConfigurationService } from "./configuration.service"; import { ThemeService } from "./theme.service"; @@ -37,7 +37,7 @@ export class BSLauncherService { additionalArgs: (this.config.get("additionnal-args") || "").split(";").map(arg => arg.trim()).filter(arg => arg.length > 0) } } - + public doLaunch(launchOptions: LaunchOption): Observable{ return this.ipcService.sendV2("bs-launch.launch", {args: launchOptions}); } @@ -73,6 +73,9 @@ export class BSLauncherService { return this.ipcService.sendV2("create-launch-shortcut", {args: options}); } + public restoreSteamVR(): Promise{ + return lastValueFrom(this.ipcService.sendV2("bs-launch.restore-steamvr")); + } } export enum LaunchMods { From 195bc1ad6480043e5d1c571e0583b25bbe3dbd96 Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Mon, 28 Aug 2023 16:36:31 +0200 Subject: [PATCH 2/2] [bugfix-313] remove unused imports --- src/main/services/bs-launcher.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/services/bs-launcher.service.ts b/src/main/services/bs-launcher.service.ts index ed87019f..36b428f1 100644 --- a/src/main/services/bs-launcher.service.ts +++ b/src/main/services/bs-launcher.service.ts @@ -8,7 +8,7 @@ import { BSLocalVersionService } from "./bs-local-version.service"; import { pathExist } from "../helpers/fs.helpers"; import { rename } from "fs/promises"; import log from "electron-log"; -import { Observable, lastValueFrom, of, timer } from "rxjs"; +import { Observable, of } from "rxjs"; import { BsmProtocolService } from "./bsm-protocol.service"; import { app, shell} from "electron"; import { Resvg } from "@resvg/resvg-js";