mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-11 18:19:58 +00:00
Add media controls (#229)
This commit is contained in:
@@ -15,16 +15,6 @@ import {
|
||||
UserAction
|
||||
} from "./enums";
|
||||
|
||||
export class AudiobookChapterMediaMetadata {
|
||||
bookTitle?: string;
|
||||
chapterNumber?: number;
|
||||
chapterTitle?: string;
|
||||
images?: Image[];
|
||||
subtitle?: string;
|
||||
title?: string;
|
||||
type = MetadataType.AUDIOBOOK_CHAPTER;
|
||||
}
|
||||
|
||||
export class AudiobookContainerMetadata {
|
||||
authors?: string[];
|
||||
narrators?: string[];
|
||||
@@ -71,7 +61,7 @@ export class BreakStatus {
|
||||
export class ContainerMetadata {
|
||||
containerDuration?: number;
|
||||
containerImages?: Image[];
|
||||
sections?: MediaMetadata[];
|
||||
sections?: Metadata[];
|
||||
title?: string;
|
||||
|
||||
constructor(
|
||||
@@ -88,16 +78,6 @@ export class EditTracksInfoRequest {
|
||||
) {}
|
||||
}
|
||||
|
||||
export class GenericMediaMetadata {
|
||||
images?: Image[];
|
||||
metadataType = MetadataType.GENERIC;
|
||||
releaseDate?: string;
|
||||
releaseYear?: number;
|
||||
subtitle?: string;
|
||||
title?: string;
|
||||
type = MetadataType.GENERIC;
|
||||
}
|
||||
|
||||
export class GetStatusRequest {
|
||||
customData: unknown = null;
|
||||
}
|
||||
@@ -129,6 +109,7 @@ export class LoadRequest {
|
||||
}
|
||||
|
||||
export type Metadata =
|
||||
| AudiobookChapterMediaMetadata
|
||||
| GenericMediaMetadata
|
||||
| MovieMediaMetadata
|
||||
| MusicTrackMediaMetadata
|
||||
@@ -156,33 +137,60 @@ export class MediaInfo {
|
||||
constructor(public contentId: string, public contentType: string) {}
|
||||
}
|
||||
|
||||
export class MediaMetadata {
|
||||
export abstract class MediaMetadata<T extends MetadataType> {
|
||||
queueItemId?: number;
|
||||
sectionDuration?: number;
|
||||
sectionStartAbsoluteTime?: number;
|
||||
sectionStartTimeInContainer?: number;
|
||||
sectionStartTimeInMedia?: number;
|
||||
type: MetadataType;
|
||||
metadataType: MetadataType;
|
||||
type: T;
|
||||
metadataType: T;
|
||||
|
||||
constructor(type: MetadataType) {
|
||||
constructor(type: T) {
|
||||
this.type = type;
|
||||
this.metadataType = type;
|
||||
}
|
||||
}
|
||||
|
||||
export class MovieMediaMetadata {
|
||||
export class AudiobookChapterMediaMetadata extends MediaMetadata<MetadataType.AUDIOBOOK_CHAPTER> {
|
||||
bookTitle?: string;
|
||||
chapterNumber?: number;
|
||||
chapterTitle?: string;
|
||||
images?: Image[];
|
||||
subtitle?: string;
|
||||
title?: string;
|
||||
|
||||
constructor() {
|
||||
super(MetadataType.AUDIOBOOK_CHAPTER);
|
||||
}
|
||||
}
|
||||
|
||||
export class GenericMediaMetadata extends MediaMetadata<MetadataType.GENERIC> {
|
||||
images?: Image[];
|
||||
releaseDate?: string;
|
||||
releaseYear?: number;
|
||||
subtitle?: string;
|
||||
title?: string;
|
||||
|
||||
constructor() {
|
||||
super(MetadataType.GENERIC);
|
||||
}
|
||||
}
|
||||
|
||||
export class MovieMediaMetadata extends MediaMetadata<MetadataType.MOVIE> {
|
||||
images?: Image[];
|
||||
metadataType = MetadataType.MOVIE;
|
||||
releaseDate?: string;
|
||||
releaseYear?: number;
|
||||
studio?: string;
|
||||
subtitle?: string;
|
||||
title?: string;
|
||||
type = MetadataType.MOVIE;
|
||||
|
||||
constructor() {
|
||||
super(MetadataType.MOVIE);
|
||||
}
|
||||
}
|
||||
|
||||
export class MusicTrackMediaMetadata {
|
||||
export class MusicTrackMediaMetadata extends MediaMetadata<MetadataType.MUSIC_TRACK> {
|
||||
albumArtist?: string;
|
||||
albumName?: string;
|
||||
artist?: string;
|
||||
@@ -190,20 +198,18 @@ export class MusicTrackMediaMetadata {
|
||||
composer?: string;
|
||||
discNumber?: number;
|
||||
images?: Image[];
|
||||
metadataType = MetadataType.MUSIC_TRACK;
|
||||
releaseDate?: string;
|
||||
releaseYear?: number;
|
||||
songName?: string;
|
||||
title?: string;
|
||||
trackNumber?: number;
|
||||
type = MetadataType.MUSIC_TRACK;
|
||||
|
||||
constructor() {
|
||||
super(MetadataType.MUSIC_TRACK);
|
||||
}
|
||||
}
|
||||
|
||||
export class PauseRequest {
|
||||
customData: unknown = null;
|
||||
}
|
||||
|
||||
export class PhotoMediaMetadata {
|
||||
export class PhotoMediaMetadata extends MediaMetadata<MetadataType.PHOTO> {
|
||||
artist?: string;
|
||||
creationDateTime?: string;
|
||||
height?: number;
|
||||
@@ -211,10 +217,33 @@ export class PhotoMediaMetadata {
|
||||
latitude?: number;
|
||||
location?: string;
|
||||
longitude?: number;
|
||||
metadataType = MetadataType.PHOTO;
|
||||
title?: string;
|
||||
type = MetadataType.PHOTO;
|
||||
width?: number;
|
||||
|
||||
constructor() {
|
||||
super(MetadataType.PHOTO);
|
||||
}
|
||||
}
|
||||
|
||||
export class TvShowMediaMetadata extends MediaMetadata<MetadataType.TV_SHOW> {
|
||||
episode?: number;
|
||||
episodeNumber?: number;
|
||||
episodeTitle?: string;
|
||||
images?: Image[];
|
||||
originalAirdate?: string;
|
||||
releaseYear?: number;
|
||||
season?: number;
|
||||
seasonNumber?: number;
|
||||
seriesTitle?: string;
|
||||
title?: string;
|
||||
|
||||
constructor() {
|
||||
super(MetadataType.TV_SHOW);
|
||||
}
|
||||
}
|
||||
|
||||
export class PauseRequest {
|
||||
customData: unknown = null;
|
||||
}
|
||||
|
||||
export class PlayRequest {
|
||||
@@ -339,21 +368,6 @@ export class Track {
|
||||
constructor(public trackId: number, public type: TrackType) {}
|
||||
}
|
||||
|
||||
export class TvShowMediaMetadata {
|
||||
episode?: number;
|
||||
episodeNumber?: number;
|
||||
episodeTitle?: string;
|
||||
images?: Image[];
|
||||
metadataType: number = MetadataType.TV_SHOW;
|
||||
originalAirdate?: string;
|
||||
releaseYear?: number;
|
||||
season?: number;
|
||||
seasonNumber?: number;
|
||||
seriesTitle?: string;
|
||||
title?: string;
|
||||
type = MetadataType.TV_SHOW;
|
||||
}
|
||||
|
||||
export class UserActionState {
|
||||
customData: unknown = null;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user