mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-10 01:56:16 -08:00
* fix(remote-control): use iptvnator favicon * feat(playback): add embedded mpv series navigation * refactor(playback): share series navigation state
74 lines
1.6 KiB
TypeScript
74 lines
1.6 KiB
TypeScript
export type EmbeddedMpvSessionStatus =
|
|
| 'idle'
|
|
| 'loading'
|
|
| 'playing'
|
|
| 'paused'
|
|
| 'ended'
|
|
| 'error'
|
|
| 'closed';
|
|
|
|
export interface EmbeddedMpvBounds {
|
|
x: number;
|
|
y: number;
|
|
width: number;
|
|
height: number;
|
|
}
|
|
|
|
export interface EmbeddedMpvCapabilities {
|
|
subtitles: boolean;
|
|
playbackSpeed: boolean;
|
|
aspectOverride: boolean;
|
|
screenshot: boolean;
|
|
recording: boolean;
|
|
}
|
|
|
|
export interface EmbeddedMpvSupport {
|
|
supported: boolean;
|
|
platform: string;
|
|
reason?: string;
|
|
capabilities?: EmbeddedMpvCapabilities;
|
|
}
|
|
|
|
export interface EmbeddedMpvAudioTrack {
|
|
id: number;
|
|
title?: string;
|
|
language?: string;
|
|
selected: boolean;
|
|
defaultTrack?: boolean;
|
|
forced?: boolean;
|
|
}
|
|
|
|
export type EmbeddedMpvSubtitleTrack = EmbeddedMpvAudioTrack;
|
|
|
|
export interface EmbeddedMpvRecordingState {
|
|
active: boolean;
|
|
targetPath?: string;
|
|
startedAt?: string;
|
|
error?: string;
|
|
}
|
|
|
|
export interface EmbeddedMpvRecordingStartOptions {
|
|
directory?: string;
|
|
title?: string;
|
|
}
|
|
|
|
export interface EmbeddedMpvSession {
|
|
id: string;
|
|
title: string;
|
|
streamUrl: string;
|
|
status: EmbeddedMpvSessionStatus;
|
|
positionSeconds: number;
|
|
durationSeconds: number | null;
|
|
volume: number;
|
|
audioTracks: EmbeddedMpvAudioTrack[];
|
|
selectedAudioTrackId: number | null;
|
|
subtitleTracks: EmbeddedMpvSubtitleTrack[];
|
|
selectedSubtitleTrackId: number | null;
|
|
playbackSpeed: number;
|
|
aspectOverride: string;
|
|
recording?: EmbeddedMpvRecordingState;
|
|
startedAt: string;
|
|
updatedAt: string;
|
|
error?: string;
|
|
}
|