First working POC
This commit is contained in:
@@ -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 });
|
||||
}
|
||||
Reference in New Issue
Block a user