types.ts
⎇
Raw
1import type { MediaFile, MediaFormat } from "music-server-shared/types";
2
3export interface PlaylistItem extends MediaFile {
4 id: string; //used for determining currently playing item
5 path: string;
6}
7
8export function getItemName(item: Pick<PlaylistItem, "path">): string;
9export function getItemName(item: Pick<PlaylistItem, "path"> | null): string | undefined;
10export function getItemName(item: Pick<PlaylistItem, "path"> | null) {
11 if (!item) return undefined;
12 return item.path.split("/").toReversed()[0];
13}
14
15export interface Playlist {
16 name: string;
17 items: Omit<PlaylistItem, "id">[];
18}
19
20export interface PlayerState {
21 isPlaying: boolean;
22 currentTrack: PlaylistItem | null;
23 currentTime: number;
24 volume: number;
25 buffered: number;
26 rate: number;
27 waitingForStart: boolean;
28}
29
30export interface AppOptions {
31 bitrate: number;
32 format: MediaFormat;
33 enableTranscoding: boolean;
34 disableChunkedTranscoding: boolean;
35 maxTranscodes: number;
36 maxDownloads: number;
37 rememberDir: boolean;
38 hideVolume: boolean;
39 duplicateWarning: boolean;
40 fontResolution: number;
41}
42