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:
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user