types.ts
⎇
Raw
1import type {
2 AudioCodec,
3 MediaContainer,
4 MediaFile,
5 VideoCodec,
6 VideoEncodingSetting,
7} from "music-server-shared/types";
8
9export interface PlaylistItem extends MediaFile {
10 id: string; //used for determining currently playing item
11 path: string;
12}
13
14export interface Playlist {
15 name: string;
16 items: Omit<PlaylistItem, "id">[];
17}
18
19export interface PlayerState {
20 isPlaying: boolean;
21 currentTrack: PlaylistItem | null;
22 currentTime: number;
23 volume: number;
24 buffered: { start: number; end: number }[];
25 rate: number;
26 waitingForStart: boolean;
27}
28
29export enum FileDisplay {
30 FILENAME = 0,
31 TITLE = 1,
32 TRACKNO_TITLE = 2,
33}
34
35export interface AppOptions {
36 enableTranscoding: boolean;
37 languages: string;
38 disableChunkedTranscoding: boolean;
39 maxTranscodes: number;
40 maxDownloads: number;
41 transcodeCovers: boolean;
42
43 hideVolume: boolean;
44 hideCover: boolean;
45 hidePlaylistCover: boolean;
46 filebrowserDisplay: FileDisplay;
47 playlistDisplay: FileDisplay;
48 controlsDisplay: FileDisplay;
49 fontResolution: number;
50 progressBarHeight: number;
51
52 useMSE: boolean;
53 rememberDir: boolean;
54 duplicateWarning: boolean;
55
56 videoSettings: {
57 container: MediaContainer;
58 videoCodec: VideoCodec;
59 videoEncodingSetting: VideoEncodingSetting;
60 videoBitrate: number;
61 audioCodec: AudioCodec;
62 audioBitrate: number;
63 };
64 audioSettings: {
65 container: MediaContainer;
66 audioCodec: AudioCodec;
67 audioBitrate: number;
68 };
69}
70