mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-09 09:09:58 +00:00
Reorganize shim files
This commit is contained in:
@@ -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";
|
||||
|
||||
|
||||
|
||||
@@ -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", () => {
|
||||
|
||||
32
ext/src/shim/cast/classes/Session.ts → ext/src/shim/cast/Session.ts
Executable file → Normal file
32
ext/src/shim/cast/classes/Session.ts → ext/src/shim/cast/Session.ts
Executable file → Normal file
@@ -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;
|
||||
@@ -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) {}
|
||||
}
|
||||
@@ -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) {
|
||||
}
|
||||
}
|
||||
@@ -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) {
|
||||
}
|
||||
}
|
||||
@@ -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) {
|
||||
}
|
||||
}
|
||||
@@ -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) {}
|
||||
}
|
||||
@@ -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) {
|
||||
}
|
||||
}
|
||||
@@ -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[]) {}
|
||||
}
|
||||
@@ -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) {}
|
||||
}
|
||||
@@ -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) {}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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) {
|
||||
}
|
||||
}
|
||||
114
ext/src/shim/cast/dataClasses.ts
Normal file
114
ext/src/shim/cast/dataClasses.ts
Normal file
@@ -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) {}
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
export default class AudiobookContainerMetadata {
|
||||
public authors?: string[];
|
||||
public narrators?: string[];
|
||||
public publisher?: string;
|
||||
public releaseDate?: string;
|
||||
}
|
||||
@@ -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) {}
|
||||
}
|
||||
@@ -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) {}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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) {}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
export default class EditTracksInfoRequest {
|
||||
public requestId = 0;
|
||||
|
||||
constructor(
|
||||
public activeTrackIds: (number[] | null) = null
|
||||
, public textTrackStyle: (string | null) = 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;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
export default class GetStatusRequest {
|
||||
public customData: any = null;
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
export default class LiveSeekableRange {
|
||||
constructor(
|
||||
public start?: number
|
||||
, public end?: number
|
||||
, public isMovingWindow?: boolean
|
||||
, public isLiveDone?: boolean) {}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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) {}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
export default class PauseRequest {
|
||||
public customData: any = 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;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
export default class PlayRequest {
|
||||
public customData: any = 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) {}
|
||||
}
|
||||
@@ -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[]) {}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
@@ -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[]) {}
|
||||
}
|
||||
@@ -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[]) {}
|
||||
}
|
||||
@@ -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[]) {}
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
@@ -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[]) {}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
export default class SeekRequest {
|
||||
public currentTime: (number | null) = null;
|
||||
public customData: any = null;
|
||||
public resumeState: (string | null) = null;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
export default class StopRequest {
|
||||
public customData: any = 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;
|
||||
}
|
||||
@@ -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) {}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
import { UserAction } from "../enums";
|
||||
|
||||
|
||||
export default class UserActionState {
|
||||
public customData: any = null;
|
||||
|
||||
constructor(
|
||||
public userAction: UserAction) {}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
export default class VastAdsRequest {
|
||||
public adsResponse?: string;
|
||||
public adTagUrl?: string;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
import { HdrType } from "../enums";
|
||||
|
||||
|
||||
export default class VideoInformation {
|
||||
constructor(
|
||||
public width: number
|
||||
, public height: number
|
||||
, public hdrType: HdrType) {}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
import Volume from "../../classes/Volume";
|
||||
|
||||
|
||||
export default class VolumeRequest {
|
||||
public customData: any = null;
|
||||
|
||||
constructor(
|
||||
public volume: Volume) {}
|
||||
}
|
||||
432
ext/src/shim/cast/media/dataClasses.ts
Normal file
432
ext/src/shim/cast/media/dataClasses.ts
Normal file
@@ -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) {}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user