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 disableChunkedTranscoding: boolean;
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 videoSettings: {
56 container: MediaContainer;
57 videoCodec: VideoCodec;
58 videoEncodingSetting: VideoEncodingSetting;
59 videoBitrate: number;
60 audioCodec: AudioCodec;
61 audioBitrate: number;
62 };
63 audioSettings: {
64 container: MediaContainer;
65 audioCodec: AudioCodec;
66 audioBitrate: number;
67 };
68}
69