mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-12 02:29:59 +00:00
Expose types via cast/media exports
This commit is contained in:
@@ -24,7 +24,7 @@ import { AutoJoinPolicy
|
||||
, SessionStatus
|
||||
, VolumeControlType } from "./enums";
|
||||
|
||||
import media from "./media";
|
||||
import * as media from "./media";
|
||||
|
||||
import { requestSession as requestSessionTimeout } from "../timeout";
|
||||
|
||||
@@ -53,138 +53,146 @@ const receiverListeners = new Set<ReceiverActionListener>();
|
||||
let sessionSuccessCallback: RequestSessionSuccessCallback;
|
||||
let sessionErrorCallback: ErrorCallback;
|
||||
|
||||
export default {
|
||||
|
||||
export {
|
||||
// Enums
|
||||
AutoJoinPolicy, Capability, DefaultActionPolicy, DialAppState
|
||||
, ErrorCode, ReceiverAction, ReceiverAvailability, ReceiverType
|
||||
, SenderPlatform, SessionStatus, VolumeControlType
|
||||
|
||||
// Classes
|
||||
, ApiConfig, DialRequest, Error: Error_, Image: Image_
|
||||
, Receiver, ReceiverDisplayStatus, SenderApplication, Session
|
||||
, SessionRequest, Timeout, Volume
|
||||
, ApiConfig, DialRequest, Receiver, ReceiverDisplayStatus
|
||||
, SenderApplication, Session, SessionRequest, Timeout
|
||||
, Volume
|
||||
|
||||
, VERSION: [1, 2]
|
||||
, isAvailable: false
|
||||
, timeout: new Timeout()
|
||||
, Error_ as Error
|
||||
, Image_ as Image
|
||||
|
||||
// chrome.cast.media namespace
|
||||
, media
|
||||
|
||||
|
||||
, addReceiverActionListener: (
|
||||
listener: ReceiverActionListener): void => {
|
||||
|
||||
console.info("fx_cast (Debug): cast.addReceiverActionListener");
|
||||
receiverListeners.add(listener);
|
||||
}
|
||||
|
||||
, initialize: (
|
||||
newApiConfig: ApiConfig
|
||||
, successCallback: SuccessCallback
|
||||
, errorCallback: ErrorCallback): void => {
|
||||
|
||||
console.info("fx_cast (Debug): cast.initialize");
|
||||
|
||||
// Already initialized
|
||||
if (apiConfig) {
|
||||
errorCallback(new Error_(ErrorCode.INVALID_PARAMETER));
|
||||
return;
|
||||
}
|
||||
|
||||
apiConfig = newApiConfig;
|
||||
|
||||
sendMessageResponse({
|
||||
subject: "bridge:/startDiscovery"
|
||||
});
|
||||
|
||||
apiConfig.receiverListener(receiverList.length
|
||||
? ReceiverAvailability.AVAILABLE
|
||||
: ReceiverAvailability.UNAVAILABLE);
|
||||
|
||||
successCallback();
|
||||
}
|
||||
|
||||
, logMessage: (message: string): void => {
|
||||
/* tslint:disable-next-line:no-console */
|
||||
console.log("CAST MSG:", message);
|
||||
}
|
||||
|
||||
, precache: (data: string): void => {
|
||||
console.info("STUB :: cast.precache");
|
||||
}
|
||||
|
||||
, removeReceiverActionListener: (
|
||||
listener: ReceiverActionListener): void => {
|
||||
|
||||
receiverListeners.delete(listener);
|
||||
}
|
||||
|
||||
, requestSession: (
|
||||
successCallback: RequestSessionSuccessCallback
|
||||
, errorCallback: ErrorCallback
|
||||
, sessionRequest: SessionRequest
|
||||
= apiConfig.sessionRequest): void => {
|
||||
|
||||
console.info("fx_cast (Debug): cast.requestSession");
|
||||
|
||||
// Called before initialization
|
||||
if (!apiConfig) {
|
||||
errorCallback(new Error_(ErrorCode.API_NOT_INITIALIZED));
|
||||
return;
|
||||
}
|
||||
|
||||
// Already requesting session
|
||||
if (sessionRequestInProgress) {
|
||||
errorCallback(new Error_(ErrorCode.INVALID_PARAMETER
|
||||
, "Session request already in progress."));
|
||||
return;
|
||||
}
|
||||
|
||||
// No available receivers
|
||||
if (!receiverList.length) {
|
||||
errorCallback(new Error_(ErrorCode.RECEIVER_UNAVAILABLE));
|
||||
return;
|
||||
}
|
||||
|
||||
sessionRequestInProgress = true;
|
||||
|
||||
sessionSuccessCallback = successCallback;
|
||||
sessionErrorCallback = errorCallback;
|
||||
|
||||
// Open destination chooser
|
||||
sendMessageResponse({
|
||||
subject: "main:/openPopup"
|
||||
});
|
||||
}
|
||||
|
||||
, requestSessionById: (sessionId: string): void => {
|
||||
console.info("STUB :: cast.requestSessionById");
|
||||
}
|
||||
|
||||
, setCustomReceivers: (
|
||||
receivers: Receiver[]
|
||||
, successCallback: SuccessCallback
|
||||
, errorCallback: ErrorCallback): void => {
|
||||
|
||||
console.info("STUB :: cast.setCustomReceivers");
|
||||
}
|
||||
|
||||
, setPageContext: (win: Window): void => {
|
||||
console.info("STUB :: cast.setPageContext");
|
||||
}
|
||||
|
||||
, setReceiverDisplayStatus: (sessionId: string): void => {
|
||||
console.info("STUB :: cast.setReceiverDisplayStatus");
|
||||
}
|
||||
|
||||
, unescape: (escaped: string): string => {
|
||||
return unescape(escaped);
|
||||
}
|
||||
};
|
||||
|
||||
export let isAvailable = false;
|
||||
export const timeout = new Timeout();
|
||||
export const VERSION = [1, 2];
|
||||
|
||||
export function addReceiverActionListener (
|
||||
listener: ReceiverActionListener): void {
|
||||
|
||||
console.info("fx_cast (Debug): cast.addReceiverActionListener");
|
||||
receiverListeners.add(listener);
|
||||
};
|
||||
|
||||
export function initialize (
|
||||
newApiConfig: ApiConfig
|
||||
, successCallback: SuccessCallback
|
||||
, errorCallback: ErrorCallback): void {
|
||||
|
||||
console.info("fx_cast (Debug): cast.initialize");
|
||||
|
||||
// Already initialized
|
||||
if (apiConfig) {
|
||||
errorCallback(new Error_(ErrorCode.INVALID_PARAMETER));
|
||||
return;
|
||||
}
|
||||
|
||||
apiConfig = newApiConfig;
|
||||
|
||||
sendMessageResponse({
|
||||
subject: "bridge:/startDiscovery"
|
||||
});
|
||||
|
||||
apiConfig.receiverListener(receiverList.length
|
||||
? ReceiverAvailability.AVAILABLE
|
||||
: ReceiverAvailability.UNAVAILABLE);
|
||||
|
||||
successCallback();
|
||||
};
|
||||
|
||||
export function logMessage (message: string): void {
|
||||
/* tslint:disable-next-line:no-console */
|
||||
console.log("CAST MSG:", message);
|
||||
};
|
||||
|
||||
export function precache (data: string): void {
|
||||
console.info("STUB :: cast.precache");
|
||||
};
|
||||
|
||||
export function removeReceiverActionListener (
|
||||
listener: ReceiverActionListener): void {
|
||||
|
||||
receiverListeners.delete(listener);
|
||||
};
|
||||
|
||||
export function requestSession (
|
||||
successCallback: RequestSessionSuccessCallback
|
||||
, errorCallback: ErrorCallback
|
||||
, sessionRequest: SessionRequest
|
||||
= apiConfig.sessionRequest): void {
|
||||
|
||||
console.info("fx_cast (Debug): cast.requestSession");
|
||||
|
||||
// Called before initialization
|
||||
if (!apiConfig) {
|
||||
errorCallback(new Error_(ErrorCode.API_NOT_INITIALIZED));
|
||||
return;
|
||||
}
|
||||
|
||||
// Already requesting session
|
||||
if (sessionRequestInProgress) {
|
||||
errorCallback(new Error_(ErrorCode.INVALID_PARAMETER
|
||||
, "Session request already in progress."));
|
||||
return;
|
||||
}
|
||||
|
||||
// No available receivers
|
||||
if (!receiverList.length) {
|
||||
errorCallback(new Error_(ErrorCode.RECEIVER_UNAVAILABLE));
|
||||
return;
|
||||
}
|
||||
|
||||
sessionRequestInProgress = true;
|
||||
|
||||
sessionSuccessCallback = successCallback;
|
||||
sessionErrorCallback = errorCallback;
|
||||
|
||||
// Open destination chooser
|
||||
sendMessageResponse({
|
||||
subject: "main:/openPopup"
|
||||
});
|
||||
};
|
||||
|
||||
export function requestSessionById (sessionId: string): void {
|
||||
console.info("STUB :: cast.requestSessionById");
|
||||
};
|
||||
|
||||
export function setCustomReceivers (
|
||||
receivers: Receiver[]
|
||||
, successCallback: SuccessCallback
|
||||
, errorCallback: ErrorCallback): void {
|
||||
|
||||
console.info("STUB :: cast.setCustomReceivers");
|
||||
};
|
||||
|
||||
export function setPageContext (win: Window): void {
|
||||
console.info("STUB :: cast.setPageContext");
|
||||
};
|
||||
|
||||
export function setReceiverDisplayStatus (sessionId: string): void {
|
||||
console.info("STUB :: cast.setReceiverDisplayStatus");
|
||||
};
|
||||
|
||||
export function unescape (escaped: string): string {
|
||||
return unescape(escaped);
|
||||
};
|
||||
|
||||
|
||||
onMessage(message => {
|
||||
switch (message.subject) {
|
||||
case "shim:/initialized": {
|
||||
isAvailable = true;
|
||||
break;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cast destination found (serviceUp). Set the API availability
|
||||
* property and call the page event function (__onGCastApiAvailable).
|
||||
|
||||
@@ -40,7 +40,7 @@ import { IdleReason
|
||||
, TrackType } from "./enums";
|
||||
|
||||
|
||||
export default {
|
||||
export {
|
||||
// Enums
|
||||
IdleReason, MediaCommand, MetadataType, PlayerState
|
||||
, RepeatMode, ResumeState, StreamType, TextTrackEdgeType
|
||||
@@ -55,18 +55,18 @@ export default {
|
||||
, QueueReorderItemsRequest, QueueSetPropertiesRequest, QueueUpdateItemsRequest
|
||||
, SeekRequest, StopRequest, TextTrackStyle, Track
|
||||
, TvShowMediaMetadata, VolumeRequest
|
||||
|
||||
, timeout: {
|
||||
editTracksInfo: 0
|
||||
, getStatus: 0
|
||||
, load: 0
|
||||
, pause: 0
|
||||
, play: 0
|
||||
, queue: 0
|
||||
, seek: 0
|
||||
, setVolume: 0
|
||||
, stop: 0
|
||||
}
|
||||
|
||||
, DEFAULT_MEDIA_RECEIVER_APP_ID: "CC1AD845"
|
||||
};
|
||||
|
||||
export const timeout = {
|
||||
editTracksInfo: 0
|
||||
, getStatus: 0
|
||||
, load: 0
|
||||
, pause: 0
|
||||
, play: 0
|
||||
, queue: 0
|
||||
, seek: 0
|
||||
, setVolume: 0
|
||||
, stop: 0
|
||||
};
|
||||
|
||||
export const DEFAULT_MEDIA_RECEIVER_APP_ID = "CC1AD845";
|
||||
|
||||
Reference in New Issue
Block a user