From dcd6caf1b2d1dad57a1916894aad9eb646008ee1 Mon Sep 17 00:00:00 2001 From: hensm Date: Tue, 27 Apr 2021 07:30:39 +0100 Subject: [PATCH] Reorganize shim files --- ext/src/messaging.ts | 2 +- ext/src/senders/media/index.ts | 3 +- ext/src/shim/cast/{classes => }/Session.ts | 32 +- ext/src/shim/cast/classes/ApiConfig.ts | 20 - ext/src/shim/cast/classes/CredentialsData.ts | 9 - ext/src/shim/cast/classes/DialRequest.ts | 9 - ext/src/shim/cast/classes/Error.ts | 10 - ext/src/shim/cast/classes/Image.ts | 9 - ext/src/shim/cast/classes/Receiver.ts | 21 - .../cast/classes/ReceiverDisplayStatus.ts | 13 - .../shim/cast/classes/SenderApplication.ts | 9 - ext/src/shim/cast/classes/SessionRequest.ts | 20 - ext/src/shim/cast/classes/Timeout.ts | 10 - ext/src/shim/cast/classes/Volume.ts | 15 - ext/src/shim/cast/dataClasses.ts | 114 +++++ ext/src/shim/cast/index.ts | 72 +-- .../shim/cast/media/{classes => }/Media.ts | 62 +-- .../classes/AudiobookChapterMediaMetadata.ts | 16 - .../classes/AudiobookContainerMetadata.ts | 8 - ext/src/shim/cast/media/classes/Break.ts | 11 - ext/src/shim/cast/media/classes/BreakClip.ts | 22 - .../shim/cast/media/classes/BreakStatus.ts | 9 - .../cast/media/classes/ContainerMetadata.ts | 17 - .../media/classes/EditTracksInfoRequest.ts | 10 - .../media/classes/GenericMediaMetadata.ts | 16 - .../cast/media/classes/GetStatusRequest.ts | 5 - .../cast/media/classes/LiveSeekableRange.ts | 9 - .../shim/cast/media/classes/LoadRequest.ts | 21 - ext/src/shim/cast/media/classes/MediaInfo.ts | 48 -- .../shim/cast/media/classes/MediaMetadata.ts | 19 - .../cast/media/classes/MovieMediaMetadata.ts | 17 - .../media/classes/MusicTrackMediaMetadata.ts | 23 - .../shim/cast/media/classes/PauseRequest.ts | 5 - .../cast/media/classes/PhotoMediaMetadata.ts | 20 - .../shim/cast/media/classes/PlayRequest.ts | 5 - ext/src/shim/cast/media/classes/QueueData.ts | 18 - .../media/classes/QueueInsertItemsRequest.ts | 15 - ext/src/shim/cast/media/classes/QueueItem.ts | 19 - .../cast/media/classes/QueueJumpRequest.ts | 15 - .../cast/media/classes/QueueLoadRequest.ts | 18 - .../media/classes/QueueRemoveItemsRequest.ts | 11 - .../media/classes/QueueReorderItemsRequest.ts | 12 - .../classes/QueueSetPropertiesRequest.ts | 9 - .../media/classes/QueueUpdateItemsRequest.ts | 14 - .../shim/cast/media/classes/SeekRequest.ts | 7 - .../shim/cast/media/classes/StopRequest.ts | 5 - .../shim/cast/media/classes/TextTrackStyle.ts | 16 - ext/src/shim/cast/media/classes/Track.ts | 14 - .../cast/media/classes/TvShowMediaMetadata.ts | 21 - .../cast/media/classes/UserActionState.ts | 11 - .../shim/cast/media/classes/VastAdsRequest.ts | 6 - .../cast/media/classes/VideoInformation.ts | 11 - .../shim/cast/media/classes/VolumeRequest.ts | 11 - ext/src/shim/cast/media/dataClasses.ts | 432 ++++++++++++++++++ ext/src/shim/cast/media/index.ts | 78 +--- ext/src/shim/types.ts | 7 +- 56 files changed, 639 insertions(+), 822 deletions(-) rename ext/src/shim/cast/{classes => }/Session.ts (95%) mode change 100755 => 100644 delete mode 100755 ext/src/shim/cast/classes/ApiConfig.ts delete mode 100644 ext/src/shim/cast/classes/CredentialsData.ts delete mode 100755 ext/src/shim/cast/classes/DialRequest.ts delete mode 100755 ext/src/shim/cast/classes/Error.ts delete mode 100755 ext/src/shim/cast/classes/Image.ts delete mode 100755 ext/src/shim/cast/classes/Receiver.ts delete mode 100755 ext/src/shim/cast/classes/ReceiverDisplayStatus.ts delete mode 100755 ext/src/shim/cast/classes/SenderApplication.ts delete mode 100755 ext/src/shim/cast/classes/SessionRequest.ts delete mode 100755 ext/src/shim/cast/classes/Timeout.ts delete mode 100755 ext/src/shim/cast/classes/Volume.ts create mode 100644 ext/src/shim/cast/dataClasses.ts rename ext/src/shim/cast/media/{classes => }/Media.ts (91%) delete mode 100644 ext/src/shim/cast/media/classes/AudiobookChapterMediaMetadata.ts delete mode 100644 ext/src/shim/cast/media/classes/AudiobookContainerMetadata.ts delete mode 100644 ext/src/shim/cast/media/classes/Break.ts delete mode 100644 ext/src/shim/cast/media/classes/BreakClip.ts delete mode 100644 ext/src/shim/cast/media/classes/BreakStatus.ts delete mode 100644 ext/src/shim/cast/media/classes/ContainerMetadata.ts delete mode 100644 ext/src/shim/cast/media/classes/EditTracksInfoRequest.ts delete mode 100644 ext/src/shim/cast/media/classes/GenericMediaMetadata.ts delete mode 100644 ext/src/shim/cast/media/classes/GetStatusRequest.ts delete mode 100644 ext/src/shim/cast/media/classes/LiveSeekableRange.ts delete mode 100644 ext/src/shim/cast/media/classes/LoadRequest.ts delete mode 100644 ext/src/shim/cast/media/classes/MediaInfo.ts delete mode 100644 ext/src/shim/cast/media/classes/MediaMetadata.ts delete mode 100644 ext/src/shim/cast/media/classes/MovieMediaMetadata.ts delete mode 100644 ext/src/shim/cast/media/classes/MusicTrackMediaMetadata.ts delete mode 100644 ext/src/shim/cast/media/classes/PauseRequest.ts delete mode 100644 ext/src/shim/cast/media/classes/PhotoMediaMetadata.ts delete mode 100644 ext/src/shim/cast/media/classes/PlayRequest.ts delete mode 100644 ext/src/shim/cast/media/classes/QueueData.ts delete mode 100644 ext/src/shim/cast/media/classes/QueueInsertItemsRequest.ts delete mode 100644 ext/src/shim/cast/media/classes/QueueItem.ts delete mode 100644 ext/src/shim/cast/media/classes/QueueJumpRequest.ts delete mode 100644 ext/src/shim/cast/media/classes/QueueLoadRequest.ts delete mode 100644 ext/src/shim/cast/media/classes/QueueRemoveItemsRequest.ts delete mode 100644 ext/src/shim/cast/media/classes/QueueReorderItemsRequest.ts delete mode 100644 ext/src/shim/cast/media/classes/QueueSetPropertiesRequest.ts delete mode 100644 ext/src/shim/cast/media/classes/QueueUpdateItemsRequest.ts delete mode 100644 ext/src/shim/cast/media/classes/SeekRequest.ts delete mode 100644 ext/src/shim/cast/media/classes/StopRequest.ts delete mode 100644 ext/src/shim/cast/media/classes/TextTrackStyle.ts delete mode 100644 ext/src/shim/cast/media/classes/Track.ts delete mode 100644 ext/src/shim/cast/media/classes/TvShowMediaMetadata.ts delete mode 100644 ext/src/shim/cast/media/classes/UserActionState.ts delete mode 100644 ext/src/shim/cast/media/classes/VastAdsRequest.ts delete mode 100644 ext/src/shim/cast/media/classes/VideoInformation.ts delete mode 100644 ext/src/shim/cast/media/classes/VolumeRequest.ts create mode 100644 ext/src/shim/cast/media/dataClasses.ts diff --git a/ext/src/messaging.ts b/ext/src/messaging.ts index 33a7c4e..d3f88fe 100644 --- a/ext/src/messaging.ts +++ b/ext/src/messaging.ts @@ -9,7 +9,7 @@ import { ReceiverSelectorMediaType } from "./background/receiverSelector"; import { ReceiverSelection, ReceiverSelectionCast, ReceiverSelectionStop } from "./background/receiverSelector/ReceiverSelector"; -import Volume from "./shim/cast/classes/Volume"; +import { Volume } from "./shim/cast/dataClasses"; import { MediaInfo } from "./shim/cast/media"; diff --git a/ext/src/senders/media/index.ts b/ext/src/senders/media/index.ts index 8bb2adf..d480e20 100644 --- a/ext/src/senders/media/index.ts +++ b/ext/src/senders/media/index.ts @@ -270,9 +270,10 @@ async function registerMediaElementListeners() { }); mediaElement.addEventListener("ratechange", () => { + // TODO: Fix types currentMedia._sendMediaMessage("SET_PLAYBACK_RATE", { playbackRate: mediaElement.playbackRate - }); + } as any); }); mediaElement.addEventListener("volumechange", () => { diff --git a/ext/src/shim/cast/classes/Session.ts b/ext/src/shim/cast/Session.ts old mode 100755 new mode 100644 similarity index 95% rename from ext/src/shim/cast/classes/Session.ts rename to ext/src/shim/cast/Session.ts index 20e46b0..3926446 --- a/ext/src/shim/cast/classes/Session.ts +++ b/ext/src/shim/cast/Session.ts @@ -2,26 +2,11 @@ import { v4 as uuid } from "uuid"; -import logger from "../../../lib/logger"; - -import _Error from "./Error"; -import Image from "./Image"; -import Receiver from "./Receiver"; -import SenderApplication from "./SenderApplication"; -import Volume from "./Volume"; - -import LoadRequest from "../media/classes/LoadRequest"; -import Media from "../media/classes/Media"; -import QueueLoadRequest from "../media/classes/QueueLoadRequest"; - -import { ErrorCode - , SessionStatus } from "../enums"; - -import { RepeatMode } from "../media/enums"; +import logger from "../../lib/logger"; import { ListenerObject , onMessage - , sendMessageResponse } from "../../eventMessageChannel"; + , sendMessageResponse } from "../eventMessageChannel"; import { Callbacks , ErrorCallback @@ -29,7 +14,18 @@ import { Callbacks , MediaListener , MessageListener , SuccessCallback - , UpdateListener } from "../../types"; + , UpdateListener } from "../types"; + +import { Error as _Error + , Image, Receiver + , SenderApplication, Volume } from "./dataClasses"; +import { ErrorCode, SessionStatus } from "./enums"; + +import { Media + , LoadRequest + , QueueLoadRequest + // Enums + , RepeatMode } from "./media"; type SessionSuccessCallback = (session: Session) => void; diff --git a/ext/src/shim/cast/classes/ApiConfig.ts b/ext/src/shim/cast/classes/ApiConfig.ts deleted file mode 100755 index 8d4d1ba..0000000 --- a/ext/src/shim/cast/classes/ApiConfig.ts +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; - -import Session from "./Session"; -import SessionRequest from "./SessionRequest"; - -import { AutoJoinPolicy - , DefaultActionPolicy } from "../enums"; - - -export default class ApiConfig { - constructor( - public sessionRequest: SessionRequest - , public sessionListener: (session: Session) => void - , public receiverListener: (availability: string) => void - - , public autoJoinPolicy: string - = AutoJoinPolicy.TAB_AND_ORIGIN_SCOPED - , public defaultActionPolicy: string - = DefaultActionPolicy.CREATE_SESSION) {} -} diff --git a/ext/src/shim/cast/classes/CredentialsData.ts b/ext/src/shim/cast/classes/CredentialsData.ts deleted file mode 100644 index 16decbb..0000000 --- a/ext/src/shim/cast/classes/CredentialsData.ts +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -// https://developers.google.com/cast/docs/reference/chrome/chrome.cast.CredentialsData -export default class DialRequest { - constructor( - public credentials: string - , public credentialsData: string) { - } -} diff --git a/ext/src/shim/cast/classes/DialRequest.ts b/ext/src/shim/cast/classes/DialRequest.ts deleted file mode 100755 index bc31a7a..0000000 --- a/ext/src/shim/cast/classes/DialRequest.ts +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -// https://developers.google.com/cast/docs/reference/chrome/chrome.cast.DialRequest -export default class DialRequest { - constructor( - public appName: string - , public launchParameter: (string | null) = null) { - } -} diff --git a/ext/src/shim/cast/classes/Error.ts b/ext/src/shim/cast/classes/Error.ts deleted file mode 100755 index 685c22f..0000000 --- a/ext/src/shim/cast/classes/Error.ts +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; - -// https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Error -export default class Error { - constructor( - public code: string - , public description: (string | null) = null - , public details: any = null) { - } -} diff --git a/ext/src/shim/cast/classes/Image.ts b/ext/src/shim/cast/classes/Image.ts deleted file mode 100755 index 453c21c..0000000 --- a/ext/src/shim/cast/classes/Image.ts +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -// https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Image -export default class Image { - public width: (number | null) = null; - public height: (number | null) = null; - - constructor(public url: string) {} -} diff --git a/ext/src/shim/cast/classes/Receiver.ts b/ext/src/shim/cast/classes/Receiver.ts deleted file mode 100755 index 13e95cf..0000000 --- a/ext/src/shim/cast/classes/Receiver.ts +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; - -import ReceiverDisplayStatus from "./ReceiverDisplayStatus"; -import Volume from "./Volume"; - -import { Capability, ReceiverType } from "../enums"; - - -// https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Receiver -export default class Receiver { - public displayStatus: (ReceiverDisplayStatus | null) = null; - public isActiveInput: (boolean | null) = null; - public receiverType: string = ReceiverType.CAST; - - constructor( - public label: string - , public friendlyName: string - , public capabilities: Capability[] = [] - , public volume: (Volume | null) = null) { - } -} diff --git a/ext/src/shim/cast/classes/ReceiverDisplayStatus.ts b/ext/src/shim/cast/classes/ReceiverDisplayStatus.ts deleted file mode 100755 index 8eaeda7..0000000 --- a/ext/src/shim/cast/classes/ReceiverDisplayStatus.ts +++ /dev/null @@ -1,13 +0,0 @@ -"use strict"; - -import Image from "./Image"; - - -// https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ReceiverDisplayStatus -export default class ReceiverDisplayStatus { - public showStop: (boolean | null) = null; - - constructor( - public statusText: string - , public appImages: Image[]) {} -} diff --git a/ext/src/shim/cast/classes/SenderApplication.ts b/ext/src/shim/cast/classes/SenderApplication.ts deleted file mode 100755 index 8bac395..0000000 --- a/ext/src/shim/cast/classes/SenderApplication.ts +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -// https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SenderApplication -export default class SenderApplication { - public packageId: (string | null) = null; - public url: (string | null) = null; - - constructor(public platform: string) {} -} diff --git a/ext/src/shim/cast/classes/SessionRequest.ts b/ext/src/shim/cast/classes/SessionRequest.ts deleted file mode 100755 index c36a381..0000000 --- a/ext/src/shim/cast/classes/SessionRequest.ts +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; - -import CredentialsData from "./CredentialsData"; -import Timeout from "./Timeout"; - -import { Capability } from "../enums"; - - -// https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SessionRequest -export default class SessionRequest { - public language: (string | null) = null; - - constructor( - public appId: string - , public capabilities = [ Capability.VIDEO_OUT - , Capability.AUDIO_OUT ] - , public requestSessionTimeout = (new Timeout()).requestSession - , public androidReceiverCompatible = false - , public credentialsData: (CredentialsData | null) = null) {} -} diff --git a/ext/src/shim/cast/classes/Timeout.ts b/ext/src/shim/cast/classes/Timeout.ts deleted file mode 100755 index 0276daf..0000000 --- a/ext/src/shim/cast/classes/Timeout.ts +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; - -// https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Timeout -export default class Timeout { - public leaveSession = 3000; - public requestSession = 60000; - public sendCustomMessage = 3000; - public setReceiverVolume = 3000; - public stopSession = 3000; -} diff --git a/ext/src/shim/cast/classes/Volume.ts b/ext/src/shim/cast/classes/Volume.ts deleted file mode 100755 index e81376f..0000000 --- a/ext/src/shim/cast/classes/Volume.ts +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -import { VolumeControlType } from "../enums"; - - -// https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Volume -export default class Volume { - public controlType?: VolumeControlType; - public stepInterval?: number; - - constructor( - public level: (number | null) = null - , public muted: (boolean | null) = null) { - } -} diff --git a/ext/src/shim/cast/dataClasses.ts b/ext/src/shim/cast/dataClasses.ts new file mode 100644 index 0000000..e2c9cee --- /dev/null +++ b/ext/src/shim/cast/dataClasses.ts @@ -0,0 +1,114 @@ +"use strict"; + +import Session from "./Session"; + +import { AutoJoinPolicy + , Capability + , DefaultActionPolicy + , ReceiverType + , VolumeControlType } from "./enums"; + + +export class ApiConfig { + constructor( + public sessionRequest: SessionRequest + , public sessionListener: (session: Session) => void + , public receiverListener: (availability: string) => void + + , public autoJoinPolicy: string + = AutoJoinPolicy.TAB_AND_ORIGIN_SCOPED + , public defaultActionPolicy: string + = DefaultActionPolicy.CREATE_SESSION) {} +} + + +export class CredentialsData { + constructor( + public credentials: string + , public credentialsData: string) {} +} + + +export class DialRequest { + constructor( + public appName: string + , public launchParameter: (string | null) = null) {} +} + + +export class Error { + constructor( + public code: string + , public description: (string | null) = null + , public details: any = null) {} +} + + +export class Image { + public width: (number | null) = null; + public height: (number | null) = null; + + constructor(public url: string) {} +} + + +export class Receiver { + public displayStatus: (ReceiverDisplayStatus | null) = null; + public isActiveInput: (boolean | null) = null; + public receiverType: string = ReceiverType.CAST; + + constructor( + public label: string + , public friendlyName: string + , public capabilities: Capability[] = [] + , public volume: (Volume | null) = null) {} +} + + +export class ReceiverDisplayStatus { + public showStop: (boolean | null) = null; + + constructor( + public statusText: string + , public appImages: Image[]) {} +} + + +export class SenderApplication { + public packageId: (string | null) = null; + public url: (string | null) = null; + + constructor(public platform: string) {} +} + + +export class SessionRequest { + public language: (string | null) = null; + + constructor( + public appId: string + , public capabilities = [ Capability.VIDEO_OUT + , Capability.AUDIO_OUT ] + , public requestSessionTimeout = (new Timeout()).requestSession + , public androidReceiverCompatible = false + , public credentialsData: (CredentialsData | null) = null) {} +} + + +export class Timeout { + public leaveSession = 3000; + public requestSession = 60000; + public sendCustomMessage = 3000; + public setReceiverVolume = 3000; + public stopSession = 3000; +} + + +export class Volume { + public controlType?: VolumeControlType; + public stepInterval?: number; + + constructor( + public level: (number | null) = null + , public muted: (boolean | null) = null) {} +} diff --git a/ext/src/shim/cast/index.ts b/ext/src/shim/cast/index.ts index 8e8f2dd..86ba540 100755 --- a/ext/src/shim/cast/index.ts +++ b/ext/src/shim/cast/index.ts @@ -2,18 +2,22 @@ import logger from "../../lib/logger"; -import ApiConfig from "./classes/ApiConfig"; -import CredentialsData from "./classes/CredentialsData"; -import DialRequest from "./classes/DialRequest"; -import Error_ from "./classes/Error"; -import Image_ from "./classes/Image"; -import Receiver_ from "./classes/Receiver"; -import ReceiverDisplayStatus from "./classes/ReceiverDisplayStatus"; -import SenderApplication from "./classes/SenderApplication"; -import Session from "./classes/Session"; -import SessionRequest from "./classes/SessionRequest"; -import Timeout from "./classes/Timeout"; -import Volume from "./classes/Volume"; +import { Receiver } from "../../types"; +import { onMessage, sendMessageResponse } from "../eventMessageChannel"; + +import Session from "./Session"; + +import { ApiConfig + , CredentialsData + , DialRequest + , Error as Error_ + , Image as Image_ + , Receiver as Receiver_ + , ReceiverDisplayStatus + , SenderApplication + , SessionRequest + , Timeout + , Volume } from "./dataClasses"; import { AutoJoinPolicy , Capability @@ -27,10 +31,27 @@ import { AutoJoinPolicy , SessionStatus , VolumeControlType } from "./enums"; -import * as media from "./media"; -import { Receiver } from "../../types"; -import { onMessage, sendMessageResponse } from "../eventMessageChannel"; +export * as media from "./media"; + +export { + // Enums + AutoJoinPolicy, Capability, DefaultActionPolicy, DialAppState, ErrorCode + , ReceiverAction, ReceiverAvailability, ReceiverType, SenderPlatform + , SessionStatus, VolumeControlType + + // Classes + , ApiConfig, CredentialsData, DialRequest, ReceiverDisplayStatus + , SenderApplication, Session, SessionRequest, Timeout, Volume + + , Error_ as Error + , Image_ as Image + , Receiver_ as Receiver +}; + +export let isAvailable = false; +export const timeout = new Timeout(); +export const VERSION = [ 1, 2 ]; type ReceiverActionListener = ( @@ -55,27 +76,6 @@ let sessionSuccessCallback: RequestSessionSuccessCallback; let sessionErrorCallback: ErrorCallback; -export { - // Enums - AutoJoinPolicy, Capability, DefaultActionPolicy, DialAppState, ErrorCode - , ReceiverAction, ReceiverAvailability, ReceiverType, SenderPlatform - , SessionStatus, VolumeControlType - - // Classes - , ApiConfig, CredentialsData, DialRequest, ReceiverDisplayStatus - , SenderApplication, Session, SessionRequest, Timeout, Volume - - , Error_ as Error - , Image_ as Image - , Receiver_ as Receiver - - , media -}; - -export let isAvailable = false; -export const timeout = new Timeout(); -export const VERSION = [ 1, 2 ]; - export function addReceiverActionListener( listener: ReceiverActionListener): void { diff --git a/ext/src/shim/cast/media/classes/Media.ts b/ext/src/shim/cast/media/Media.ts similarity index 91% rename from ext/src/shim/cast/media/classes/Media.ts rename to ext/src/shim/cast/media/Media.ts index 5631fab..1bc682c 100644 --- a/ext/src/shim/cast/media/classes/Media.ts +++ b/ext/src/shim/cast/media/Media.ts @@ -1,43 +1,42 @@ "use strict"; -import logger from "../../../../lib/logger"; +import logger from "../../../lib/logger"; import { v1 as uuid } from "uuid"; -import BreakStatus from "./BreakStatus"; -import EditTracksInfoRequest from "./EditTracksInfoRequest"; -import GetStatusRequest from "./GetStatusRequest"; -import LiveSeekableRange from "./LiveSeekableRange"; -import MediaInfo from "./MediaInfo"; -import PauseRequest from "./PauseRequest"; -import PlayRequest from "./PlayRequest"; -import QueueData from "./QueueData"; -import QueueJumpRequest from "./QueueJumpRequest"; -import QueueInsertItemsRequest from "./QueueInsertItemsRequest"; -import QueueItem from "./QueueItem"; -import QueueSetPropertiesRequest from "./QueueSetPropertiesRequest"; -import QueueRemoveItemsRequest from "./QueueRemoveItemsRequest"; -import QueueReorderItemsRequest from "./QueueReorderItemsRequest"; -import QueueUpdateItemsRequest from "./QueueUpdateItemsRequest"; -import SeekRequest from "./SeekRequest"; -import StopRequest from "./StopRequest"; -import VideoInformation from "./VideoInformation"; -import VolumeRequest from "./VolumeRequest"; +import { BreakStatus + , EditTracksInfoRequest + , GetStatusRequest + , LiveSeekableRange + , MediaInfo + , PauseRequest + , PlayRequest + , QueueData + , QueueJumpRequest + , QueueInsertItemsRequest + , QueueItem + , QueueSetPropertiesRequest + , QueueRemoveItemsRequest + , QueueReorderItemsRequest + , QueueUpdateItemsRequest + , SeekRequest + , StopRequest + , VideoInformation + , VolumeRequest } from "./dataClasses"; -import Volume from "../../classes/Volume"; +import { Volume, Error as _Error } from "../dataClasses"; import { PlayerState - , RepeatMode } from "../enums"; + , RepeatMode } from "./enums"; -import _Error from "../../classes/Error"; -import { ErrorCode } from "../../enums"; +import { ErrorCode } from "../enums"; -import { onMessage, sendMessageResponse } from "../../../eventMessageChannel"; +import { onMessage, sendMessageResponse } from "../../eventMessageChannel"; import { Callbacks , ErrorCallback , SuccessCallback - , UpdateListener } from "../../../types"; + , UpdateListener } from "../../types"; type MediaRequest = @@ -54,13 +53,12 @@ type MediaRequest = | StopRequest | VolumeRequest; - enum MediaMessageType { Play = "PLAY" , Load = "LOAD" , Pause = "PAUSE" , Seek = "SEEK" - , StopMedia = "STOP_MEDIA" + , Stop = "STOP" , MediaSetVolume = "MEDIA_SET_VOLUME" , MediaGetStatus = "MEDIA_GET_STATUS" , EditTracksInfo = "EDIT_TRACKS_INFO" @@ -444,12 +442,16 @@ export default class Media { } public stop( - stopRequest: StopRequest + stopRequest?: StopRequest , successCallback?: SuccessCallback , errorCallback?: ErrorCallback): void { + if (!stopRequest) { + stopRequest = new StopRequest(); + } + this._sendMediaMessage( - MediaMessageType.StopMedia + MediaMessageType.Stop , stopRequest , () => { this.#isActive = false; diff --git a/ext/src/shim/cast/media/classes/AudiobookChapterMediaMetadata.ts b/ext/src/shim/cast/media/classes/AudiobookChapterMediaMetadata.ts deleted file mode 100644 index 7e2027b..0000000 --- a/ext/src/shim/cast/media/classes/AudiobookChapterMediaMetadata.ts +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; - -import Image from "../../classes/Image"; - -import { MetadataType } from "../enums"; - - -export default class AudiobookChapterMediaMetadata { - public bookTitle?: string; - public chapterNumber?: number; - public chapterTitle?: string; - public images?: Image[]; - public subtitle?: string; - public title?: string; - public type = MetadataType.AUDIOBOOK_CHAPTER; -} diff --git a/ext/src/shim/cast/media/classes/AudiobookContainerMetadata.ts b/ext/src/shim/cast/media/classes/AudiobookContainerMetadata.ts deleted file mode 100644 index 2543e09..0000000 --- a/ext/src/shim/cast/media/classes/AudiobookContainerMetadata.ts +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; - -export default class AudiobookContainerMetadata { - public authors?: string[]; - public narrators?: string[]; - public publisher?: string; - public releaseDate?: string; -} diff --git a/ext/src/shim/cast/media/classes/Break.ts b/ext/src/shim/cast/media/classes/Break.ts deleted file mode 100644 index 92d688c..0000000 --- a/ext/src/shim/cast/media/classes/Break.ts +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; - -export default class Break { - public duration?: number; - public isEmbedded?: boolean; - public isWatched = false; - - constructor(public id: string - , public breakClipIds: string[] - , public position: number) {} -} diff --git a/ext/src/shim/cast/media/classes/BreakClip.ts b/ext/src/shim/cast/media/classes/BreakClip.ts deleted file mode 100644 index 991bb1c..0000000 --- a/ext/src/shim/cast/media/classes/BreakClip.ts +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; - -import VastAdsRequest from "./VastAdsRequest"; - -import { HlsSegmentFormat } from "../enums"; - - -export default class BreakClip { - public clickThroughUrl?: string; - public contentId?: string; - public contentType?: string; - public contentUrl?: string; - public customData?: {}; - public duration?: number; - public hlsSegmentFormat?: HlsSegmentFormat; - public posterUrl?: string; - public title?: string; - public vastAdsRequest?: VastAdsRequest; - public whenSkippable?: number; - - constructor(public id: string) {} -} diff --git a/ext/src/shim/cast/media/classes/BreakStatus.ts b/ext/src/shim/cast/media/classes/BreakStatus.ts deleted file mode 100644 index 18021b5..0000000 --- a/ext/src/shim/cast/media/classes/BreakStatus.ts +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -export default class BreakStatus { - public breakClipId?: string; - public breakId?: string; - public currentBreakClipTime?: number; - public currentBreakTime?: number; - public whenSkippable?: number; -} diff --git a/ext/src/shim/cast/media/classes/ContainerMetadata.ts b/ext/src/shim/cast/media/classes/ContainerMetadata.ts deleted file mode 100644 index 8a8474b..0000000 --- a/ext/src/shim/cast/media/classes/ContainerMetadata.ts +++ /dev/null @@ -1,17 +0,0 @@ -"use strict"; - -import Image from "../../classes/Image"; -import MediaMetadata from "../classes/MediaMetadata"; - -import { ContainerType } from "../enums"; - - -export default class ContainerMetadata { - public containerDuration?: number; - public containerImages?: Image[]; - public sections?: MediaMetadata[]; - public title?: string; - - constructor(public containerType: ContainerType - = ContainerType.GENERIC_CONTAINER) {} -} diff --git a/ext/src/shim/cast/media/classes/EditTracksInfoRequest.ts b/ext/src/shim/cast/media/classes/EditTracksInfoRequest.ts deleted file mode 100644 index ab890c3..0000000 --- a/ext/src/shim/cast/media/classes/EditTracksInfoRequest.ts +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; - -export default class EditTracksInfoRequest { - public requestId = 0; - - constructor( - public activeTrackIds: (number[] | null) = null - , public textTrackStyle: (string | null) = null) { - } -} diff --git a/ext/src/shim/cast/media/classes/GenericMediaMetadata.ts b/ext/src/shim/cast/media/classes/GenericMediaMetadata.ts deleted file mode 100644 index f353853..0000000 --- a/ext/src/shim/cast/media/classes/GenericMediaMetadata.ts +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; - -import Image from "../../classes/Image"; - -import { MetadataType } from "../enums"; - - -export default class GenericMediaMetadata { - public images: (Image[] | undefined) = undefined; - public metadataType: number = MetadataType.GENERIC; - public releaseDate: (string | undefined) = undefined; - public releaseYear: (number | undefined) = undefined; - public subtitle: (string | undefined) = undefined; - public title: (string | undefined) = undefined; - public type: number = MetadataType.GENERIC; -} diff --git a/ext/src/shim/cast/media/classes/GetStatusRequest.ts b/ext/src/shim/cast/media/classes/GetStatusRequest.ts deleted file mode 100644 index af95d34..0000000 --- a/ext/src/shim/cast/media/classes/GetStatusRequest.ts +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; - -export default class GetStatusRequest { - public customData: any = null; -} diff --git a/ext/src/shim/cast/media/classes/LiveSeekableRange.ts b/ext/src/shim/cast/media/classes/LiveSeekableRange.ts deleted file mode 100644 index 822fb10..0000000 --- a/ext/src/shim/cast/media/classes/LiveSeekableRange.ts +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -export default class LiveSeekableRange { - constructor( - public start?: number - , public end?: number - , public isMovingWindow?: boolean - , public isLiveDone?: boolean) {} -} diff --git a/ext/src/shim/cast/media/classes/LoadRequest.ts b/ext/src/shim/cast/media/classes/LoadRequest.ts deleted file mode 100644 index 2fcd867..0000000 --- a/ext/src/shim/cast/media/classes/LoadRequest.ts +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; - -import MediaInfo from "./MediaInfo"; - - -export default class LoadRequest { - public activeTrackIds: (number[] | null) = null; - public atvCredentials?: string; - public atvCredentialsType?: string; - public autoplay: (boolean | null) = true; - public currentTime: (number | null) = null; - public customData: any = null; - public media: MediaInfo; - public requestId = 0; - public sessionId: (string | null) = null; - public type = "LOAD"; - - constructor(mediaInfo: MediaInfo) { - this.media = mediaInfo; - } -} diff --git a/ext/src/shim/cast/media/classes/MediaInfo.ts b/ext/src/shim/cast/media/classes/MediaInfo.ts deleted file mode 100644 index 4862bc4..0000000 --- a/ext/src/shim/cast/media/classes/MediaInfo.ts +++ /dev/null @@ -1,48 +0,0 @@ -"use strict"; - -import Break from "./Break"; -import BreakClip from "./BreakClip"; -import GenericMediaMetadata from "./GenericMediaMetadata"; -import MovieMediaMetadata from "./MovieMediaMetadata"; -import MusicTrackMediaMetadata from "./MusicTrackMediaMetadata"; -import PhotoMediaMetadata from "./PhotoMediaMetadata"; -import TvShowMediaMetadata from "./TvShowMediaMetadata"; -import TextTrackStyle from "./TextTrackStyle"; -import Track from "./Track"; -import UserActionState from "./UserActionState"; -import VastAdsRequest from "./VastAdsRequest"; - -import { HlsSegmentFormat - , HlsVideoSegmentFormat - , StreamType } from "../enums"; - - -type Metadata = - GenericMediaMetadata - | MovieMediaMetadata - | MusicTrackMediaMetadata - | PhotoMediaMetadata - | TvShowMediaMetadata; - -export default class MediaInfo { - public atvEntity?: string; - public breakClips?: BreakClip[]; - public breaks?: Break[]; - public customData: any = null; - public contentUrl?: string; - public duration: (number | null) = null; - public entity?: string; - public hlsSegmentFormat?: HlsSegmentFormat; - public hlsVideoSegmentFormat?: HlsVideoSegmentFormat; - public metadata: (Metadata | null) = null; - public startAbsoluteTime?: number; - public streamType: string = StreamType.BUFFERED; - public textTrackStyle: (TextTrackStyle | null) = null; - public tracks: (Track[] | null) = null; - public userActionStates?: UserActionState[]; - public vmapAdsRequest?: VastAdsRequest; - - constructor( - public contentId: string - , public contentType: string) {} -} diff --git a/ext/src/shim/cast/media/classes/MediaMetadata.ts b/ext/src/shim/cast/media/classes/MediaMetadata.ts deleted file mode 100644 index ae477da..0000000 --- a/ext/src/shim/cast/media/classes/MediaMetadata.ts +++ /dev/null @@ -1,19 +0,0 @@ -"use strict"; - -import { MetadataType } from "../enums"; - - -export default class MediaMetadata { - public queueItemId?: number; - public sectionDuration?: number; - public sectionStartAbsoluteTime?: number; - public sectionStartTimeInContainer?: number; - public sectionStartTimeInMedia?: number; - public type: MetadataType; - public metadataType: MetadataType; - - constructor(type: MetadataType) { - this.type = type; - this.metadataType = type; - } -} diff --git a/ext/src/shim/cast/media/classes/MovieMediaMetadata.ts b/ext/src/shim/cast/media/classes/MovieMediaMetadata.ts deleted file mode 100644 index ff478ea..0000000 --- a/ext/src/shim/cast/media/classes/MovieMediaMetadata.ts +++ /dev/null @@ -1,17 +0,0 @@ -"use strict"; - -import Image from "../../classes/Image"; - -import { MetadataType } from "../enums"; - - -export default class MovieMediaMetadata { - public images: (Image[] | undefined) = undefined; - public metadataType: number = MetadataType.MOVIE; - public releaseDate: (string | undefined) = undefined; - public releaseYear: (number | undefined) = undefined; - public studio: (string | undefined) = undefined; - public subtitle: (string | undefined) = undefined; - public title: (string | undefined) = undefined; - public type: number = MetadataType.MOVIE; -} diff --git a/ext/src/shim/cast/media/classes/MusicTrackMediaMetadata.ts b/ext/src/shim/cast/media/classes/MusicTrackMediaMetadata.ts deleted file mode 100644 index 5859489..0000000 --- a/ext/src/shim/cast/media/classes/MusicTrackMediaMetadata.ts +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; - -import Image from "../../classes/Image"; - -import { MetadataType } from "../enums"; - - -export default class MusicTrackMediaMetadata { - public albumArtist: (string | undefined) = undefined; - public albumName: (string | undefined) = undefined; - public artist: (string | undefined) = undefined; - public artistName: (string | undefined) = undefined; - public composer: (string | undefined) = undefined; - public discNumber: (number | undefined) = undefined; - public images: (Image[] | undefined) = undefined; - public metadataType: number = MetadataType.MUSIC_TRACK; - public releaseDate: (string | undefined) = undefined; - public releaseYear: (number | undefined) = undefined; - public songName: (string | undefined) = undefined; - public title: (string | undefined) = undefined; - public trackNumber: (number | undefined) = undefined; - public type: number = MetadataType.MUSIC_TRACK; -} diff --git a/ext/src/shim/cast/media/classes/PauseRequest.ts b/ext/src/shim/cast/media/classes/PauseRequest.ts deleted file mode 100644 index bcc1179..0000000 --- a/ext/src/shim/cast/media/classes/PauseRequest.ts +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; - -export default class PauseRequest { - public customData: any = null; -} diff --git a/ext/src/shim/cast/media/classes/PhotoMediaMetadata.ts b/ext/src/shim/cast/media/classes/PhotoMediaMetadata.ts deleted file mode 100644 index b29c7b6..0000000 --- a/ext/src/shim/cast/media/classes/PhotoMediaMetadata.ts +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; - -import Image from "../../classes/Image"; - -import { MetadataType } from "../enums"; - - -export default class PhotoMediaMetadata { - public artist: (string | undefined) = undefined; - public creationDateTime: (string | undefined) = undefined; - public height: (number | undefined) = undefined; - public images: (Image[] | undefined) = undefined; - public latitude: (number | undefined) = undefined; - public location: (string | undefined) = undefined; - public longitude: (number | undefined) = undefined; - public metadataType: number = MetadataType.PHOTO; - public title: (string | undefined) = undefined; - public type: number = MetadataType.PHOTO; - public width: (number | undefined) = undefined; -} diff --git a/ext/src/shim/cast/media/classes/PlayRequest.ts b/ext/src/shim/cast/media/classes/PlayRequest.ts deleted file mode 100644 index 9557e51..0000000 --- a/ext/src/shim/cast/media/classes/PlayRequest.ts +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; - -export default class PlayRequest { - public customData: any = null; -} diff --git a/ext/src/shim/cast/media/classes/QueueData.ts b/ext/src/shim/cast/media/classes/QueueData.ts deleted file mode 100644 index 8554bb9..0000000 --- a/ext/src/shim/cast/media/classes/QueueData.ts +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; - -import QueueItem from "./QueueItem"; - -import { RepeatMode } from "../enums"; - - -export default class QueueData { - public shuffle = false; - - constructor(public id?: string - , public name?: string - , public description?: string - , public repeatMode?: RepeatMode - , public items?: QueueItem[] - , public startIndex?: number - , public startTime?: number) {} -} diff --git a/ext/src/shim/cast/media/classes/QueueInsertItemsRequest.ts b/ext/src/shim/cast/media/classes/QueueInsertItemsRequest.ts deleted file mode 100644 index d62375a..0000000 --- a/ext/src/shim/cast/media/classes/QueueInsertItemsRequest.ts +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -import QueueItem from "./QueueItem"; - - -export default class QueueInsertItemsRequest { - public customData: any = null; - public insertBefore: (number | null) = null; - public requestId: (number | null) = null; - public sessionId: (string | null) = null; - public type = "QUEUE_INSERT"; - - constructor( - public items: QueueItem[]) {} -} diff --git a/ext/src/shim/cast/media/classes/QueueItem.ts b/ext/src/shim/cast/media/classes/QueueItem.ts deleted file mode 100644 index 9b4d488..0000000 --- a/ext/src/shim/cast/media/classes/QueueItem.ts +++ /dev/null @@ -1,19 +0,0 @@ -"use strict"; - -import MediaInfo from "./MediaInfo"; - - -export default class QueueItem { - public activeTrackIds: (number[] | null) = null; - public autoplay = true; - public customData: any = null; - public itemId: (number | null) = null; - public media: MediaInfo; - public playbackDuration: (number | null) = null; - public preloadTime = 0; - public startTime = 0; - - constructor(mediaInfo: MediaInfo) { - this.media = mediaInfo; - } -} diff --git a/ext/src/shim/cast/media/classes/QueueJumpRequest.ts b/ext/src/shim/cast/media/classes/QueueJumpRequest.ts deleted file mode 100644 index 24ed194..0000000 --- a/ext/src/shim/cast/media/classes/QueueJumpRequest.ts +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -import QueueItem from "./QueueItem"; - -import { RepeatMode } from "../enums"; - - -export default class QueueJumpRequest { - public jump: (number | null) = null; - public currentItemId: (number | null) = null; - public sessionId: (number | null) = null; - public requestId: (number | null) = null; - - public type = "QUEUE_UPDATE"; -} diff --git a/ext/src/shim/cast/media/classes/QueueLoadRequest.ts b/ext/src/shim/cast/media/classes/QueueLoadRequest.ts deleted file mode 100644 index 2b35dfc..0000000 --- a/ext/src/shim/cast/media/classes/QueueLoadRequest.ts +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; - -import QueueItem from "./QueueItem"; - -import { RepeatMode } from "../enums"; - - -export default class QueueLoadRequest { - public customData: any = null; - public repeatMode: string = RepeatMode.OFF; - public requestId: (number | null) = null; - public sessionId: (string | null) = null; - public startIndex = 0; - public type = "QUEUE_LOAD"; - - constructor( - public items: QueueItem[]) {} -} diff --git a/ext/src/shim/cast/media/classes/QueueRemoveItemsRequest.ts b/ext/src/shim/cast/media/classes/QueueRemoveItemsRequest.ts deleted file mode 100644 index 15f7325..0000000 --- a/ext/src/shim/cast/media/classes/QueueRemoveItemsRequest.ts +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; - -export default class QueueRemoveItemsRequest { - public customData: any = null; - public requestId: (number | null) = null; - public sessionId: (string | null) = null; - public type = "QUEUE_REMOVE"; - - constructor( - public itemIds: number[]) {} -} diff --git a/ext/src/shim/cast/media/classes/QueueReorderItemsRequest.ts b/ext/src/shim/cast/media/classes/QueueReorderItemsRequest.ts deleted file mode 100644 index 462d0f5..0000000 --- a/ext/src/shim/cast/media/classes/QueueReorderItemsRequest.ts +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; - -export default class QueueReorderItemsRequest { - public customData: any = null; - public insertBefore: (number | null) = null; - public requestId: (number | null) = null; - public sessionId: (string | null) = null; - public type = "QUEUE_REORDER"; - - constructor( - public itemIds: number[]) {} -} diff --git a/ext/src/shim/cast/media/classes/QueueSetPropertiesRequest.ts b/ext/src/shim/cast/media/classes/QueueSetPropertiesRequest.ts deleted file mode 100644 index 93b1141..0000000 --- a/ext/src/shim/cast/media/classes/QueueSetPropertiesRequest.ts +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -export default class QueueSetPropertiesRequest { - public customData: any = null; - public repeatMode: (string | null) = null; - public requestId: (number | null) = null; - public sessionId: (string | null) = null; - public type = "QUEUE_UPDATE"; -} diff --git a/ext/src/shim/cast/media/classes/QueueUpdateItemsRequest.ts b/ext/src/shim/cast/media/classes/QueueUpdateItemsRequest.ts deleted file mode 100644 index 3ac7509..0000000 --- a/ext/src/shim/cast/media/classes/QueueUpdateItemsRequest.ts +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; - -import QueueItem from "./QueueItem"; - - -export default class QueueUpdateItemsRequest { - public customData: any = null; - public requestId: (number | null) = null; - public sessionId: (string | null) = null; - public type = "QUEUE_UPDATE"; - - constructor( - public items: QueueItem[]) {} -} diff --git a/ext/src/shim/cast/media/classes/SeekRequest.ts b/ext/src/shim/cast/media/classes/SeekRequest.ts deleted file mode 100644 index 9266e8c..0000000 --- a/ext/src/shim/cast/media/classes/SeekRequest.ts +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -export default class SeekRequest { - public currentTime: (number | null) = null; - public customData: any = null; - public resumeState: (string | null) = null; -} diff --git a/ext/src/shim/cast/media/classes/StopRequest.ts b/ext/src/shim/cast/media/classes/StopRequest.ts deleted file mode 100644 index 90acfa5..0000000 --- a/ext/src/shim/cast/media/classes/StopRequest.ts +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; - -export default class StopRequest { - public customData: any = null; -} diff --git a/ext/src/shim/cast/media/classes/TextTrackStyle.ts b/ext/src/shim/cast/media/classes/TextTrackStyle.ts deleted file mode 100644 index 50b836c..0000000 --- a/ext/src/shim/cast/media/classes/TextTrackStyle.ts +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; - -export default class TextTrackStyle { - public backgroundColor: (string | null) = null; - public customData: any = null; - public edgeColor: (string | null) = null; - public edgeType: (string | null) = null; - public fontFamily: (string | null) = null; - public fontGenericFamily: (string | null) = null; - public fontScale: (number | null) = null; - public fontStyle: (string | null) = null; - public foregroundColor: (string | null) = null; - public windowColor: (string | null) = null; - public windowRoundedCornerRadius: (number | null) = null; - public windowType: (string | null) = null; -} diff --git a/ext/src/shim/cast/media/classes/Track.ts b/ext/src/shim/cast/media/classes/Track.ts deleted file mode 100644 index adc3049..0000000 --- a/ext/src/shim/cast/media/classes/Track.ts +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; - -export default class Track { - public customData: any = null; - public language: (string | null) = null; - public name: (string | null) = null; - public subtype: (string | null) = null; - public trackContentId: (string | null) = null; - public trackContentType: (string | null) = null; - - constructor( - public trackId: number - , public type: string) {} -} diff --git a/ext/src/shim/cast/media/classes/TvShowMediaMetadata.ts b/ext/src/shim/cast/media/classes/TvShowMediaMetadata.ts deleted file mode 100644 index 63df9ce..0000000 --- a/ext/src/shim/cast/media/classes/TvShowMediaMetadata.ts +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; - -import Image from "../../classes/Image"; - -import { MetadataType } from "../enums"; - - -export default class TvShowMediaMetadata { - public episode: (number | undefined) = undefined; - public episodeNumber: (number | undefined) = undefined; - public episodeTitle: (string | undefined) = undefined; - public images: (Image[] | undefined) = undefined; - public metadataType: number = MetadataType.TV_SHOW; - public originalAirdate: (string | undefined) = undefined; - public releaseYear: (number | undefined) = undefined; - public season: (number | undefined) = undefined; - public seasonNumber: (number | undefined) = undefined; - public seriesTitle: (string | undefined) = undefined; - public title: (string | undefined) = undefined; - public type: number = MetadataType.TV_SHOW; -} diff --git a/ext/src/shim/cast/media/classes/UserActionState.ts b/ext/src/shim/cast/media/classes/UserActionState.ts deleted file mode 100644 index da9aa0d..0000000 --- a/ext/src/shim/cast/media/classes/UserActionState.ts +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; - -import { UserAction } from "../enums"; - - -export default class UserActionState { - public customData: any = null; - - constructor( - public userAction: UserAction) {} -} diff --git a/ext/src/shim/cast/media/classes/VastAdsRequest.ts b/ext/src/shim/cast/media/classes/VastAdsRequest.ts deleted file mode 100644 index 11df7d7..0000000 --- a/ext/src/shim/cast/media/classes/VastAdsRequest.ts +++ /dev/null @@ -1,6 +0,0 @@ -"use strict"; - -export default class VastAdsRequest { - public adsResponse?: string; - public adTagUrl?: string; -} diff --git a/ext/src/shim/cast/media/classes/VideoInformation.ts b/ext/src/shim/cast/media/classes/VideoInformation.ts deleted file mode 100644 index eb593ba..0000000 --- a/ext/src/shim/cast/media/classes/VideoInformation.ts +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; - -import { HdrType } from "../enums"; - - -export default class VideoInformation { - constructor( - public width: number - , public height: number - , public hdrType: HdrType) {} -} diff --git a/ext/src/shim/cast/media/classes/VolumeRequest.ts b/ext/src/shim/cast/media/classes/VolumeRequest.ts deleted file mode 100644 index 873c499..0000000 --- a/ext/src/shim/cast/media/classes/VolumeRequest.ts +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; - -import Volume from "../../classes/Volume"; - - -export default class VolumeRequest { - public customData: any = null; - - constructor( - public volume: Volume) {} -} diff --git a/ext/src/shim/cast/media/dataClasses.ts b/ext/src/shim/cast/media/dataClasses.ts new file mode 100644 index 0000000..bda34ee --- /dev/null +++ b/ext/src/shim/cast/media/dataClasses.ts @@ -0,0 +1,432 @@ +"use strict"; + +import { Image, Volume } from "../dataClasses"; + +import { ContainerType + , HdrType + , HlsSegmentFormat + , HlsVideoSegmentFormat + , MetadataType + , RepeatMode + , StreamType + , UserAction } from "./enums"; + + +export class AudiobookChapterMediaMetadata { + public bookTitle?: string; + public chapterNumber?: number; + public chapterTitle?: string; + public images?: Image[]; + public subtitle?: string; + public title?: string; + public type = MetadataType.AUDIOBOOK_CHAPTER; +} + + +export class AudiobookContainerMetadata { + public authors?: string[]; + public narrators?: string[]; + public publisher?: string; + public releaseDate?: string; +} + + +export class Break { + public duration?: number; + public isEmbedded?: boolean; + public isWatched = false; + + constructor( + public id: string + , public breakClipIds: string[] + , public position: number) {} +} + + +export class BreakClip { + public clickThroughUrl?: string; + public contentId?: string; + public contentType?: string; + public contentUrl?: string; + public customData?: {}; + public duration?: number; + public hlsSegmentFormat?: HlsSegmentFormat; + public posterUrl?: string; + public title?: string; + public vastAdsRequest?: VastAdsRequest; + public whenSkippable?: number; + + constructor(public id: string) {} +} + + +export class BreakStatus { + public breakClipId?: string; + public breakId?: string; + public currentBreakClipTime?: number; + public currentBreakTime?: number; + public whenSkippable?: number; +} + + +export class ContainerMetadata { + public containerDuration?: number; + public containerImages?: Image[]; + public sections?: MediaMetadata[]; + public title?: string; + + constructor( + public containerType: ContainerType = + ContainerType.GENERIC_CONTAINER) {} +} + + +export class EditTracksInfoRequest { + public requestId = 0; + + constructor( + public activeTrackIds: (number[] | null) = null + , public textTrackStyle: (string | null) = null) { + } +} + + +export class GenericMediaMetadata { + public images: (Image[] | undefined) = undefined; + public metadataType: number = MetadataType.GENERIC; + public releaseDate: (string | undefined) = undefined; + public releaseYear: (number | undefined) = undefined; + public subtitle: (string | undefined) = undefined; + public title: (string | undefined) = undefined; + public type: number = MetadataType.GENERIC; +} + + +export class GetStatusRequest { + public customData: any = null; +} + + +export class LiveSeekableRange { + constructor( + public start?: number + , public end?: number + , public isMovingWindow?: boolean + , public isLiveDone?: boolean) {} +} + + +export class LoadRequest { + public activeTrackIds: (number[] | null) = null; + public atvCredentials?: string; + public atvCredentialsType?: string; + public autoplay: (boolean | null) = true; + public currentTime: (number | null) = null; + public customData: any = null; + public media: MediaInfo; + public requestId = 0; + public sessionId: (string | null) = null; + public type = "LOAD"; + + constructor(mediaInfo: MediaInfo) { + this.media = mediaInfo; + } +} + + +type Metadata = + GenericMediaMetadata + | MovieMediaMetadata + | MusicTrackMediaMetadata + | PhotoMediaMetadata + | TvShowMediaMetadata; + +export class MediaInfo { + public atvEntity?: string; + public breakClips?: BreakClip[]; + public breaks?: Break[]; + public customData: any = null; + public contentUrl?: string; + public duration: (number | null) = null; + public entity?: string; + public hlsSegmentFormat?: HlsSegmentFormat; + public hlsVideoSegmentFormat?: HlsVideoSegmentFormat; + public metadata: (Metadata | null) = null; + public startAbsoluteTime?: number; + public streamType: string = StreamType.BUFFERED; + public textTrackStyle: (TextTrackStyle | null) = null; + public tracks: (Track[] | null) = null; + public userActionStates?: UserActionState[]; + public vmapAdsRequest?: VastAdsRequest; + + constructor( + public contentId: string + , public contentType: string) {} +} + + +export class MediaMetadata { + public queueItemId?: number; + public sectionDuration?: number; + public sectionStartAbsoluteTime?: number; + public sectionStartTimeInContainer?: number; + public sectionStartTimeInMedia?: number; + public type: MetadataType; + public metadataType: MetadataType; + + constructor(type: MetadataType) { + this.type = type; + this.metadataType = type; + } +} + + +export class MovieMediaMetadata { + public images: (Image[] | undefined) = undefined; + public metadataType: number = MetadataType.MOVIE; + public releaseDate: (string | undefined) = undefined; + public releaseYear: (number | undefined) = undefined; + public studio: (string | undefined) = undefined; + public subtitle: (string | undefined) = undefined; + public title: (string | undefined) = undefined; + public type: number = MetadataType.MOVIE; +} + + +export class MusicTrackMediaMetadata { + public albumArtist: (string | undefined) = undefined; + public albumName: (string | undefined) = undefined; + public artist: (string | undefined) = undefined; + public artistName: (string | undefined) = undefined; + public composer: (string | undefined) = undefined; + public discNumber: (number | undefined) = undefined; + public images: (Image[] | undefined) = undefined; + public metadataType: number = MetadataType.MUSIC_TRACK; + public releaseDate: (string | undefined) = undefined; + public releaseYear: (number | undefined) = undefined; + public songName: (string | undefined) = undefined; + public title: (string | undefined) = undefined; + public trackNumber: (number | undefined) = undefined; + public type: number = MetadataType.MUSIC_TRACK; +} + + +export class PauseRequest { + public customData: any = null; +} + + +export class PhotoMediaMetadata { + public artist: (string | undefined) = undefined; + public creationDateTime: (string | undefined) = undefined; + public height: (number | undefined) = undefined; + public images: (Image[] | undefined) = undefined; + public latitude: (number | undefined) = undefined; + public location: (string | undefined) = undefined; + public longitude: (number | undefined) = undefined; + public metadataType: number = MetadataType.PHOTO; + public title: (string | undefined) = undefined; + public type: number = MetadataType.PHOTO; + public width: (number | undefined) = undefined; +} + + +export class PlayRequest { + public customData: any = null; +} + + +export class QueueData { + public shuffle = false; + + constructor( + public id?: string + , public name?: string + , public description?: string + , public repeatMode?: RepeatMode + , public items?: QueueItem[] + , public startIndex?: number + , public startTime?: number) {} +} + + +export class QueueInsertItemsRequest { + public customData: any = null; + public insertBefore: (number | null) = null; + public requestId: (number | null) = null; + public sessionId: (string | null) = null; + public type = "QUEUE_INSERT"; + + constructor( + public items: QueueItem[]) {} +} + + +export class QueueItem { + public activeTrackIds: (number[] | null) = null; + public autoplay = true; + public customData: any = null; + public itemId: (number | null) = null; + public media: MediaInfo; + public playbackDuration: (number | null) = null; + public preloadTime = 0; + public startTime = 0; + + constructor(mediaInfo: MediaInfo) { + this.media = mediaInfo; + } +} + + +export class QueueJumpRequest { + public jump: (number | null) = null; + public currentItemId: (number | null) = null; + public sessionId: (number | null) = null; + public requestId: (number | null) = null; + + public type = "QUEUE_UPDATE"; +} + + +export class QueueLoadRequest { + public customData: any = null; + public repeatMode: string = RepeatMode.OFF; + public requestId: (number | null) = null; + public sessionId: (string | null) = null; + public startIndex = 0; + public type = "QUEUE_LOAD"; + + constructor( + public items: QueueItem[]) {} +} + + +export class QueueRemoveItemsRequest { + public customData: any = null; + public requestId: (number | null) = null; + public sessionId: (string | null) = null; + public type = "QUEUE_REMOVE"; + + constructor( + public itemIds: number[]) {} +} + + +export class QueueReorderItemsRequest { + public customData: any = null; + public insertBefore: (number | null) = null; + public requestId: (number | null) = null; + public sessionId: (string | null) = null; + public type = "QUEUE_REORDER"; + + constructor( + public itemIds: number[]) {} +} + + +export class QueueSetPropertiesRequest { + public customData: any = null; + public repeatMode: (string | null) = null; + public requestId: (number | null) = null; + public sessionId: (string | null) = null; + public type = "QUEUE_UPDATE"; +} + + +export class QueueUpdateItemsRequest { + public customData: any = null; + public requestId: (number | null) = null; + public sessionId: (string | null) = null; + public type = "QUEUE_UPDATE"; + + constructor( + public items: QueueItem[]) {} +} + + +export class SeekRequest { + public currentTime: (number | null) = null; + public customData: any = null; + public resumeState: (string | null) = null; +} + + +export class StopRequest { + public customData: any = null; +} + + +export class TextTrackStyle { + public backgroundColor: (string | null) = null; + public customData: any = null; + public edgeColor: (string | null) = null; + public edgeType: (string | null) = null; + public fontFamily: (string | null) = null; + public fontGenericFamily: (string | null) = null; + public fontScale: (number | null) = null; + public fontStyle: (string | null) = null; + public foregroundColor: (string | null) = null; + public windowColor: (string | null) = null; + public windowRoundedCornerRadius: (number | null) = null; + public windowType: (string | null) = null; +} + + +export class Track { + public customData: any = null; + public language: (string | null) = null; + public name: (string | null) = null; + public subtype: (string | null) = null; + public trackContentId: (string | null) = null; + public trackContentType: (string | null) = null; + + constructor( + public trackId: number + , public type: string) {} +} + + +export class TvShowMediaMetadata { + public episode: (number | undefined) = undefined; + public episodeNumber: (number | undefined) = undefined; + public episodeTitle: (string | undefined) = undefined; + public images: (Image[] | undefined) = undefined; + public metadataType: number = MetadataType.TV_SHOW; + public originalAirdate: (string | undefined) = undefined; + public releaseYear: (number | undefined) = undefined; + public season: (number | undefined) = undefined; + public seasonNumber: (number | undefined) = undefined; + public seriesTitle: (string | undefined) = undefined; + public title: (string | undefined) = undefined; + public type: number = MetadataType.TV_SHOW; +} + + +export class UserActionState { + public customData: any = null; + + constructor( + public userAction: UserAction) {} +} + + +export class VastAdsRequest { + public adsResponse?: string; + public adTagUrl?: string; +} + + +export class VideoInformation { + constructor( + public width: number + , public height: number + , public hdrType: HdrType) {} +} + + +export class VolumeRequest { + public customData: any = null; + + constructor( + public volume: Volume) {} +} diff --git a/ext/src/shim/cast/media/index.ts b/ext/src/shim/cast/media/index.ts index 8a9ac80..92c276d 100755 --- a/ext/src/shim/cast/media/index.ts +++ b/ext/src/shim/cast/media/index.ts @@ -1,82 +1,12 @@ "use strict"; -import AudiobookChapterMediaMetadata from "./classes/AudiobookChapterMediaMetadata"; -import AudiobookContainerMetadata from "./classes/AudiobookContainerMetadata"; -import Break from "./classes/Break"; -import BreakClip from "./classes/BreakClip"; -import BreakStatus from "./classes/BreakStatus"; -import ContainerMetadata from "./classes/ContainerMetadata"; -import EditTracksInfoRequest from "./classes/EditTracksInfoRequest"; -import GenericMediaMetadata from "./classes/GenericMediaMetadata"; -import GetStatusRequest from "./classes/GetStatusRequest"; -import LiveSeekableRange from "./classes/LiveSeekableRange"; -import LoadRequest from "./classes/LoadRequest"; -import Media from "./classes/Media"; -import MediaInfo from "./classes/MediaInfo"; -import MediaMetadata from "./classes/MediaMetadata"; -import MovieMediaMetadata from "./classes/MovieMediaMetadata"; -import MusicTrackMediaMetadata from "./classes/MusicTrackMediaMetadata"; -import PauseRequest from "./classes/PauseRequest"; -import PhotoMediaMetadata from "./classes/PhotoMediaMetadata"; -import PlayRequest from "./classes/PlayRequest"; -import QueueData from "./classes/QueueData"; -import QueueInsertItemsRequest from "./classes/QueueInsertItemsRequest"; -import QueueItem from "./classes/QueueItem"; -import QueueLoadRequest from "./classes/QueueLoadRequest"; -import QueueRemoveItemsRequest from "./classes/QueueRemoveItemsRequest"; -import QueueReorderItemsRequest from "./classes/QueueReorderItemsRequest"; -import QueueSetPropertiesRequest from "./classes/QueueSetPropertiesRequest"; -import QueueUpdateItemsRequest from "./classes/QueueUpdateItemsRequest"; -import SeekRequest from "./classes/SeekRequest"; -import StopRequest from "./classes/StopRequest"; -import TextTrackStyle from "./classes/TextTrackStyle"; -import Track from "./classes/Track"; -import TvShowMediaMetadata from "./classes/TvShowMediaMetadata"; -import UserActionState from "./classes/QueueItem"; -import VastAdsRequest from "./classes/VastAdsRequest"; -import VideoInformation from "./classes/VideoInformation"; -import VolumeRequest from "./classes/VolumeRequest"; - -import { ContainerType - , HdrType - , HlsSegmentFormat - , HlsVideoSegmentFormat - , IdleReason - , MediaCommand - , MetadataType - , PlayerState - , QueueType - , RepeatMode - , ResumeState - , StreamType - , TextTrackEdgeType - , TextTrackFontGenericFamily - , TextTrackFontStyle - , TextTrackType - , TextTrackWindowType - , TrackType - , UserAction } from "./enums"; +import Media from "./Media"; -export { - // Enums - ContainerType, HdrType, HlsSegmentFormat, HlsVideoSegmentFormat, IdleReason - , MediaCommand, MetadataType, PlayerState, QueueType, RepeatMode, ResumeState - , StreamType, TextTrackEdgeType, TextTrackFontGenericFamily - , TextTrackFontStyle, TextTrackType, TextTrackWindowType, TrackType - , UserAction +export { Media }; - // Classes - , AudiobookChapterMediaMetadata, AudiobookContainerMetadata, Break, BreakClip - , BreakStatus, ContainerMetadata, EditTracksInfoRequest, GenericMediaMetadata - , GetStatusRequest, LiveSeekableRange, LoadRequest, Media, MediaInfo - , MediaMetadata, MovieMediaMetadata, MusicTrackMediaMetadata, PauseRequest - , PhotoMediaMetadata, PlayRequest, QueueInsertItemsRequest, QueueData - , QueueItem, QueueLoadRequest, QueueRemoveItemsRequest - , QueueReorderItemsRequest, QueueSetPropertiesRequest, QueueUpdateItemsRequest - , SeekRequest, StopRequest, TextTrackStyle, Track, TvShowMediaMetadata - , UserActionState, VastAdsRequest, VideoInformation, VolumeRequest -}; +export * from "./dataClasses"; +export * from "./enums"; export const timeout = { editTracksInfo: 0 diff --git a/ext/src/shim/types.ts b/ext/src/shim/types.ts index 7d5da03..57b80c7 100644 --- a/ext/src/shim/types.ts +++ b/ext/src/shim/types.ts @@ -1,10 +1,11 @@ "use strict"; -import _Error from "./cast/classes/Error"; -import Media from "./cast/media/classes/Media"; +import { Error as Error_ } from "./cast/dataClasses"; +import { Media } from "./cast/media"; + export type SuccessCallback = () => void; -export type ErrorCallback = (err: _Error) => void; +export type ErrorCallback = (err: Error_) => void; export type MediaListener = (media: Media) => void; export type MessageListener = (namespace: string, message: string) => void;