mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-11 01:59:58 +00:00
Remove remaining native receiver selector code
This commit is contained in:
@@ -1,88 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
|
|
||||||
import child_process from "child_process";
|
|
||||||
import path from "path";
|
|
||||||
|
|
||||||
import { sendMessage } from "../lib/nativeMessaging";
|
|
||||||
|
|
||||||
function fatal(message: string) {
|
|
||||||
console.error(message);
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
let selectorApp: child_process.ChildProcess | undefined;
|
|
||||||
let selectorAppOpen = false;
|
|
||||||
|
|
||||||
export function startReceiverSelector(data: string) {
|
|
||||||
if (process.platform !== "darwin") {
|
|
||||||
fatal("Invalid platform for native receiver selector.");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!data) {
|
|
||||||
fatal("Missing native selector data");
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
JSON.parse(data);
|
|
||||||
} catch (err) {
|
|
||||||
fatal("Invalid native selector data.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (selectorApp && selectorAppOpen) {
|
|
||||||
selectorApp.kill();
|
|
||||||
selectorAppOpen = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
const selectorPath = path.join(
|
|
||||||
process.cwd(),
|
|
||||||
"fx_cast_selector.app/Contents/MacOS/fx_cast_selector"
|
|
||||||
);
|
|
||||||
|
|
||||||
selectorApp = child_process.spawn(selectorPath, [data]);
|
|
||||||
selectorAppOpen = true;
|
|
||||||
|
|
||||||
if (selectorApp.stdout) {
|
|
||||||
selectorApp.stdout.setEncoding("utf-8");
|
|
||||||
selectorApp.stdout.on("data", data => {
|
|
||||||
const jsonData = JSON.parse(data);
|
|
||||||
|
|
||||||
if (!jsonData.mediaType) {
|
|
||||||
sendMessage({
|
|
||||||
subject: "main:receiverSelector/stopped",
|
|
||||||
data: jsonData
|
|
||||||
});
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
sendMessage({
|
|
||||||
subject: "main:receiverSelector/selected",
|
|
||||||
data: jsonData
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
selectorApp.on("error", err => {
|
|
||||||
sendMessage({
|
|
||||||
subject: "main:receiverSelector/error",
|
|
||||||
data: err.message
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
selectorApp.on("close", () => {
|
|
||||||
if (selectorAppOpen) {
|
|
||||||
selectorAppOpen = false;
|
|
||||||
|
|
||||||
sendMessage({
|
|
||||||
subject: "main:receiverSelector/cancelled"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export function stopReceiverSelector() {
|
|
||||||
if (!selectorApp?.killed) {
|
|
||||||
selectorApp?.kill();
|
|
||||||
selectorAppOpen = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -6,17 +6,12 @@ import { Message } from "./messaging";
|
|||||||
import { handleCastMessage } from "./components/cast";
|
import { handleCastMessage } from "./components/cast";
|
||||||
import { startDiscovery, stopDiscovery } from "./components/discovery";
|
import { startDiscovery, stopDiscovery } from "./components/discovery";
|
||||||
import { startMediaServer, stopMediaServer } from "./components/mediaServer";
|
import { startMediaServer, stopMediaServer } from "./components/mediaServer";
|
||||||
import {
|
|
||||||
startReceiverSelector,
|
|
||||||
stopReceiverSelector
|
|
||||||
} from "./components/receiverSelector";
|
|
||||||
|
|
||||||
import { __applicationName, __applicationVersion } from "../../package.json";
|
import { __applicationName, __applicationVersion } from "../../package.json";
|
||||||
|
|
||||||
process.on("SIGTERM", () => {
|
process.on("SIGTERM", () => {
|
||||||
stopDiscovery();
|
stopDiscovery();
|
||||||
stopMediaServer();
|
stopMediaServer();
|
||||||
stopReceiverSelector();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -39,16 +34,6 @@ decodeTransform.on("data", (message: Message) => {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Receiver selector
|
|
||||||
case "bridge:openReceiverSelector": {
|
|
||||||
startReceiverSelector(message.data);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case "bridge:closeReceiverSelector": {
|
|
||||||
stopReceiverSelector();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Media server
|
// Media server
|
||||||
case "bridge:startMediaServer": {
|
case "bridge:startMediaServer": {
|
||||||
const { filePath, port } = message.data;
|
const { filePath, port } = message.data;
|
||||||
|
|||||||
@@ -9,11 +9,7 @@ import {
|
|||||||
Volume
|
Volume
|
||||||
} from "./components/cast/types";
|
} from "./components/cast/types";
|
||||||
|
|
||||||
import {
|
import { ReceiverDevice } from "./types";
|
||||||
ReceiverDevice,
|
|
||||||
ReceiverSelectionCast,
|
|
||||||
ReceiverSelectionStop
|
|
||||||
} from "./types";
|
|
||||||
|
|
||||||
interface CastSessionUpdated {
|
interface CastSessionUpdated {
|
||||||
sessionId: string;
|
sessionId: string;
|
||||||
@@ -69,23 +65,17 @@ type MessageDefinitions = {
|
|||||||
};
|
};
|
||||||
"bridge:stopCastApp": { receiverDevice: ReceiverDevice };
|
"bridge:stopCastApp": { receiverDevice: ReceiverDevice };
|
||||||
|
|
||||||
// Bridge messages
|
|
||||||
"main:receiverSelector/selected": ReceiverSelectionCast;
|
|
||||||
"main:receiverSelector/stopped": ReceiverSelectionStop;
|
|
||||||
"main:receiverSelector/cancelled": {};
|
|
||||||
"main:receiverSelector/error": string;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* getInfo uses the old :/ form for compat with old bridge
|
* getInfo uses the old :/ form for compat with old bridge
|
||||||
* versions.
|
* versions.
|
||||||
*/
|
*/
|
||||||
"bridge:getInfo": string;
|
"bridge:getInfo": string;
|
||||||
"bridge:/getInfo": string;
|
"bridge:/getInfo": string;
|
||||||
|
|
||||||
"bridge:startDiscovery": {
|
"bridge:startDiscovery": {
|
||||||
shouldWatchStatus: boolean;
|
shouldWatchStatus: boolean;
|
||||||
};
|
};
|
||||||
"bridge:openReceiverSelector": string;
|
|
||||||
"bridge:closeReceiverSelector": {};
|
|
||||||
"bridge:startMediaServer": {
|
"bridge:startMediaServer": {
|
||||||
filePath: string;
|
filePath: string;
|
||||||
port: number;
|
port: number;
|
||||||
@@ -98,13 +88,8 @@ type MessageDefinitions = {
|
|||||||
};
|
};
|
||||||
"mediaCast:mediaServerStopped": {};
|
"mediaCast:mediaServerStopped": {};
|
||||||
"mediaCast:mediaServerError": {};
|
"mediaCast:mediaServerError": {};
|
||||||
"main:serviceUp": ReceiverDevice;
|
|
||||||
"main:serviceDown": { id: string };
|
"main:receiverDeviceUp": { deviceId: string; deviceInfo: ReceiverDevice };
|
||||||
"main:updateReceiverStatus": {
|
|
||||||
id: string;
|
|
||||||
status: ReceiverStatus;
|
|
||||||
};
|
|
||||||
"main:receiverDeviceUp": { deviceId: string, deviceInfo: ReceiverDevice };
|
|
||||||
"main:receiverDeviceDown": { deviceId: string };
|
"main:receiverDeviceDown": { deviceId: string };
|
||||||
"main:receiverDeviceStatusUpdated": {
|
"main:receiverDeviceStatusUpdated": {
|
||||||
deviceId: string;
|
deviceId: string;
|
||||||
|
|||||||
@@ -2,30 +2,6 @@
|
|||||||
|
|
||||||
import { ReceiverStatus } from "./components/cast/types";
|
import { ReceiverStatus } from "./components/cast/types";
|
||||||
|
|
||||||
export enum ReceiverSelectorMediaType {
|
|
||||||
App = 1,
|
|
||||||
Tab = 2,
|
|
||||||
Screen = 4,
|
|
||||||
File = 8
|
|
||||||
}
|
|
||||||
|
|
||||||
export enum ReceiverSelectionActionType {
|
|
||||||
Cast = 1,
|
|
||||||
Stop = 2
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ReceiverSelectionCast {
|
|
||||||
actionType: ReceiverSelectionActionType.Cast;
|
|
||||||
receiver: ReceiverDevice;
|
|
||||||
mediaType: ReceiverSelectorMediaType;
|
|
||||||
filePath?: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ReceiverSelectionStop {
|
|
||||||
actionType: ReceiverSelectionActionType.Stop;
|
|
||||||
receiver: ReceiverDevice;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ReceiverDevice {
|
export interface ReceiverDevice {
|
||||||
host: string;
|
host: string;
|
||||||
friendlyName: string;
|
friendlyName: string;
|
||||||
|
|||||||
@@ -276,18 +276,6 @@
|
|||||||
"message": "Auswahloberfläche für Empfängergeräte."
|
"message": "Auswahloberfläche für Empfängergeräte."
|
||||||
, "description": "Options page receiver selector category description."
|
, "description": "Options page receiver selector category description."
|
||||||
}
|
}
|
||||||
, "optionsReceiverSelectorType": {
|
|
||||||
"message": "Art:"
|
|
||||||
, "description": "Receiver selector type option label."
|
|
||||||
}
|
|
||||||
, "optionsReceiverSelectorTypeBrowser": {
|
|
||||||
"message": "Browser"
|
|
||||||
, "description": "Receiver selector type browser radio option label."
|
|
||||||
}
|
|
||||||
, "optionsReceiverSelectorTypeNative": {
|
|
||||||
"message": "Nativ"
|
|
||||||
, "description": "Receiver selector type native radio option label."
|
|
||||||
}
|
|
||||||
, "optionsReceiverSelectorWaitForConnection": {
|
, "optionsReceiverSelectorWaitForConnection": {
|
||||||
"message": "Auf Verbindung warten"
|
"message": "Auf Verbindung warten"
|
||||||
, "description": "Receiver selector wait for connection option checkbox label."
|
, "description": "Receiver selector wait for connection option checkbox label."
|
||||||
|
|||||||
@@ -281,18 +281,6 @@
|
|||||||
"message": "Receiver device selection interface."
|
"message": "Receiver device selection interface."
|
||||||
, "description": "Options page receiver selector category description."
|
, "description": "Options page receiver selector category description."
|
||||||
}
|
}
|
||||||
, "optionsReceiverSelectorType": {
|
|
||||||
"message": "Type:"
|
|
||||||
, "description": "Receiver selector type option label."
|
|
||||||
}
|
|
||||||
, "optionsReceiverSelectorTypeBrowser": {
|
|
||||||
"message": "Browser"
|
|
||||||
, "description": "Receiver selector type browser radio option label."
|
|
||||||
}
|
|
||||||
, "optionsReceiverSelectorTypeNative": {
|
|
||||||
"message": "Native"
|
|
||||||
, "description": "Receiver selector type native radio option label."
|
|
||||||
}
|
|
||||||
, "optionsReceiverSelectorWaitForConnection": {
|
, "optionsReceiverSelectorWaitForConnection": {
|
||||||
"message": "Wait for connection"
|
"message": "Wait for connection"
|
||||||
, "description": "Receiver selector wait for connection option checkbox label."
|
, "description": "Receiver selector wait for connection option checkbox label."
|
||||||
|
|||||||
@@ -280,18 +280,6 @@
|
|||||||
"message": "Interfaz de selección del dispositivo receptor."
|
"message": "Interfaz de selección del dispositivo receptor."
|
||||||
, "description": "Options page receiver selector category description."
|
, "description": "Options page receiver selector category description."
|
||||||
}
|
}
|
||||||
, "optionsReceiverSelectorType": {
|
|
||||||
"message": "Tipo:"
|
|
||||||
, "description": "Receiver selector type option label."
|
|
||||||
}
|
|
||||||
, "optionsReceiverSelectorTypeBrowser": {
|
|
||||||
"message": "Navegador"
|
|
||||||
, "description": "Receiver selector type browser radio option label."
|
|
||||||
}
|
|
||||||
, "optionsReceiverSelectorTypeNative": {
|
|
||||||
"message": "Nativo"
|
|
||||||
, "description": "Receiver selector type native radio option label."
|
|
||||||
}
|
|
||||||
, "optionsReceiverSelectorWaitForConnection": {
|
, "optionsReceiverSelectorWaitForConnection": {
|
||||||
"message": "Esperar conexión"
|
"message": "Esperar conexión"
|
||||||
, "description": "Receiver selector wait for connection option checkbox label."
|
, "description": "Receiver selector wait for connection option checkbox label."
|
||||||
|
|||||||
@@ -257,18 +257,6 @@
|
|||||||
"message": "Ontvangstapparaat selectie interface",
|
"message": "Ontvangstapparaat selectie interface",
|
||||||
"description": "Options page receiver selector category description."
|
"description": "Options page receiver selector category description."
|
||||||
},
|
},
|
||||||
"optionsReceiverSelectorType": {
|
|
||||||
"message": "Type:",
|
|
||||||
"description": "Receiver selector type option label."
|
|
||||||
},
|
|
||||||
"optionsReceiverSelectorTypeBrowser": {
|
|
||||||
"message": "Browser",
|
|
||||||
"description": "Receiver selector type browser radio option label."
|
|
||||||
},
|
|
||||||
"optionsReceiverSelectorTypeNative": {
|
|
||||||
"message": "Ingebouwd",
|
|
||||||
"description": "Receiver selector type native radio option label."
|
|
||||||
},
|
|
||||||
"optionsReceiverSelectorWaitForConnection": {
|
"optionsReceiverSelectorWaitForConnection": {
|
||||||
"message": "Wachten op verbinding",
|
"message": "Wachten op verbinding",
|
||||||
"description": "Receiver selector wait for connection option checkbox label."
|
"description": "Receiver selector wait for connection option checkbox label."
|
||||||
|
|||||||
@@ -280,18 +280,6 @@
|
|||||||
"message": "Grensesnitt for valg av mottager"
|
"message": "Grensesnitt for valg av mottager"
|
||||||
, "description": "Options page receiver selector category description."
|
, "description": "Options page receiver selector category description."
|
||||||
}
|
}
|
||||||
, "optionsReceiverSelectorType": {
|
|
||||||
"message": "Type:"
|
|
||||||
, "description": "Receiver selector type option label."
|
|
||||||
}
|
|
||||||
, "optionsReceiverSelectorTypeBrowser": {
|
|
||||||
"message": "Nettleser"
|
|
||||||
, "description": "Receiver selector type browser radio option label."
|
|
||||||
}
|
|
||||||
, "optionsReceiverSelectorTypeNative": {
|
|
||||||
"message": "Native"
|
|
||||||
, "description": "Receiver selector type native radio option label."
|
|
||||||
}
|
|
||||||
, "optionsReceiverSelectorWaitForConnection": {
|
, "optionsReceiverSelectorWaitForConnection": {
|
||||||
"message": "Vent på tilkobling"
|
"message": "Vent på tilkobling"
|
||||||
, "description": "Receiver selector wait for connection option checkbox label."
|
, "description": "Receiver selector wait for connection option checkbox label."
|
||||||
|
|||||||
@@ -2,11 +2,6 @@
|
|||||||
|
|
||||||
import { ReceiverDevice } from "../../types";
|
import { ReceiverDevice } from "../../types";
|
||||||
|
|
||||||
export enum ReceiverSelectorType {
|
|
||||||
Popup,
|
|
||||||
Native
|
|
||||||
}
|
|
||||||
|
|
||||||
export enum ReceiverSelectorMediaType {
|
export enum ReceiverSelectorMediaType {
|
||||||
None = 0,
|
None = 0,
|
||||||
App = 1,
|
App = 1,
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
import { ReceiverSelectorType } from "./background/receiverSelector";
|
|
||||||
import { Options } from "./lib/options";
|
import { Options } from "./lib/options";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import defaultOptions from "../defaultOptions";
|
|||||||
|
|
||||||
import logger from "./logger";
|
import logger from "./logger";
|
||||||
|
|
||||||
import { ReceiverSelectorType } from "../background/receiverSelector";
|
|
||||||
import { TypedEventTarget } from "./TypedEventTarget";
|
import { TypedEventTarget } from "./TypedEventTarget";
|
||||||
import { TypedStorageArea } from "./TypedStorageArea";
|
import { TypedStorageArea } from "./TypedStorageArea";
|
||||||
|
|
||||||
|
|||||||
@@ -99,23 +99,17 @@ type AppMessageDefinitions = {
|
|||||||
};
|
};
|
||||||
"bridge:stopCastApp": { receiverDevice: ReceiverDevice };
|
"bridge:stopCastApp": { receiverDevice: ReceiverDevice };
|
||||||
|
|
||||||
// Bridge messages
|
|
||||||
"main:receiverSelector/selected": ReceiverSelectionCast;
|
|
||||||
"main:receiverSelector/stopped": ReceiverSelectionStop;
|
|
||||||
"main:receiverSelector/cancelled": {};
|
|
||||||
"main:receiverSelector/error": string;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* getInfo uses the old :/ form for compat with old bridge
|
* getInfo uses the old :/ form for compat with old bridge
|
||||||
* versions.
|
* versions.
|
||||||
*/
|
*/
|
||||||
"bridge:getInfo": string;
|
"bridge:getInfo": string;
|
||||||
"bridge:/getInfo": string;
|
"bridge:/getInfo": string;
|
||||||
|
|
||||||
"bridge:startDiscovery": {
|
"bridge:startDiscovery": {
|
||||||
shouldWatchStatus: boolean;
|
shouldWatchStatus: boolean;
|
||||||
};
|
};
|
||||||
"bridge:openReceiverSelector": string;
|
|
||||||
"bridge:closeReceiverSelector": {};
|
|
||||||
"bridge:startMediaServer": {
|
"bridge:startMediaServer": {
|
||||||
filePath: string;
|
filePath: string;
|
||||||
port: number;
|
port: number;
|
||||||
|
|||||||
Reference in New Issue
Block a user