fix(launcher): use per-profile timing overrides

This commit is contained in:
Scott Idem
2026-05-13 12:48:43 -04:00
parent 4923099cfb
commit 39749c608a
7 changed files with 258 additions and 117 deletions

View File

@@ -118,10 +118,10 @@ let screen_saver_exts = ['jpg', 'png', 'PNG', 'webp'];
/**
* Resolves the LaunchProfile for a given file extension and optional per-file
* display override. Checked in priority order:
* 1. event_device.data_json.launch_profiles (API-driven, per-device)
* 2. $events_loc.launcher.launch_profiles (local persistent override)
* 3. DEFAULT_LAUNCH_PROFILES[ext] (Svelte built-in defaults)
* 4. DEFAULT_LAUNCH_PROFILES['default'] (catch-all)
* 1. event_device.data_json.launch_profiles[profile] (API-driven, per-device)
* 2. $events_loc.launcher.launch_profiles[profile] (local persistent override)
* 3. DEFAULT_LAUNCH_PROFILES[profile/alias] (Svelte built-in defaults)
* 4. DEFAULT_LAUNCH_PROFILES['default'] (catch-all)
* Per-file display_override from event_file.cfg_json overrides display_mode only.
*/
function get_launch_profile(
@@ -135,27 +135,12 @@ function get_launch_profile(
null;
const local_profiles = ($events_loc as any).launcher?.launch_profiles ?? null;
const display_override = file_obj?.cfg_json?.display_override ?? null;
const profile = resolve_launch_profile(
return resolve_launch_profile(
extension,
display_override,
device_profiles,
local_profiles
);
const device_post_delay_ms =
native_device?.other_json?.launcher?.post_delay_ms ??
native_device?.post_delay_ms ??
null;
const parsed_delay_ms =
typeof device_post_delay_ms === 'string'
? Number(device_post_delay_ms)
: device_post_delay_ms;
if (Number.isFinite(parsed_delay_ms) && parsed_delay_ms >= 0) {
profile.post_delay_ms = parsed_delay_ms;
}
return profile;
}
onMount(() => {