import { Language } from './language.enum'; import { StreamFormat } from './stream-format.enum'; import { Theme } from './theme.enum'; /** * Contains all types of supported video players */ export enum VideoPlayer { VideoJs = 'videojs', Html5Player = 'html5', EmbeddedMpv = 'embedded-mpv', MPV = 'mpv', VLC = 'vlc', ArtPlayer = 'artplayer', } export enum StartupBehavior { FirstView = 'first-view', RestoreLastView = 'restore-last-view', } export type CoverSize = 'small' | 'medium' | 'large'; /** * Describes all available settings options of the application */ export interface Settings { player: VideoPlayer; epgUrl: string[]; streamFormat: StreamFormat; openStreamOnDoubleClick: boolean; language: Language; showCaptions: boolean; showDashboard: boolean; startupBehavior: StartupBehavior; /** Show the desktop footer bar for external playback status */ showExternalPlaybackBar?: boolean; theme: Theme; mpvPlayerPath: string; mpvReuseInstance: boolean; vlcPlayerPath: string; vlcReuseInstance: boolean; remoteControl: boolean; remoteControlPort: number; /** Custom download folder path (uses system Downloads folder if not set) */ downloadFolder?: string; /** Cover/poster sizing preset applied across grids and rails */ coverSize?: CoverSize; }