import type { AudioCodec, MediaContainer, MediaFile, VideoCodec, VideoEncodingSetting, } from "music-server-shared/types"; export interface PlaylistItem extends MediaFile { id: string; //used for determining currently playing item path: string; } export interface Playlist { name: string; items: Omit[]; } export interface PlayerState { isPlaying: boolean; currentTrack: PlaylistItem | null; currentTime: number; volume: number; buffered: { start: number; end: number }[]; rate: number; waitingForStart: boolean; } export enum FileDisplay { FILENAME = 0, TITLE = 1, TRACKNO_TITLE = 2, } export interface AppOptions { enableTranscoding: boolean; languages: string; disableChunkedTranscoding: boolean; maxTranscodes: number; maxDownloads: number; transcodeCovers: boolean; hideVolume: boolean; hideCover: boolean; hidePlaylistCover: boolean; filebrowserDisplay: FileDisplay; playlistDisplay: FileDisplay; controlsDisplay: FileDisplay; fontResolution: number; progressBarHeight: number; useMSE: boolean; rememberDir: boolean; duplicateWarning: boolean; videoSettings: { container: MediaContainer; videoCodec: VideoCodec; videoEncodingSetting: VideoEncodingSetting; videoBitrate: number; audioCodec: AudioCodec; audioBitrate: number; }; audioSettings: { container: MediaContainer; audioCodec: AudioCodec; audioBitrate: number; }; }