chore: add validation for OpenTabletDriver path and improve process handling

This commit is contained in:
HorizonCode committed 2026-05-27 19:31:53 +02:00
1 parent ace3320632
commit 3a27646da8
4 files changed
+66 -23

No files matched your search

+2
View File
@@ -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
View File
@@ -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'],
},
]