chore: add validation for OpenTabletDriver path and improve process handling
This commit is contained in:
4 files changed
+66
-23
No files matched your search
@@ -150,3 +150,5 @@ export const startOpenTabletDriver = async (otdDaemonPath: string) =>
|
||||
await invoke('run_open_tablet_driver', { path: otdDaemonPath });
|
||||
export const stopOpenTabletDriver = async () => await invoke('stop_open_tablet_driver');
|
||||
export const isOpenTabletDriverRunning = async () => await invoke('is_open_tablet_driver_running');
|
||||
export const isOpenTabletDriverPathValid = async (path: string) =>
|
||||
await invoke('is_open_tablet_driver_path_valid', { path });
|
||||
+36
-15
@@ -65,6 +65,7 @@
|
||||
hasOsuWinello,
|
||||
hasWMCTRL,
|
||||
installUpdate,
|
||||
isOpenTabletDriverPathValid,
|
||||
isOpenTabletDriverRunning,
|
||||
isOsuCorrupted,
|
||||
isOsuRunning,
|
||||
@@ -201,6 +202,8 @@
|
||||
directory: true,
|
||||
multiple: false,
|
||||
title: 'Select osu! Installation Folder',
|
||||
canCreateDirectories: false,
|
||||
defaultPath: $osuInstallationPath ?? undefined,
|
||||
});
|
||||
|
||||
if (typeof selectedPath === 'string') {
|
||||
@@ -454,6 +457,35 @@
|
||||
},
|
||||
]);
|
||||
}
|
||||
|
||||
let otd_run = false;
|
||||
if ($openTabletDriverEnabled && $openTabletDriverPath.length > 0) {
|
||||
const otdRunning = await isOpenTabletDriverRunning();
|
||||
if (!otdRunning) {
|
||||
launchInfo = 'Starting OpenTabletDriver...';
|
||||
const validDaemon = await isOpenTabletDriverPathValid($openTabletDriverPath);
|
||||
if (!validDaemon) {
|
||||
sileo.error({
|
||||
title: 'Hmmm...',
|
||||
description: 'Failed to start OpenTabletDriver, executable not found.',
|
||||
});
|
||||
launching.set(false);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
await startOpenTabletDriver($openTabletDriverPath);
|
||||
otd_run = true;
|
||||
} catch (err) {
|
||||
console.log('Failed to start OpenTabletDriver:', err);
|
||||
sileo.error({
|
||||
title: 'Hmmm...',
|
||||
description: 'Failed to start OpenTabletDriver.',
|
||||
});
|
||||
launching.set(false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
await new Promise((res) => setTimeout(res, 1500));
|
||||
launchInfo = 'Launching osu!...';
|
||||
|
||||
@@ -575,19 +607,6 @@
|
||||
}, 1000 * 2);
|
||||
}
|
||||
|
||||
let otd_run = false;
|
||||
if ($openTabletDriverEnabled && $openTabletDriverPath.length > 0) {
|
||||
const otdRunning = await isOpenTabletDriverRunning();
|
||||
if (!otdRunning) {
|
||||
try {
|
||||
await startOpenTabletDriver($openTabletDriverPath);
|
||||
otd_run = true;
|
||||
} catch (err) {
|
||||
console.log('Failed to start OpenTabletDriver:', err);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
await runOsu(osuPath, true);
|
||||
if ($trackingEnabled) umami.track('app_exit_osu');
|
||||
cleanup = true;
|
||||
@@ -795,12 +814,14 @@
|
||||
const selectedPath = await open({
|
||||
directory: false,
|
||||
multiple: false,
|
||||
title: 'Select OpenTabletDriver Executable',
|
||||
title: 'Select OpenTabletDriver.Daemon Executable',
|
||||
defaultPath: $openTabletDriverPath ?? undefined,
|
||||
canCreateDirectories: false,
|
||||
filters:
|
||||
$platform === 'windows'
|
||||
? [
|
||||
{
|
||||
name: 'OpenTabletDriver',
|
||||
name: 'OpenTabletDriver.Daemon.exe',
|
||||
extensions: ['exe'],
|
||||
},
|
||||
]
|
||||
|
||||
Reference in new issue
Block a user