mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-12 02:29:59 +00:00
Cast API overhaul (#173)
Re-write the shim<->bridge messaging interface and session creation/update handling for better accuracy.
This commit is contained in:
@@ -1,84 +1,70 @@
|
||||
"use strict";
|
||||
|
||||
import { MediaStatus, ReceiverStatus, ReceiverApplication, SenderMessage }
|
||||
from "./components/chromecast/types";
|
||||
import { Image
|
||||
, ReceiverStatus
|
||||
, SenderApplication
|
||||
, SenderMessage
|
||||
, Volume } from "./components/cast/types";
|
||||
|
||||
import { ReceiverDevice
|
||||
, ReceiverSelectionCast
|
||||
, ReceiverSelectionStop } from "./types";
|
||||
|
||||
|
||||
interface CastSessionUpdated {
|
||||
sessionId: string
|
||||
, statusText: string
|
||||
, namespaces: Array<{ name: string }>
|
||||
, volume: Volume
|
||||
}
|
||||
|
||||
interface CastSessionCreated extends CastSessionUpdated {
|
||||
appId: string
|
||||
, appImages: Image[]
|
||||
, displayName: string
|
||||
, receiverFriendlyName: string
|
||||
, senderApps: SenderApplication[]
|
||||
, transportId: string
|
||||
}
|
||||
|
||||
type MessageDefinitions = {
|
||||
// Session messages
|
||||
"shim:session/connected": { application: ReceiverApplication }
|
||||
, "shim:session/updateStatus": { status: ReceiverStatus }
|
||||
, "shim:session/stopped": {}
|
||||
, "shim:session/impl_addMessageListener": {
|
||||
namespace: string
|
||||
, message: string
|
||||
}
|
||||
, "shim:session/impl_sendMessage": {
|
||||
messageId: string
|
||||
, wasError: boolean
|
||||
}
|
||||
, "shim:session/impl_sendReceiverMessage": {
|
||||
messageId: string
|
||||
, wasError: 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_sendReceiverMessage": {
|
||||
message: SenderMessage
|
||||
, messageId: string
|
||||
, _id: string
|
||||
}
|
||||
, "bridge:session/impl_addMessageListener": {
|
||||
namespace: string;
|
||||
_id: string;
|
||||
}
|
||||
|
||||
// Media messages
|
||||
, "shim:media/updateStatus": {
|
||||
status: MediaStatus
|
||||
}
|
||||
, "shim:media/sendMediaMessageResponse": {
|
||||
messageId: string
|
||||
, error: boolean
|
||||
}
|
||||
|
||||
// Bridge media messages
|
||||
, "bridge:media/initialize": {
|
||||
"shim:castSessionCreated": CastSessionCreated
|
||||
, "shim:castSessionUpdated": CastSessionUpdated
|
||||
, "shim:castSessionStopped": {
|
||||
sessionId: string
|
||||
, mediaSessionId: number
|
||||
, _internalSessionId: string
|
||||
, _id: string
|
||||
}
|
||||
|
||||
, "bridge:media/sendMediaMessage": {
|
||||
message: any
|
||||
, "shim:receivedCastSessionMessage": {
|
||||
sessionId: string
|
||||
, namespace: string
|
||||
, messageData: string
|
||||
}
|
||||
|
||||
, "shim:impl_sendCastMessage": {
|
||||
sessionId: string
|
||||
, messageId: string
|
||||
, _id: string
|
||||
, error?: string
|
||||
}
|
||||
|
||||
// Bridge messages
|
||||
, "bridge:createCastSession": {
|
||||
appId: string
|
||||
, receiverDevice: ReceiverDevice
|
||||
}
|
||||
, "bridge:sendCastReceiverMessage": {
|
||||
sessionId: string
|
||||
, messageData: SenderMessage
|
||||
, messageId: string
|
||||
}
|
||||
, "bridge:sendCastSessionMessage": {
|
||||
sessionId: string
|
||||
, namespace: string
|
||||
, messageData: object | string
|
||||
, messageId: string
|
||||
}
|
||||
|
||||
, "bridge:stopCastApp": { receiverDevice: ReceiverDevice }
|
||||
|
||||
// Bridge messages
|
||||
, "main:receiverSelector/selected": ReceiverSelectionCast
|
||||
, "main:receiverSelector/stopped": ReceiverSelectionStop
|
||||
, "main:receiverSelector/cancelled": {}
|
||||
@@ -98,9 +84,6 @@ type MessageDefinitions = {
|
||||
, "bridge:openReceiverSelector": string
|
||||
, "bridge:closeReceiverSelector": {}
|
||||
|
||||
, "bridge:stopReceiverApp": { receiverDevice: ReceiverDevice }
|
||||
|
||||
|
||||
, "bridge:startMediaServer": {
|
||||
filePath: string
|
||||
, port: number
|
||||
|
||||
Reference in New Issue
Block a user