mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-09 17:19:59 +00:00
Refactor session impl messages
This commit is contained in:
@@ -130,6 +130,22 @@ export default class Session {
|
||||
this.close();
|
||||
break;
|
||||
|
||||
case "bridge:session/sendReceiverMessage": {
|
||||
let wasError = false;
|
||||
try {
|
||||
this.clientReceiver?.send(message.data.message);
|
||||
} catch (err) {
|
||||
wasError = true;
|
||||
}
|
||||
|
||||
this.sendMessage("shim:session/sendReceiverMessageResponse", {
|
||||
messageId: message.data.messageId
|
||||
, wasError
|
||||
});
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case "bridge:session/impl_addMessageListener":
|
||||
this._impl_addMessageListener(message.data.namespace);
|
||||
break;
|
||||
@@ -140,22 +156,6 @@ export default class Session {
|
||||
, message.data.message
|
||||
, message.data.messageId);
|
||||
break;
|
||||
|
||||
case "bridge:session/impl_setReceiverMuted":
|
||||
this._impl_setReceiverMuted(
|
||||
message.data.muted
|
||||
, message.data.volumeId);
|
||||
break;
|
||||
|
||||
case "bridge:session/impl_setReceiverVolumeLevel":
|
||||
this._impl_setReceiverVolumeLevel(
|
||||
message.data.newLevel
|
||||
, message.data.volumeId);
|
||||
break;
|
||||
|
||||
case "bridge:session/impl_stop":
|
||||
this._impl_stop(message.data.stopId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -209,7 +209,7 @@ export default class Session {
|
||||
}
|
||||
|
||||
this.createChannel(namespace);
|
||||
this.channelMap.get(namespace)!.send(message);
|
||||
this.channelMap.get(namespace)?.send(message);
|
||||
} catch (err) {
|
||||
error = true;
|
||||
}
|
||||
@@ -220,66 +220,4 @@ export default class Session {
|
||||
});
|
||||
}
|
||||
|
||||
private _impl_setReceiverMuted(muted: boolean, volumeId: string) {
|
||||
|
||||
let error = false;
|
||||
|
||||
try {
|
||||
this.clientReceiver!.send({
|
||||
type: "SET_VOLUME"
|
||||
, volume: { muted }
|
||||
, requestId: 0
|
||||
});
|
||||
} catch (err) {
|
||||
error = true;
|
||||
}
|
||||
|
||||
this.sendMessage("shim:session/impl_setReceiverMuted", {
|
||||
volumeId
|
||||
, error
|
||||
});
|
||||
}
|
||||
|
||||
private _impl_setReceiverVolumeLevel(newLevel: number, volumeId: string) {
|
||||
|
||||
let error = false;
|
||||
|
||||
try {
|
||||
this.clientReceiver!.send({
|
||||
type: "SET_VOLUME"
|
||||
, volume: { level: newLevel }
|
||||
, requestId: 0
|
||||
});
|
||||
} catch (err) {
|
||||
error = true;
|
||||
}
|
||||
|
||||
this.sendMessage("shim:session/impl_setReceiverVolumeLevel", {
|
||||
volumeId
|
||||
, error
|
||||
});
|
||||
}
|
||||
|
||||
private _impl_stop(stopId: string) {
|
||||
let error = false;
|
||||
|
||||
try {
|
||||
this.clientReceiver!.send({
|
||||
type: "STOP"
|
||||
, sessionId: this.sessionId
|
||||
, requestId: 0
|
||||
});
|
||||
} catch (err) {
|
||||
error = true;
|
||||
}
|
||||
|
||||
this.client.close();
|
||||
|
||||
clearInterval(this.clientHeartbeatIntervalId!);
|
||||
|
||||
this.sendMessage("shim:session/impl_stop", {
|
||||
stopId
|
||||
, error
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
"use strict";
|
||||
|
||||
import { ReceiverDevice
|
||||
, ReceiverMessage
|
||||
, ReceiverSelectionCast
|
||||
, ReceiverSelectionStop
|
||||
, ReceiverStatus } from "./types";
|
||||
, ReceiverStatus
|
||||
, Volume } from "./types";
|
||||
|
||||
|
||||
type MessageDefinitions = {
|
||||
@@ -15,7 +17,11 @@ type MessageDefinitions = {
|
||||
, displayName: string
|
||||
, statusText: string
|
||||
}
|
||||
, "shim:session/updateStatus": { volume: any /* Volume */ }
|
||||
, "shim:session/updateStatus": { volume: Volume }
|
||||
, "shim:session/sendReceiverMessageResponse": {
|
||||
messageId: string
|
||||
, wasError: boolean
|
||||
}
|
||||
, "shim:session/impl_addMessageListener": {
|
||||
namespace: string
|
||||
, data: string
|
||||
@@ -24,18 +30,6 @@ type MessageDefinitions = {
|
||||
messageId: string
|
||||
, error: boolean
|
||||
}
|
||||
, "shim:session/impl_setReceiverMuted": {
|
||||
volumeId: string
|
||||
, error: boolean
|
||||
}
|
||||
, "shim:session/impl_setReceiverVolumeLevel": {
|
||||
volumeId: string
|
||||
, error: boolean
|
||||
}
|
||||
, "shim:session/impl_stop": {
|
||||
stopId: string
|
||||
, error: boolean
|
||||
}
|
||||
|
||||
// Bridge session messages
|
||||
, "bridge:session/initialize": {
|
||||
@@ -46,6 +40,11 @@ type MessageDefinitions = {
|
||||
, _id: string
|
||||
}
|
||||
, "bridge:session/close": {}
|
||||
, "bridge:session/sendReceiverMessage": {
|
||||
message: ReceiverMessage
|
||||
, messageId: string
|
||||
, _id: string
|
||||
}
|
||||
, "bridge:session/impl_leave": {
|
||||
id: string
|
||||
, _id: string
|
||||
@@ -56,20 +55,6 @@ type MessageDefinitions = {
|
||||
, messageId: string
|
||||
, _id: string
|
||||
}
|
||||
, "bridge:session/impl_setReceiverMuted": {
|
||||
muted: boolean
|
||||
, volumeId: string
|
||||
, _id: string
|
||||
}
|
||||
, "bridge:session/impl_setReceiverVolumeLevel": {
|
||||
newLevel: number
|
||||
, volumeId: string
|
||||
, _id: string
|
||||
}
|
||||
, "bridge:session/impl_stop": {
|
||||
stopId: string;
|
||||
_id: string;
|
||||
}
|
||||
, "bridge:session/impl_addMessageListener": {
|
||||
namespace: string;
|
||||
_id: string;
|
||||
|
||||
@@ -20,6 +20,7 @@ export interface ReceiverStatus {
|
||||
, volume: Volume
|
||||
}
|
||||
|
||||
|
||||
export interface MediaStatus {
|
||||
mediaSessionId: number;
|
||||
supportedMediaCommands: number;
|
||||
@@ -102,3 +103,15 @@ export class Volume {
|
||||
public level: (number | null) = null
|
||||
, public muted: (boolean | null) = null) {}
|
||||
}
|
||||
|
||||
|
||||
export type ReceiverMessage =
|
||||
{ type: "LAUNCH", appId: string }
|
||||
| { type: "STOP", sessionId: string }
|
||||
| { type: "GET_STATUS" }
|
||||
| { type: "GET_APP_AVAILABILITY", appId: string[] }
|
||||
| {
|
||||
type: "SET_VOLUME"
|
||||
, volume: { level: number }
|
||||
| { muted: boolean }
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user