First working POC

This commit is contained in:
2026-01-26 22:21:54 +01:00
commit cfddc1edea
255 changed files with 77606 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
/**
* Sleep Timer API
*
* Functions to control the sleep timer in the backend.
*/
import { invoke } from "@tauri-apps/api/core";
import type { SleepTimerMode } from "$lib/services/playerEvents";
export interface SleepTimerState {
mode: SleepTimerMode;
remainingSeconds: number;
}
export async function setSleepTimer(mode: SleepTimerMode): Promise<SleepTimerState> {
return invoke("player_set_sleep_timer", { mode });
}
export async function cancelSleepTimer(): Promise<SleepTimerState> {
return invoke("player_cancel_sleep_timer");
}
export async function getSleepTimer(): Promise<SleepTimerState> {
return invoke("player_get_sleep_timer");
}
// Helper functions for common timer modes
export async function setTimeBasedTimer(minutes: number): Promise<SleepTimerState> {
const endTime = Date.now() + minutes * 60 * 1000;
return setSleepTimer({ kind: "time", endTime });
}
export async function setEndOfTrackTimer(): Promise<SleepTimerState> {
return setSleepTimer({ kind: "endOfTrack" });
}
export async function setEpisodesTimer(count: number): Promise<SleepTimerState> {
return setSleepTimer({ kind: "episodes", remaining: count });
}