mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-11 01:59:58 +00:00
Replace StatusManager
This commit is contained in:
@@ -8,7 +8,7 @@ import options from "../../lib/options";
|
||||
|
||||
import { TypedEventTarget } from "../../lib/TypedEventTarget";
|
||||
import { getWindowCenteredProps } from "../../lib/utils";
|
||||
import { Receiver } from "../../types";
|
||||
import { ReceiverDevice } from "../../types";
|
||||
|
||||
import ReceiverSelector, {
|
||||
ReceiverSelection
|
||||
@@ -34,7 +34,7 @@ export default class NativeReceiverSelector extends ReceiverSelector {
|
||||
}
|
||||
|
||||
public async open(
|
||||
receivers: Receiver[]
|
||||
receivers: ReceiverDevice[]
|
||||
, defaultMediaType: ReceiverSelectorMediaType
|
||||
, availableMediaTypes: ReceiverSelectorMediaType
|
||||
, appId?: string): Promise<void> {
|
||||
|
||||
@@ -9,7 +9,7 @@ import options from "../../lib/options";
|
||||
|
||||
import { TypedEventTarget } from "../../lib/TypedEventTarget";
|
||||
import { getWindowCenteredProps, WindowCenteredProps } from "../../lib/utils";
|
||||
import { Receiver } from "../../types";
|
||||
import { ReceiverDevice } from "../../types";
|
||||
|
||||
|
||||
const POPUP_URL = browser.runtime.getURL("ui/popup/index.html");
|
||||
@@ -20,7 +20,7 @@ export default class PopupReceiverSelector extends ReceiverSelector {
|
||||
private messagePort?: Port;
|
||||
private messagePortDisconnected?: boolean;
|
||||
|
||||
private receivers?: Receiver[];
|
||||
private receivers?: ReceiverDevice[];
|
||||
private defaultMediaType?: ReceiverSelectorMediaType;
|
||||
private availableMediaTypes?: ReceiverSelectorMediaType;
|
||||
|
||||
@@ -53,7 +53,7 @@ export default class PopupReceiverSelector extends ReceiverSelector {
|
||||
}
|
||||
|
||||
public async open(
|
||||
receivers: Receiver[]
|
||||
receivers: ReceiverDevice[]
|
||||
, defaultMediaType: ReceiverSelectorMediaType
|
||||
, availableMediaTypes: ReceiverSelectorMediaType
|
||||
, appId?: string): Promise<void> {
|
||||
@@ -115,7 +115,7 @@ export default class PopupReceiverSelector extends ReceiverSelector {
|
||||
}
|
||||
}
|
||||
|
||||
public update(receivers: Receiver[]) {
|
||||
public update(receivers: ReceiverDevice[]) {
|
||||
this.receivers = receivers;
|
||||
this.messagePort?.postMessage({
|
||||
subject: "popup:update"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
"use strict";
|
||||
|
||||
import { TypedEventTarget } from "../../lib/TypedEventTarget";
|
||||
import { Receiver } from "../../types";
|
||||
import { ReceiverDevice } from "../../types";
|
||||
|
||||
|
||||
export enum ReceiverSelectorMediaType {
|
||||
@@ -18,13 +18,13 @@ export enum ReceiverSelectionActionType {
|
||||
|
||||
export interface ReceiverSelectionCast {
|
||||
actionType: ReceiverSelectionActionType.Cast;
|
||||
receiver: Receiver;
|
||||
receiver: ReceiverDevice;
|
||||
mediaType: ReceiverSelectorMediaType;
|
||||
filePath?: string;
|
||||
}
|
||||
export interface ReceiverSelectionStop {
|
||||
actionType: ReceiverSelectionActionType.Stop;
|
||||
receiver: Receiver;
|
||||
receiver: ReceiverDevice;
|
||||
}
|
||||
|
||||
export type ReceiverSelection = ReceiverSelectionCast | ReceiverSelectionStop;
|
||||
@@ -43,12 +43,12 @@ export default abstract class ReceiverSelector
|
||||
abstract readonly isOpen: boolean;
|
||||
|
||||
abstract open (
|
||||
receivers: Receiver[]
|
||||
receivers: ReceiverDevice[]
|
||||
, defaultMediaType: ReceiverSelectorMediaType
|
||||
, availableMediaTypes: ReceiverSelectorMediaType
|
||||
, appId?: string): void;
|
||||
|
||||
abstract update (receivers: Receiver[]): void;
|
||||
abstract update (receivers: ReceiverDevice[]): void;
|
||||
|
||||
abstract close (): void;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import options from "../../lib/options";
|
||||
import logger from "../../lib/logger";
|
||||
|
||||
import ShimManager from "../ShimManager";
|
||||
import StatusManager from "../StatusManager";
|
||||
import receiverDevices from "../receiverDevices";
|
||||
|
||||
import { getMediaTypesForPageUrl } from "../../lib/utils";
|
||||
|
||||
@@ -120,12 +120,15 @@ async function getSelection(
|
||||
|
||||
|
||||
function onReceiverChange() {
|
||||
sharedSelector.update(Array.from(StatusManager.getReceivers()));
|
||||
sharedSelector.update(receiverDevices.getDevices());
|
||||
}
|
||||
|
||||
StatusManager.addEventListener("serviceUp", onReceiverChange);
|
||||
StatusManager.addEventListener("serviceDown", onReceiverChange);
|
||||
StatusManager.addEventListener("statusUpdate", onReceiverChange);
|
||||
receiverDevices.addEventListener(
|
||||
"receiverDeviceUp", onReceiverChange);
|
||||
receiverDevices.addEventListener(
|
||||
"receiverDeviceDown", onReceiverChange);
|
||||
receiverDevices.addEventListener(
|
||||
"receiverDeviceUpdated", onReceiverChange);
|
||||
|
||||
|
||||
let onSelected: any;
|
||||
@@ -156,9 +159,12 @@ async function getSelection(
|
||||
sharedSelector.removeEventListener("error", onError);
|
||||
sharedSelector.removeEventListener("stop", onStop);
|
||||
|
||||
StatusManager.removeEventListener("serviceUp", onReceiverChange);
|
||||
StatusManager.removeEventListener("serviceDown", onReceiverChange);
|
||||
StatusManager.removeEventListener("statusUpdate", onReceiverChange);
|
||||
receiverDevices.removeEventListener(
|
||||
"receiverDeviceUp", onReceiverChange);
|
||||
receiverDevices.removeEventListener(
|
||||
"receiverDeviceDown", onReceiverChange);
|
||||
receiverDevices.removeEventListener(
|
||||
"receiverDeviceUpdated", onReceiverChange);
|
||||
}
|
||||
|
||||
sharedSelector.addEventListener("selected"
|
||||
@@ -191,10 +197,9 @@ async function getSelection(
|
||||
sharedSelector.addEventListener("stop"
|
||||
, storeListener("stop", async ev => {
|
||||
|
||||
logger.info("Stopped receiver app", ev.detail);
|
||||
logger.info("Stopping receiver app...", ev.detail);
|
||||
|
||||
await StatusManager.init();
|
||||
await StatusManager.stopReceiverApp(ev.detail.receiver);
|
||||
receiverDevices.stopReceiverApp(ev.detail.receiver.id);
|
||||
|
||||
resolve({
|
||||
actionType: ReceiverSelectionActionType.Stop
|
||||
@@ -205,10 +210,10 @@ async function getSelection(
|
||||
|
||||
|
||||
// Ensure status manager is initialized
|
||||
await StatusManager.init();
|
||||
await receiverDevices.init();
|
||||
|
||||
sharedSelector.open(
|
||||
Array.from(StatusManager.getReceivers())
|
||||
receiverDevices.getDevices()
|
||||
, defaultMediaType
|
||||
, availableMediaTypes
|
||||
, currentShim?.appId);
|
||||
|
||||
Reference in New Issue
Block a user