diff --git a/app/src/bridge/components/receiverSelector.ts b/app/src/bridge/components/receiverSelector.ts index 9842a7b..1eb208e 100644 --- a/app/src/bridge/components/receiverSelector.ts +++ b/app/src/bridge/components/receiverSelector.ts @@ -48,7 +48,7 @@ export function startReceiverSelector (data: string) { if (!jsonData.mediaType) { sendMessage({ - subject: "main:receiverSelector/stop" + subject: "main:receiverSelector/stopped" , data: jsonData }); @@ -74,7 +74,7 @@ export function startReceiverSelector (data: string) { selectorAppOpen = false; sendMessage({ - subject: "main:receiverSelector/close" + subject: "main:receiverSelector/cancelled" }); } }); diff --git a/app/src/bridge/index.ts b/app/src/bridge/index.ts index 3e568ae..dc2f778 100755 --- a/app/src/bridge/index.ts +++ b/app/src/bridge/index.ts @@ -51,8 +51,8 @@ decodeTransform.on("data", (message: Message) => { } case "bridge:stopReceiverApp": { - stopReceiverApp(message.data.receiver.host - , message.data.receiver.port); + const { host, port } = message.data.receiver; + stopReceiverApp(host, port); break; } @@ -66,7 +66,8 @@ decodeTransform.on("data", (message: Message) => { // Media server case "bridge:mediaServer/start": { - startMediaServer(message.data.filePath, message.data.port); + const { filePath, port } = message.data; + startMediaServer(filePath, port); break; } case "bridge:mediaServer/stop": { diff --git a/app/src/bridge/messaging.ts b/app/src/bridge/messaging.ts index aae25d0..a3a49a8 100644 --- a/app/src/bridge/messaging.ts +++ b/app/src/bridge/messaging.ts @@ -7,150 +7,148 @@ import { Receiver type MessageDefinitions = { - "shim:serviceUp": { id: Receiver["id"] } - , "shim:serviceDown": { id: Receiver["id"] } - - , "shim:launchApp": { receiver: Receiver } - - // Session messages - , "shim:session/stopped": {} - , "shim:session/connected": { - sessionId: string - , namespaces: Array<{ name: string }> - , displayName: string - , statusText: string - } - , "shim:session/updateStatus": { volume: any /* Volume */ } - , "shim:session/impl_addMessageListener": { - namespace: string - , data: string - } - , "shim:session/impl_sendMessage": { - 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": { - address: string - , port: number - , appId: string - , sessionId: string - , _id: string - } - , "bridge:session/close": {} - , "bridge:session/impl_leave": { - id: string - , _id: string - } - , "bridge:session/impl_sendMessage": { - namespace: string - , message: any - , 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; - } - - // Media messages - , "shim:media/update": { - currentTime: number - , _lastCurrentTime: number - , customData: any - , playbackRate: number - , playerState: string - , repeatMode: string - , _volumeLevel: number - , _volumeMuted: boolean - , media: unknown // MediaInfo - , mediaSessionId: number - } - , "shim:media/sendMediaMessageResponse": { - messageId: string - , error: boolean - } - - // Bridge media messages - , "bridge:media/initialize": { - sessionId: string - , mediaSessionId: number - , _internalSessionId: string - , _id: string - } - , "bridge:media/sendMediaMessage": { - message: any - , messageId: string - , _id: string - } - - // Bridge messages - , "main:receiverSelector/selected": ReceiverSelectionCast - , "main:receiverSelector/error": string - , "main:receiverSelector/close": {} - , "main:receiverSelector/stop": ReceiverSelectionStop - - /** - * getInfo uses the old :/ form for compat with old bridge - * versions. - */ - , "bridge:getInfo": string - , "bridge:/getInfo": string + // Session messages + "shim:session/stopped": {} + , "shim:session/connected": { + sessionId: string + , namespaces: Array<{ name: string }> + , displayName: string + , statusText: string + } + , "shim:session/updateStatus": { volume: any /* Volume */ } + , "shim:session/impl_addMessageListener": { + namespace: string + , data: string + } + , "shim:session/impl_sendMessage": { + 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:initialize": { shouldWatchStatus: boolean } + // Bridge session messages + , "bridge:session/initialize": { + address: string + , port: number + , appId: string + , sessionId: string + , _id: string + } + , "bridge:session/close": {} + , "bridge:session/impl_leave": { + id: string + , _id: string + } + , "bridge:session/impl_sendMessage": { + namespace: string + , message: any + , 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; + } + + // Media messages + , "shim:media/update": { + currentTime: number + , _lastCurrentTime: number + , customData: any + , playbackRate: number + , playerState: string + , repeatMode: string + , _volumeLevel: number + , _volumeMuted: boolean + , media: unknown // MediaInfo + , mediaSessionId: number + } + , "shim:media/sendMediaMessageResponse": { + messageId: string + , error: boolean + } + + // Bridge media messages + , "bridge:media/initialize": { + sessionId: string + , mediaSessionId: number + , _internalSessionId: string + , _id: string + } + + , "bridge:media/sendMediaMessage": { + message: any + , messageId: string + , _id: string + } + + // 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 + * versions. + */ + , "bridge:getInfo": string + , "bridge:/getInfo": string + + , "bridge:initialize": { + shouldWatchStatus: boolean + } + + , "bridge:receiverSelector/open": any + , "bridge:receiverSelector/close": {} + + , "bridge:stopReceiverApp": { receiver: Receiver } + + , "bridge:mediaServer/start": { + filePath: string + , port: number + } + , "bridge:mediaServer/stop": {} + , "mediaCast:mediaServer/started": { + mediaPath: string + , subtitlePaths: string[] + , localAddress: string + } + , "mediaCast:mediaServer/stopped": {} + , "mediaCast:mediaServer/error": {} + + , "main:serviceUp": Receiver + , "main:serviceDown": { id: string } - , "bridge:receiverSelector/open": any - , "bridge:receiverSelector/close": {} - - , "bridge:stopReceiverApp": { receiver: Receiver } - - , "bridge:mediaServer/start": { - filePath: string - , port: number - } - , "bridge:mediaServer/stop": {} - , "mediaCast:mediaServer/started": { - mediaPath: string - , subtitlePaths: string[] - , localAddress: string - } - , "mediaCast:mediaServer/stopped": {} - , "mediaCast:mediaServer/error": {} - - , "main:serviceUp": Receiver - , "main:serviceDown": { id: string } - - , "main:receiverStatus": { - id: string - , status: ReceiverStatus - } + , "main:receiverStatus": { + id: string + , status: ReceiverStatus + } } diff --git a/ext/src/background/receiverSelector/NativeReceiverSelector.ts b/ext/src/background/receiverSelector/NativeReceiverSelector.ts index c63e9dc..4515743 100644 --- a/ext/src/background/receiverSelector/NativeReceiverSelector.ts +++ b/ext/src/background/receiverSelector/NativeReceiverSelector.ts @@ -114,12 +114,7 @@ export default class NativeReceiverSelector extends ReceiverSelector { break; } - case "main:receiverSelector/error": { - logger.error("Native receiver selector error", message.data); - this.dispatchEvent(new CustomEvent("error")); - break; - } - case "main:receiverSelector/close": { + case "main:receiverSelector/cancelled": { if (!this.wasReceiverSelected) { this.dispatchEvent(new CustomEvent("cancelled")); } @@ -134,12 +129,17 @@ export default class NativeReceiverSelector extends ReceiverSelector { break; } - case "main:receiverSelector/stop": { + case "main:receiverSelector/stopped": { this.dispatchEvent(new CustomEvent("stop", { detail: message.data })); break; } + case "main:receiverSelector/error": { + logger.error("Native receiver selector error", message.data); + this.dispatchEvent(new CustomEvent("error")); + break; + } } } } diff --git a/ext/src/messaging.ts b/ext/src/messaging.ts index 8708b71..3af6ec8 100644 --- a/ext/src/messaging.ts +++ b/ext/src/messaging.ts @@ -53,6 +53,10 @@ type ExtMessageDefinitions = { , "main:sessionCreated": {} , "shim:initialized": BridgeInfo + , "shim:serviceUp": { id: Receiver["id"] } + , "shim:serviceDown": { id: Receiver["id"] } + + , "shim:launchApp": { receiver: Receiver } } /** @@ -61,13 +65,8 @@ type ExtMessageDefinitions = { * app/bridge/messaging.ts > MessagesBase */ type AppMessageDefinitions = { - "shim:serviceUp": { id: Receiver["id"] } - , "shim:serviceDown": { id: Receiver["id"] } - - , "shim:launchApp": { receiver: Receiver } - // Session messages - , "shim:session/stopped": {} + "shim:session/stopped": {} , "shim:session/connected": { sessionId: string , namespaces: Array<{ name: string }> @@ -167,9 +166,9 @@ type AppMessageDefinitions = { // Bridge messages , "main:receiverSelector/selected": ReceiverSelectionCast + , "main:receiverSelector/stopped": ReceiverSelectionStop + , "main:receiverSelector/cancelled": {} , "main:receiverSelector/error": string - , "main:receiverSelector/close": {} - , "main:receiverSelector/stop": ReceiverSelectionStop /** * getInfo uses the old :/ form for compat with old bridge @@ -178,7 +177,9 @@ type AppMessageDefinitions = { , "bridge:getInfo": string , "bridge:/getInfo": string - , "bridge:initialize": { shouldWatchStatus: boolean } + , "bridge:initialize": { + shouldWatchStatus: boolean + } , "bridge:receiverSelector/open": any , "bridge:receiverSelector/close": {}