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