types.ts
⎇
Raw
1import type { AudioCodec, MediaContainer, MediaFile, VideoCodec, VideoEncodingSetting } 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 interface Playlist {
9 name: string;
10 items: Omit<PlaylistItem, "id">[];
11}
12
13export interface PlayerState {
14 isPlaying: boolean;
15 currentTrack: PlaylistItem | null;
16 currentTime: number;
17 volume: number;
18 buffered: { start: number; end: number }[];
19 rate: number;
20 waitingForStart: boolean;
21}
22
23export enum FileDisplay {
24 FILENAME = 0,
25 TITLE = 1,
26 TRACKNO_TITLE = 2,
27}
28
29export interface AppOptions {
30 enableTranscoding: boolean;
31 disableChunkedTranscoding: boolean;
32 audioBitrate: number;
33 videoBitrate: number;
34 container: MediaContainer;
35 audioCodec: AudioCodec;
36 videoCodec: VideoCodec;
37 videoEncodingSettings: VideoEncodingSetting;
38 maxTranscodes: number;
39 maxDownloads: number;
40 transcodeCovers: boolean;
41
42 hideVolume: boolean;
43 hideCover: boolean;
44 hidePlaylistCover: boolean;
45 filebrowserDisplay: FileDisplay;
46 playlistDisplay: FileDisplay;
47 controlsDisplay: FileDisplay;
48 fontResolution: number;
49 progressBarHeight: number;
50
51 useMSE: boolean;
52 rememberDir: boolean;
53 duplicateWarning: boolean;
54}
55