mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-11 01:59:58 +00:00
Implement auto join policy handling
This commit is contained in:
@@ -16,7 +16,7 @@ export default {
|
||||
"CA5E8412": { name: "Netflix", matches: "https://www.netflix.com/*" },
|
||||
"233637DE": { name: "YouTube", matches: "https://www.youtube.com/*" },
|
||||
"CC32E753": { name: "Spotify", matches: "https://open.spotify.com/*" },
|
||||
"5E81F6DB": {
|
||||
"2BA92214": {
|
||||
name: "BBC iPlayer",
|
||||
matches: "https://www.bbc.co.uk/iplayer*"
|
||||
},
|
||||
|
||||
@@ -12,8 +12,8 @@ import type {
|
||||
SenderMessage
|
||||
} from "./types";
|
||||
|
||||
import { SessionStatus } from "./enums";
|
||||
import type {
|
||||
import { ErrorCode, SessionStatus } from "./enums";
|
||||
import {
|
||||
Error as CastError,
|
||||
Image,
|
||||
Receiver,
|
||||
@@ -268,6 +268,11 @@ export default class Session {
|
||||
successCallback?: (media: Media) => void,
|
||||
errorCallback?: (err: CastError) => void
|
||||
) {
|
||||
if (!loadRequest) {
|
||||
errorCallback?.(new CastError(ErrorCode.INVALID_PARAMETER));
|
||||
return;
|
||||
}
|
||||
|
||||
this.#loadMediaSuccessCallback = successCallback;
|
||||
this.#loadMediaErrorCallback = errorCallback;
|
||||
|
||||
|
||||
@@ -222,7 +222,7 @@ export default class {
|
||||
case "cast:sessionStopped": {
|
||||
const { sessionId } = message.data;
|
||||
const session = this.#sessions.get(sessionId);
|
||||
if (session) {
|
||||
if (session?.status === SessionStatus.CONNECTED) {
|
||||
session.status = SessionStatus.STOPPED;
|
||||
|
||||
const updateListeners = SessionUpdateListeners.get(session);
|
||||
@@ -349,7 +349,7 @@ export default class {
|
||||
});
|
||||
}
|
||||
|
||||
requestSessionById(_sessionId: string): void {
|
||||
requestSessionById(_sessionId: string) {
|
||||
logger.info("STUB :: cast.requestSessionById");
|
||||
}
|
||||
|
||||
@@ -357,15 +357,15 @@ export default class {
|
||||
_receivers: Receiver[],
|
||||
_successCallback?: () => void,
|
||||
_errorCallback?: (err: CastError) => void
|
||||
): void {
|
||||
) {
|
||||
logger.info("STUB :: cast.setCustomReceivers");
|
||||
}
|
||||
|
||||
setPageContext(_win: Window): void {
|
||||
setPageContext(_win: Window) {
|
||||
logger.info("STUB :: cast.setPageContext");
|
||||
}
|
||||
|
||||
setReceiverDisplayStatus(_sessionId: string): void {
|
||||
setReceiverDisplayStatus(_sessionId: string) {
|
||||
logger.info("STUB :: cast.setReceiverDisplayStatus");
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import options from "../../lib/options";
|
||||
import type { Message } from "../../messaging";
|
||||
|
||||
// Cast types
|
||||
import type { ReceiverAvailability } from "../sdk/enums";
|
||||
import { AutoJoinPolicy, ReceiverAvailability } from "../sdk/enums";
|
||||
import type Session from "../sdk/Session";
|
||||
import type Media from "../sdk/media/Media";
|
||||
|
||||
@@ -88,7 +88,8 @@ export default class MediaSender {
|
||||
capabilities
|
||||
),
|
||||
this.sessionListener.bind(this),
|
||||
this.receiverListener.bind(this)
|
||||
this.receiverListener.bind(this),
|
||||
AutoJoinPolicy.PAGE_SCOPED
|
||||
),
|
||||
undefined,
|
||||
err => {
|
||||
|
||||
@@ -3,7 +3,7 @@ import { Logger } from "../../lib/logger";
|
||||
|
||||
import type { ReceiverDevice } from "../../types";
|
||||
|
||||
import type { ReceiverAvailability } from "../sdk/enums";
|
||||
import { AutoJoinPolicy, ReceiverAvailability } from "../sdk/enums";
|
||||
import type Session from "../sdk/Session";
|
||||
|
||||
import cast, { ensureInit } from "../export";
|
||||
@@ -79,7 +79,8 @@ export default class MirroringSender {
|
||||
const apiConfig = new cast.ApiConfig(
|
||||
sessionRequest,
|
||||
this.sessionListener,
|
||||
this.receiverListener
|
||||
this.receiverListener,
|
||||
AutoJoinPolicy.PAGE_SCOPED
|
||||
);
|
||||
|
||||
cast.initialize(apiConfig);
|
||||
|
||||
Reference in New Issue
Block a user