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}
27
28export interface AppOptions {
29 bitrate: number;
30 format: MediaFormat;
31 enableTranscoding: boolean;
32 disableChunkedTranscoding: boolean;
33 maxTranscodes: number;
34 maxDownloads: number;
35 rememberDir: boolean;
36}
37