Misc shim refactoring

This commit is contained in:
hensm
2021-04-29 05:07:42 +01:00
parent a70f02f9a7
commit 53427e1077
5 changed files with 320 additions and 323 deletions

1
ext/src/global.d.ts vendored
View File

@@ -3,6 +3,7 @@ declare const MIRRORING_APP_ID: string;
declare const APPLICATION_NAME: string; declare const APPLICATION_NAME: string;
declare const APPLICATION_VERSION: string; declare const APPLICATION_VERSION: string;
declare type Nullable<T> = T | null;
declare interface Object { declare interface Object {
// eslint-disable-next-line @typescript-eslint/ban-types // eslint-disable-next-line @typescript-eslint/ban-types

View File

@@ -143,12 +143,12 @@ export default class Session {
} }
}) })
public media: Media[]; media: Media[];
public namespaces: Array<{ name: string }>; namespaces: Array<{ name: string }>;
public senderApps: SenderApplication[]; senderApps: SenderApplication[];
public status: SessionStatus; status: SessionStatus;
public statusText: string | null; statusText: Nullable<string>;
public transportId: string; transportId: string;
constructor( constructor(
public sessionId: string public sessionId: string
@@ -182,11 +182,11 @@ export default class Session {
} }
public addMediaListener(_mediaListener: MediaListener) { addMediaListener(_mediaListener: MediaListener) {
logger.info("STUB :: Session#addMediaListener"); logger.info("STUB :: Session#addMediaListener");
} }
public addMessageListener( addMessageListener(
namespace: string namespace: string
, listener: MessageListener) { , listener: MessageListener) {
@@ -205,18 +205,18 @@ export default class Session {
}); });
} }
public addUpdateListener(listener: UpdateListener) { addUpdateListener(listener: UpdateListener) {
this.#updateListeners.add(listener); this.#updateListeners.add(listener);
} }
public leave( leave(
_successCallback?: SuccessCallback _successCallback?: SuccessCallback
, _errorCallback?: ErrorCallback): void { , _errorCallback?: ErrorCallback): void {
logger.info("STUB :: Session#leave"); logger.info("STUB :: Session#leave");
} }
public loadMedia( loadMedia(
loadRequest: LoadRequest loadRequest: LoadRequest
, successCallback?: LoadSuccessCallback , successCallback?: LoadSuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback): void {
@@ -274,7 +274,7 @@ export default class Session {
}); });
} }
public queueLoad( queueLoad(
_queueLoadRequest: QueueLoadRequest _queueLoadRequest: QueueLoadRequest
, _successCallback?: LoadSuccessCallback , _successCallback?: LoadSuccessCallback
, _errorCallback?: ErrorCallback): void { , _errorCallback?: ErrorCallback): void {
@@ -282,25 +282,25 @@ export default class Session {
logger.info("STUB :: Session#queueLoad"); logger.info("STUB :: Session#queueLoad");
} }
public removeMediaListener(_mediaListener: MediaListener): void { removeMediaListener(_mediaListener: MediaListener): void {
logger.info("STUB :: Session#removeMediaListener"); logger.info("STUB :: Session#removeMediaListener");
} }
public removeMessageListener( removeMessageListener(
namespace: string namespace: string
, listener: MessageListener): void { , listener: MessageListener): void {
this.#messageListeners.get(namespace)?.delete(listener); this.#messageListeners.get(namespace)?.delete(listener);
} }
public removeUpdateListener( removeUpdateListener(
_namespace: string _namespace: string
, listener: UpdateListener): void { , listener: UpdateListener): void {
this.#updateListeners.delete(listener); this.#updateListeners.delete(listener);
} }
public sendMessage( sendMessage(
namespace: string namespace: string
, message: {} | string , message: {} | string
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
@@ -324,7 +324,7 @@ export default class Session {
]); ]);
} }
public setReceiverMuted( setReceiverMuted(
muted: boolean muted: boolean
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback) { , errorCallback?: ErrorCallback) {
@@ -336,7 +336,7 @@ export default class Session {
.catch(errorCallback); .catch(errorCallback);
} }
public setReceiverVolumeLevel( setReceiverVolumeLevel(
newLevel: number newLevel: number
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback): void {
@@ -348,7 +348,7 @@ export default class Session {
.catch(errorCallback); .catch(errorCallback);
} }
public stop( stop(
successCallback?: SuccessCallback successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback): void {

View File

@@ -32,41 +32,41 @@ export class CredentialsData {
export class DialRequest { export class DialRequest {
constructor( constructor(
public appName: string public appName: string
, public launchParameter: (string | null) = null) {} , public launchParameter: Nullable<string> = null) {}
} }
export class Error { export class Error {
constructor( constructor(
public code: string public code: string
, public description: (string | null) = null , public description: Nullable<string> = null
, public details: any = null) {} , public details: any = null) {}
} }
export class Image { export class Image {
public width: (number | null) = null; width: Nullable<number> = null;
public height: (number | null) = null; height: Nullable<number> = null;
constructor(public url: string) {} constructor(public url: string) {}
} }
export class Receiver { export class Receiver {
public displayStatus: (ReceiverDisplayStatus | null) = null; displayStatus: Nullable<ReceiverDisplayStatus> = null;
public isActiveInput: (boolean | null) = null; isActiveInput: Nullable<boolean> = null;
public receiverType: string = ReceiverType.CAST; receiverType: string = ReceiverType.CAST;
constructor( constructor(
public label: string public label: string
, public friendlyName: string , public friendlyName: string
, public capabilities: Capability[] = [] , public capabilities: Capability[] = []
, public volume: (Volume | null) = null) {} , public volume: Nullable<Volume> = null) {}
} }
export class ReceiverDisplayStatus { export class ReceiverDisplayStatus {
public showStop: (boolean | null) = null; showStop: Nullable<boolean> = null;
constructor( constructor(
public statusText: string public statusText: string
@@ -75,15 +75,15 @@ export class ReceiverDisplayStatus {
export class SenderApplication { export class SenderApplication {
public packageId: (string | null) = null; packageId: Nullable<string> = null;
public url: (string | null) = null; url: Nullable<string> = null;
constructor(public platform: string) {} constructor(public platform: string) {}
} }
export class SessionRequest { export class SessionRequest {
public language: (string | null) = null; language: Nullable<string> = null;
constructor( constructor(
public appId: string public appId: string
@@ -91,24 +91,24 @@ export class SessionRequest {
, Capability.AUDIO_OUT ] , Capability.AUDIO_OUT ]
, public requestSessionTimeout = (new Timeout()).requestSession , public requestSessionTimeout = (new Timeout()).requestSession
, public androidReceiverCompatible = false , public androidReceiverCompatible = false
, public credentialsData: (CredentialsData | null) = null) {} , public credentialsData: Nullable<CredentialsData> = null) {}
} }
export class Timeout { export class Timeout {
public leaveSession = 3000; leaveSession = 3000;
public requestSession = 60000; requestSession = 60000;
public sendCustomMessage = 3000; sendCustomMessage = 3000;
public setReceiverVolume = 3000; setReceiverVolume = 3000;
public stopSession = 3000; stopSession = 3000;
} }
export class Volume { export class Volume {
public controlType?: VolumeControlType; controlType?: VolumeControlType;
public stepInterval?: number; stepInterval?: number;
constructor( constructor(
public level: (number | null) = null public level: Nullable<number> = null
, public muted: (boolean | null) = null) {} , public muted: Nullable<boolean> = null) {}
} }

View File

@@ -103,24 +103,24 @@ export default class Media {
} }
}); });
public activeTrackIds: (number[] | null) = null; activeTrackIds: Nullable<number[]> = null;
public breakStatus?: BreakStatus; breakStatus?: BreakStatus;
public currentItemId: (number | null) = null; currentItemId: Nullable<number> = null;
public customData: any = null; customData: any = null;
public currentTime = 0; currentTime = 0;
public idleReason: (string | null) = null; idleReason: Nullable<string> = null;
public items: (QueueItem[] | null) = null; items: Nullable<QueueItem[]> = null;
public liveSeekableRange?: LiveSeekableRange; liveSeekableRange?: LiveSeekableRange;
public loadingItemId: (number | null) = null; loadingItemId: Nullable<number> = null;
public media: (MediaInfo | null) = null; media: Nullable<MediaInfo> = null;
public playbackRate = 1; playbackRate = 1;
public playerState: string = PlayerState.IDLE; playerState: string = PlayerState.IDLE;
public preloadedItemId: (number | null) = null; preloadedItemId: Nullable<number> = null;
public queueData?: QueueData; queueData?: QueueData;
public repeatMode: string = RepeatMode.OFF; repeatMode: string = RepeatMode.OFF;
public supportedMediaCommands: string[] = []; supportedMediaCommands: string[] = [];
public videoInfo?: VideoInformation; videoInfo?: VideoInformation;
public volume: Volume = new Volume(); volume: Volume = new Volume();
constructor( constructor(
@@ -139,14 +139,14 @@ export default class Media {
}); });
} }
public addUpdateListener(listener: UpdateListener): void { addUpdateListener(listener: UpdateListener) {
this.#updateListeners.add(listener); this.#updateListeners.add(listener);
} }
public editTracksInfo( editTracksInfo(
editTracksInfoRequest: EditTracksInfoRequest editTracksInfoRequest: EditTracksInfoRequest
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
this.#sendMediaMessage( this.#sendMediaMessage(
{ type: "EDIT_TRACKS_INFO", ...editTracksInfoRequest }) { type: "EDIT_TRACKS_INFO", ...editTracksInfoRequest })
@@ -154,26 +154,32 @@ export default class Media {
.catch(errorCallback); .catch(errorCallback);
} }
public getEstimatedBreakClipTime() { getEstimatedBreakClipTime() {
logger.info("STUB :: Media#getEstimatedBreakClipTime"); logger.info("STUB :: Media#getEstimatedBreakClipTime");
} }
public getEstimatedBreakTime() { getEstimatedBreakTime() {
logger.info("STUB :: Media#getEstimatedBreakTime"); logger.info("STUB :: Media#getEstimatedBreakTime");
} }
public getEstimatedLiveSeekableRange() { getEstimatedLiveSeekableRange() {
logger.info("STUB :: Media#getEstimatedLiveSeekableRange"); logger.info("STUB :: Media#getEstimatedLiveSeekableRange");
} }
public getEstimatedTime(): number { /**
* Estimate the current playback position based on the last
* time reported by the receiver and the current playback
* rate.
*/
getEstimatedTime(): number {
if (this.playerState === PlayerState.PLAYING) { if (this.playerState === PlayerState.PLAYING) {
let estimatedTime = this.currentTime + (this.playbackRate * ( let estimatedTime = this.currentTime + (this.playbackRate * (
Date.now() - this.#lastCurrentTime) / 1000); Date.now() - this.#lastCurrentTime) / 1000);
// Enforce valid range // Enforce valid range
if (this.media?.duration && estimatedTime > this.media.duration) { if (estimatedTime < 0) {
estimatedTime = this.media.duration;
} else if (estimatedTime < 0) {
estimatedTime = 0; estimatedTime = 0;
} else if (this.media?.duration &&
estimatedTime > this.media.duration) {
estimatedTime = this.media.duration;
} }
return estimatedTime; return estimatedTime;
@@ -182,14 +188,14 @@ export default class Media {
return this.currentTime; return this.currentTime;
} }
public getStatus( /**
getStatusRequest?: GetStatusRequest * Request media status from the receiver application. This
* will also trigger any added media update listeners.
*/
getStatus(
getStatusRequest = new GetStatusRequest()
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
if (!getStatusRequest) {
getStatusRequest = new GetStatusRequest();
}
this.#sendMediaMessage( this.#sendMediaMessage(
{ type: "MEDIA_GET_STATUS", ...getStatusRequest }) { type: "MEDIA_GET_STATUS", ...getStatusRequest })
@@ -197,14 +203,10 @@ export default class Media {
.catch(errorCallback); .catch(errorCallback);
} }
public pause( pause(
pauseRequest?: PauseRequest pauseRequest = new PauseRequest()
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
if (!pauseRequest) {
pauseRequest = new PauseRequest();
}
this.#sendMediaMessage( this.#sendMediaMessage(
{ type: "PAUSE", ...pauseRequest }) { type: "PAUSE", ...pauseRequest })
@@ -212,14 +214,10 @@ export default class Media {
.catch(errorCallback); .catch(errorCallback);
} }
public play( play(
playRequest?: PlayRequest playRequest = new PlayRequest()
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
if (!playRequest) {
playRequest = new PlayRequest();
}
this.#sendMediaMessage( this.#sendMediaMessage(
{ type: "PLAY", ...playRequest }) { type: "PLAY", ...playRequest })
@@ -227,20 +225,20 @@ export default class Media {
.catch(errorCallback); .catch(errorCallback);
} }
public queueAppendItem( queueAppendItem(
item: QueueItem item: QueueItem
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
this.#sendMediaMessage(new QueueInsertItemsRequest([ item ])) this.#sendMediaMessage(new QueueInsertItemsRequest([ item ]))
.then(successCallback) .then(successCallback)
.catch(errorCallback); .catch(errorCallback);
} }
public queueInsertItems( queueInsertItems(
queueInsertItemsRequest: QueueInsertItemsRequest queueInsertItemsRequest: QueueInsertItemsRequest
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
this.#sendMediaMessage(queueInsertItemsRequest) this.#sendMediaMessage(queueInsertItemsRequest)
.then(successCallback) .then(successCallback)
@@ -248,10 +246,10 @@ export default class Media {
} }
public queueJumpToItem( queueJumpToItem(
itemId: number itemId: number
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
if (this.items?.find(item => item.itemId === itemId)) { if (this.items?.find(item => item.itemId === itemId)) {
const jumpRequest = new QueueJumpRequest(); const jumpRequest = new QueueJumpRequest();
@@ -263,12 +261,13 @@ export default class Media {
} }
} }
public queueMoveItemToNewIndex( queueMoveItemToNewIndex(
itemId: number itemId: number
, newIndex: number , newIndex: number
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
// Return early if not in queue
if (!this.items) { if (!this.items) {
return; return;
} }
@@ -302,9 +301,9 @@ export default class Media {
} }
} }
public queueNext( queueNext(
successCallback?: SuccessCallback successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
const jumpRequest = new QueueJumpRequest(); const jumpRequest = new QueueJumpRequest();
jumpRequest.jump = 1; jumpRequest.jump = 1;
@@ -314,9 +313,9 @@ export default class Media {
.catch(errorCallback); .catch(errorCallback);
} }
public queuePrev( queuePrev(
successCallback?: SuccessCallback successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
const jumpRequest = new QueueJumpRequest(); const jumpRequest = new QueueJumpRequest();
jumpRequest.jump = -1; jumpRequest.jump = -1;
@@ -326,46 +325,43 @@ export default class Media {
.catch(errorCallback); .catch(errorCallback);
} }
public queueRemoveItem( queueRemoveItem(
itemId: number itemId: number
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
const item = this.items?.find(item => item.itemId === itemId); const item = this.items?.find(item => item.itemId === itemId);
if (item) { if (item) {
const queueRemoveItemsRequest = this.queueRemoveItems(
new QueueRemoveItemsRequest([ itemId ]); new QueueRemoveItemsRequest([ itemId ])
, successCallback, errorCallback);
this.#sendMediaMessage(queueRemoveItemsRequest)
.then(successCallback)
.catch(errorCallback);
} }
} }
public queueRemoveItems( queueRemoveItems(
queueRemoveItemsRequest: QueueRemoveItemsRequest queueRemoveItemsRequest: QueueRemoveItemsRequest
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
this.#sendMediaMessage(queueRemoveItemsRequest) this.#sendMediaMessage(queueRemoveItemsRequest)
.then(successCallback) .then(successCallback)
.catch(errorCallback); .catch(errorCallback);
} }
public queueReorderItems( queueReorderItems(
queueReorderItemsRequest: QueueReorderItemsRequest queueReorderItemsRequest: QueueReorderItemsRequest
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
this.#sendMediaMessage(queueReorderItemsRequest) this.#sendMediaMessage(queueReorderItemsRequest)
.then(successCallback) .then(successCallback)
.catch(errorCallback); .catch(errorCallback);
} }
public queueSetRepeatMode( queueSetRepeatMode(
repeatMode: string repeatMode: string
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
const setPropertiesRequest = new QueueSetPropertiesRequest(); const setPropertiesRequest = new QueueSetPropertiesRequest();
setPropertiesRequest.repeatMode = repeatMode; setPropertiesRequest.repeatMode = repeatMode;
@@ -375,24 +371,24 @@ export default class Media {
.catch(errorCallback); .catch(errorCallback);
} }
public queueUpdateItems( queueUpdateItems(
queueUpdateItemsRequest: QueueUpdateItemsRequest queueUpdateItemsRequest: QueueUpdateItemsRequest
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
this.#sendMediaMessage(queueUpdateItemsRequest) this.#sendMediaMessage(queueUpdateItemsRequest)
.then(successCallback) .then(successCallback)
.catch(errorCallback); .catch(errorCallback);
} }
public removeUpdateListener(listener: UpdateListener) { removeUpdateListener(listener: UpdateListener) {
this.#updateListeners.delete(listener); this.#updateListeners.delete(listener);
} }
public seek( seek(
seekRequest: SeekRequest seekRequest: SeekRequest
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
this.#sendMediaMessage( this.#sendMediaMessage(
{ type: "SEEK", ...seekRequest }) { type: "SEEK", ...seekRequest })
@@ -400,10 +396,10 @@ export default class Media {
.catch(errorCallback); .catch(errorCallback);
} }
public setVolume( setVolume(
volumeRequest: VolumeRequest volumeRequest: VolumeRequest
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
this.#sendMediaMessage( this.#sendMediaMessage(
{ type: "MEDIA_SET_VOLUME", ...volumeRequest }) { type: "MEDIA_SET_VOLUME", ...volumeRequest })
@@ -411,10 +407,10 @@ export default class Media {
.catch(errorCallback); .catch(errorCallback);
} }
public stop( stop(
stopRequest?: StopRequest stopRequest?: StopRequest
, successCallback?: SuccessCallback , successCallback?: SuccessCallback
, errorCallback?: ErrorCallback): void { , errorCallback?: ErrorCallback) {
if (!stopRequest) { if (!stopRequest) {
stopRequest = new StopRequest(); stopRequest = new StopRequest();
@@ -433,7 +429,7 @@ export default class Media {
}).catch(errorCallback); }).catch(errorCallback);
} }
public supportsCommand(command: string): boolean { supportsCommand(command: string): boolean {
return this.supportedMediaCommands.includes(command); return this.supportedMediaCommands.includes(command);
} }

View File

@@ -13,28 +13,28 @@ import { ContainerType
export class AudiobookChapterMediaMetadata { export class AudiobookChapterMediaMetadata {
public bookTitle?: string; bookTitle?: string;
public chapterNumber?: number; chapterNumber?: number;
public chapterTitle?: string; chapterTitle?: string;
public images?: Image[]; images?: Image[];
public subtitle?: string; subtitle?: string;
public title?: string; title?: string;
public type = MetadataType.AUDIOBOOK_CHAPTER; type = MetadataType.AUDIOBOOK_CHAPTER;
} }
export class AudiobookContainerMetadata { export class AudiobookContainerMetadata {
public authors?: string[]; authors?: string[];
public narrators?: string[]; narrators?: string[];
public publisher?: string; publisher?: string;
public releaseDate?: string; releaseDate?: string;
} }
export class Break { export class Break {
public duration?: number; duration?: number;
public isEmbedded?: boolean; isEmbedded?: boolean;
public isWatched = false; isWatched = false;
constructor( constructor(
public id: string public id: string
@@ -44,36 +44,36 @@ export class Break {
export class BreakClip { export class BreakClip {
public clickThroughUrl?: string; clickThroughUrl?: string;
public contentId?: string; contentId?: string;
public contentType?: string; contentType?: string;
public contentUrl?: string; contentUrl?: string;
public customData?: {}; customData?: {};
public duration?: number; duration?: number;
public hlsSegmentFormat?: HlsSegmentFormat; hlsSegmentFormat?: HlsSegmentFormat;
public posterUrl?: string; posterUrl?: string;
public title?: string; title?: string;
public vastAdsRequest?: VastAdsRequest; vastAdsRequest?: VastAdsRequest;
public whenSkippable?: number; whenSkippable?: number;
constructor(public id: string) {} constructor(public id: string) {}
} }
export class BreakStatus { export class BreakStatus {
public breakClipId?: string; breakClipId?: string;
public breakId?: string; breakId?: string;
public currentBreakClipTime?: number; currentBreakClipTime?: number;
public currentBreakTime?: number; currentBreakTime?: number;
public whenSkippable?: number; whenSkippable?: number;
} }
export class ContainerMetadata { export class ContainerMetadata {
public containerDuration?: number; containerDuration?: number;
public containerImages?: Image[]; containerImages?: Image[];
public sections?: MediaMetadata[]; sections?: MediaMetadata[];
public title?: string; title?: string;
constructor( constructor(
public containerType: ContainerType = public containerType: ContainerType =
@@ -82,28 +82,28 @@ export class ContainerMetadata {
export class EditTracksInfoRequest { export class EditTracksInfoRequest {
public requestId = 0; requestId = 0;
constructor( constructor(
public activeTrackIds: (number[] | null) = null public activeTrackIds: Nullable<number[]> = null
, public textTrackStyle: (string | null) = null) { , public textTrackStyle: Nullable<string> = null) {
} }
} }
export class GenericMediaMetadata { export class GenericMediaMetadata {
public images: (Image[] | undefined) = undefined; images?: Image[];
public metadataType: number = MetadataType.GENERIC; metadataType: number = MetadataType.GENERIC;
public releaseDate: (string | undefined) = undefined; releaseDate?: string;
public releaseYear: (number | undefined) = undefined; releaseYear?: number;
public subtitle: (string | undefined) = undefined; subtitle?: string;
public title: (string | undefined) = undefined; title?: string;
public type: number = MetadataType.GENERIC; type: number = MetadataType.GENERIC;
} }
export class GetStatusRequest { export class GetStatusRequest {
public customData: any = null; customData: any = null;
} }
@@ -117,16 +117,16 @@ export class LiveSeekableRange {
export class LoadRequest { export class LoadRequest {
public activeTrackIds: (number[] | null) = null; activeTrackIds: Nullable<number[]> = null;
public atvCredentials?: string; atvCredentials?: string;
public atvCredentialsType?: string; atvCredentialsType?: string;
public autoplay: (boolean | null) = true; autoplay: Nullable<boolean> = true;
public currentTime: (number | null) = null; currentTime: Nullable<number> = null;
public customData: any = null; customData: any = null;
public media: MediaInfo; media: MediaInfo;
public requestId = 0; requestId = 0;
public sessionId: (string | null) = null; sessionId: Nullable<string> = null;
public type = "LOAD"; type = "LOAD";
constructor(mediaInfo: MediaInfo) { constructor(mediaInfo: MediaInfo) {
this.media = mediaInfo; this.media = mediaInfo;
@@ -142,22 +142,22 @@ type Metadata =
| TvShowMediaMetadata; | TvShowMediaMetadata;
export class MediaInfo { export class MediaInfo {
public atvEntity?: string; atvEntity?: string;
public breakClips?: BreakClip[]; breakClips?: BreakClip[];
public breaks?: Break[]; breaks?: Break[];
public customData: any = null; customData: any = null;
public contentUrl?: string; contentUrl?: string;
public duration: (number | null) = null; duration: Nullable<number> = null;
public entity?: string; entity?: string;
public hlsSegmentFormat?: HlsSegmentFormat; hlsSegmentFormat?: HlsSegmentFormat;
public hlsVideoSegmentFormat?: HlsVideoSegmentFormat; hlsVideoSegmentFormat?: HlsVideoSegmentFormat;
public metadata: (Metadata | null) = null; metadata: Nullable<Metadata> = null;
public startAbsoluteTime?: number; startAbsoluteTime?: number;
public streamType: string = StreamType.BUFFERED; streamType: string = StreamType.BUFFERED;
public textTrackStyle: (TextTrackStyle | null) = null; textTrackStyle: Nullable<TextTrackStyle> = null;
public tracks: (Track[] | null) = null; tracks: Nullable<Track[]> = null;
public userActionStates?: UserActionState[]; userActionStates?: UserActionState[];
public vmapAdsRequest?: VastAdsRequest; vmapAdsRequest?: VastAdsRequest;
constructor( constructor(
public contentId: string public contentId: string
@@ -166,13 +166,13 @@ export class MediaInfo {
export class MediaMetadata { export class MediaMetadata {
public queueItemId?: number; queueItemId?: number;
public sectionDuration?: number; sectionDuration?: number;
public sectionStartAbsoluteTime?: number; sectionStartAbsoluteTime?: number;
public sectionStartTimeInContainer?: number; sectionStartTimeInContainer?: number;
public sectionStartTimeInMedia?: number; sectionStartTimeInMedia?: number;
public type: MetadataType; type: MetadataType;
public metadataType: MetadataType; metadataType: MetadataType;
constructor(type: MetadataType) { constructor(type: MetadataType) {
this.type = type; this.type = type;
@@ -182,62 +182,62 @@ export class MediaMetadata {
export class MovieMediaMetadata { export class MovieMediaMetadata {
public images: (Image[] | undefined) = undefined; images?: Image[];
public metadataType: number = MetadataType.MOVIE; metadataType: number = MetadataType.MOVIE;
public releaseDate: (string | undefined) = undefined; releaseDate?: string;
public releaseYear: (number | undefined) = undefined; releaseYear?: number;
public studio: (string | undefined) = undefined; studio?: string;
public subtitle: (string | undefined) = undefined; subtitle?: string;
public title: (string | undefined) = undefined; title?: string;
public type: number = MetadataType.MOVIE; type: number = MetadataType.MOVIE;
} }
export class MusicTrackMediaMetadata { export class MusicTrackMediaMetadata {
public albumArtist: (string | undefined) = undefined; albumArtist?: string;
public albumName: (string | undefined) = undefined; albumName?: string;
public artist: (string | undefined) = undefined; artist?: string;
public artistName: (string | undefined) = undefined; artistName?: string;
public composer: (string | undefined) = undefined; composer?: string;
public discNumber: (number | undefined) = undefined; discNumber?: number;
public images: (Image[] | undefined) = undefined; images?: Image[];
public metadataType: number = MetadataType.MUSIC_TRACK; metadataType: number = MetadataType.MUSIC_TRACK;
public releaseDate: (string | undefined) = undefined; releaseDate?: string;
public releaseYear: (number | undefined) = undefined; releaseYear?: number;
public songName: (string | undefined) = undefined; songName?: string;
public title: (string | undefined) = undefined; title?: string;
public trackNumber: (number | undefined) = undefined; trackNumber?: number;
public type: number = MetadataType.MUSIC_TRACK; type: number = MetadataType.MUSIC_TRACK;
} }
export class PauseRequest { export class PauseRequest {
public customData: any = null; customData: any = null;
} }
export class PhotoMediaMetadata { export class PhotoMediaMetadata {
public artist: (string | undefined) = undefined; artist?: string;
public creationDateTime: (string | undefined) = undefined; creationDateTime?: string;
public height: (number | undefined) = undefined; height?: number;
public images: (Image[] | undefined) = undefined; images?: Image[];
public latitude: (number | undefined) = undefined; latitude?: number;
public location: (string | undefined) = undefined; location?: string;
public longitude: (number | undefined) = undefined; longitude?: number;
public metadataType: number = MetadataType.PHOTO; metadataType: number = MetadataType.PHOTO;
public title: (string | undefined) = undefined; title?: string;
public type: number = MetadataType.PHOTO; type: number = MetadataType.PHOTO;
public width: (number | undefined) = undefined; width?: number;
} }
export class PlayRequest { export class PlayRequest {
public customData: any = null; customData: any = null;
} }
export class QueueData { export class QueueData {
public shuffle = false; shuffle = false;
constructor( constructor(
public id?: string public id?: string
@@ -251,11 +251,11 @@ export class QueueData {
export class QueueInsertItemsRequest { export class QueueInsertItemsRequest {
public customData: any = null; customData: any = null;
public insertBefore: (number | null) = null; insertBefore: Nullable<number> = null;
public requestId: (number | null) = null; requestId: Nullable<number> = null;
public sessionId: (string | null) = null; sessionId: Nullable<string> = null;
public type = "QUEUE_INSERT"; type = "QUEUE_INSERT";
constructor( constructor(
public items: QueueItem[]) {} public items: QueueItem[]) {}
@@ -263,14 +263,14 @@ export class QueueInsertItemsRequest {
export class QueueItem { export class QueueItem {
public activeTrackIds: (number[] | null) = null; activeTrackIds: Nullable<number[]> = null;
public autoplay = true; autoplay = true;
public customData: any = null; customData: any = null;
public itemId: (number | null) = null; itemId: Nullable<number> = null;
public media: MediaInfo; media: MediaInfo;
public playbackDuration: (number | null) = null; playbackDuration: Nullable<number> = null;
public preloadTime = 0; preloadTime = 0;
public startTime = 0; startTime = 0;
constructor(mediaInfo: MediaInfo) { constructor(mediaInfo: MediaInfo) {
this.media = mediaInfo; this.media = mediaInfo;
@@ -279,22 +279,22 @@ export class QueueItem {
export class QueueJumpRequest { export class QueueJumpRequest {
public jump: (number | null) = null; jump: Nullable<number> = null;
public currentItemId: (number | null) = null; currentItemId: Nullable<number> = null;
public sessionId: (number | null) = null; sessionId: Nullable<number> = null;
public requestId: (number | null) = null; requestId: Nullable<number> = null;
public type = "QUEUE_UPDATE"; type = "QUEUE_UPDATE";
} }
export class QueueLoadRequest { export class QueueLoadRequest {
public customData: any = null; customData: any = null;
public repeatMode: string = RepeatMode.OFF; repeatMode: string = RepeatMode.OFF;
public requestId: (number | null) = null; requestId: Nullable<number> = null;
public sessionId: (string | null) = null; sessionId: Nullable<string> = null;
public startIndex = 0; startIndex = 0;
public type = "QUEUE_LOAD"; type = "QUEUE_LOAD";
constructor( constructor(
public items: QueueItem[]) {} public items: QueueItem[]) {}
@@ -302,10 +302,10 @@ export class QueueLoadRequest {
export class QueueRemoveItemsRequest { export class QueueRemoveItemsRequest {
public customData: any = null; customData: any = null;
public requestId: (number | null) = null; requestId: Nullable<number> = null;
public sessionId: (string | null) = null; sessionId: Nullable<string> = null;
public type = "QUEUE_REMOVE"; type = "QUEUE_REMOVE";
constructor( constructor(
public itemIds: number[]) {} public itemIds: number[]) {}
@@ -313,11 +313,11 @@ export class QueueRemoveItemsRequest {
export class QueueReorderItemsRequest { export class QueueReorderItemsRequest {
public customData: any = null; customData: any = null;
public insertBefore: (number | null) = null; insertBefore: Nullable<number> = null;
public requestId: (number | null) = null; requestId: Nullable<number> = null;
public sessionId: (string | null) = null; sessionId: Nullable<string> = null;
public type = "QUEUE_REORDER"; type = "QUEUE_REORDER";
constructor( constructor(
public itemIds: number[]) {} public itemIds: number[]) {}
@@ -325,19 +325,19 @@ export class QueueReorderItemsRequest {
export class QueueSetPropertiesRequest { export class QueueSetPropertiesRequest {
public customData: any = null; customData: any = null;
public repeatMode: (string | null) = null; repeatMode: Nullable<string> = null;
public requestId: (number | null) = null; requestId: Nullable<number> = null;
public sessionId: (string | null) = null; sessionId: Nullable<string> = null;
public type = "QUEUE_UPDATE"; type = "QUEUE_UPDATE";
} }
export class QueueUpdateItemsRequest { export class QueueUpdateItemsRequest {
public customData: any = null; customData: any = null;
public requestId: (number | null) = null; requestId: Nullable<number> = null;
public sessionId: (string | null) = null; sessionId: Nullable<string> = null;
public type = "QUEUE_UPDATE"; type = "QUEUE_UPDATE";
constructor( constructor(
public items: QueueItem[]) {} public items: QueueItem[]) {}
@@ -345,40 +345,40 @@ export class QueueUpdateItemsRequest {
export class SeekRequest { export class SeekRequest {
public currentTime: (number | null) = null; currentTime: Nullable<number> = null;
public customData: any = null; customData: any = null;
public resumeState: (string | null) = null; resumeState: Nullable<string> = null;
} }
export class StopRequest { export class StopRequest {
public customData: any = null; customData: any = null;
} }
export class TextTrackStyle { export class TextTrackStyle {
public backgroundColor: (string | null) = null; backgroundColor: Nullable<string> = null;
public customData: any = null; customData: any = null;
public edgeColor: (string | null) = null; edgeColor: Nullable<string> = null;
public edgeType: (string | null) = null; edgeType: Nullable<string> = null;
public fontFamily: (string | null) = null; fontFamily: Nullable<string> = null;
public fontGenericFamily: (string | null) = null; fontGenericFamily: Nullable<string> = null;
public fontScale: (number | null) = null; fontScale: Nullable<number> = null;
public fontStyle: (string | null) = null; fontStyle: Nullable<string> = null;
public foregroundColor: (string | null) = null; foregroundColor: Nullable<string> = null;
public windowColor: (string | null) = null; windowColor: Nullable<string> = null;
public windowRoundedCornerRadius: (number | null) = null; windowRoundedCornerRadius: Nullable<number> = null;
public windowType: (string | null) = null; windowType: Nullable<string> = null;
} }
export class Track { export class Track {
public customData: any = null; customData: any = null;
public language: (string | null) = null; language: Nullable<string> = null;
public name: (string | null) = null; name: Nullable<string> = null;
public subtype: (string | null) = null; subtype: Nullable<string> = null;
public trackContentId: (string | null) = null; trackContentId: Nullable<string> = null;
public trackContentType: (string | null) = null; trackContentType: Nullable<string> = null;
constructor( constructor(
public trackId: number public trackId: number
@@ -387,23 +387,23 @@ export class Track {
export class TvShowMediaMetadata { export class TvShowMediaMetadata {
public episode: (number | undefined) = undefined; episode?: number;
public episodeNumber: (number | undefined) = undefined; episodeNumber?: number;
public episodeTitle: (string | undefined) = undefined; episodeTitle?: string;
public images: (Image[] | undefined) = undefined; images?: Image[];
public metadataType: number = MetadataType.TV_SHOW; metadataType: number = MetadataType.TV_SHOW;
public originalAirdate: (string | undefined) = undefined; originalAirdate?: string;
public releaseYear: (number | undefined) = undefined; releaseYear?: number;
public season: (number | undefined) = undefined; season?: number;
public seasonNumber: (number | undefined) = undefined; seasonNumber?: number;
public seriesTitle: (string | undefined) = undefined; seriesTitle?: string;
public title: (string | undefined) = undefined; title?: string;
public type: number = MetadataType.TV_SHOW; type: number = MetadataType.TV_SHOW;
} }
export class UserActionState { export class UserActionState {
public customData: any = null; customData: any = null;
constructor( constructor(
public userAction: UserAction) {} public userAction: UserAction) {}
@@ -411,8 +411,8 @@ export class UserActionState {
export class VastAdsRequest { export class VastAdsRequest {
public adsResponse?: string; adsResponse?: string;
public adTagUrl?: string; adTagUrl?: string;
} }
@@ -425,7 +425,7 @@ export class VideoInformation {
export class VolumeRequest { export class VolumeRequest {
public customData: any = null; customData: any = null;
constructor( constructor(
public volume: Volume) {} public volume: Volume) {}