Replace StatusManager

This commit is contained in:
hensm
2021-04-28 06:21:50 +01:00
parent c1172410f9
commit f44d142631
22 changed files with 295 additions and 286 deletions

View File

@@ -4,7 +4,7 @@ import castv2 from "castv2";
import Session, { NS_CONNECTION, NS_RECEIVER } from "./Session";
import Media from "./Media";
import { Receiver } from "../../types";
import { ReceiverDevice } from "../../types";
// Existing counterpart Media/Session objects

View File

@@ -2,10 +2,13 @@
import mdns from "mdns";
import StatusListener from "./chromecast/StatusListener";
import { ReceiverStatus } from "../types";
import { sendMessage } from "../lib/nativeMessaging";
import { ReceiverStatus } from "../types";
import { Message } from "../messaging";
import StatusListener from "./chromecast/StatusListener";
interface CastTxtRecord {
id: string; cd: string; rm: string;
@@ -34,12 +37,14 @@ function onBrowserServiceUp(service: mdns.Service) {
const txtRecord = service.txtRecord as CastTxtRecord;
sendMessage({
subject: "main:serviceUp"
subject: "main:receiverDeviceUp"
, data: {
host: service.addresses[0]
, port: service.port
, id: txtRecord.id
, friendlyName: txtRecord.fn
receiverDevice: {
host: service.addresses[0]
, port: service.port
, id: txtRecord.id
, friendlyName: txtRecord.fn
}
}
});
}
@@ -72,41 +77,20 @@ export function startDiscovery(options: InitializeOptions) {
return;
}
const { id } = service.txtRecord;
const listener = new StatusListener(
service.addresses[0]
, service.port);
service.addresses[0], service.port);
listener.on("receiverStatus", (status: ReceiverStatus) => {
const receiverStatusMessage: any = {
subject: "main:updateReceiverStatus"
sendMessage({
subject: "main:receiverDeviceUpdated"
, data: {
id
, status: {
volume: {
level: status.volume.level
, muted: status.volume.muted
}
}
receiverDeviceId: service.txtRecord.id
, status
}
};
if (status.applications && status.applications.length) {
const application = status.applications[0];
receiverStatusMessage.data.status.application = {
appId: application.appId
, displayName: application.displayName
, isIdleScreen: application.isIdleScreen
, statusText: application.statusText
};
}
sendMessage(receiverStatusMessage);
});
});
statusListeners.set(id, listener);
statusListeners.set(service.txtRecord.id, listener);
}
function onStatusBrowserServiceDown(_service: mdns.Service) {