From f9c5716651073e14ab98687ffc9bc944c3ef1d21 Mon Sep 17 00:00:00 2001 From: hensm Date: Thu, 21 Feb 2019 21:06:24 +0000 Subject: [PATCH] Update diagram and add missing messages to table --- IMPLEMENTATION.md | 46 ++++++++++++++++++++++++++++++++++------------ diagram.svg | 2 +- 2 files changed, 35 insertions(+), 13 deletions(-) diff --git a/IMPLEMENTATION.md b/IMPLEMENTATION.md index f751bb9..9e16bc9 100644 --- a/IMPLEMENTATION.md +++ b/IMPLEMENTATION.md @@ -43,16 +43,38 @@ Cast SDK API calls are translated into Chromecast protocol messages and sent via -| No. | Subject | Origin | Destination | Description | -| --- | --- | --- | --- | --- | -| 1 | `shim:/initialized` | background | shim | Sent after bridge has been created. | -| 2 | `bridge:/discover` | shim | bridge | Starts network discovery. | -| 3 | `shim:/serviceUp` | bridge | shim | Sent when a receiver device has been found. | -| 4 | `shim:/serviceDown` | bridge | shim | Sent when a receiver device has been lost. | -| 5 | `main:/openPopup` | shim | background | Opens the receiver selection popup. | -| 6 | `popup:/assignShim` | background | popup | Provides popup with tab/frame ID for the opener shim so that it can make a direct connection. | -| 7 | `shim:/popupReady` | popup | shim | Sent after popup is ready to receive data. | -| 8 | `popup:/populateReceiverList` | shim | popup | Supplies popup with current `state.receiverList`. | -| 9 | `shim:/selectReceiver` | popup | shim | Sent once a receiver has been selected. | -| 9 | `popup:/close` | popup | shim | Sent once a receiver has been selected. | +| No. | Subject | Origin | Destination | Description | +| --: | --------------------------------------------- | ---------- | ----------- | ----------- | +| 1 | `shim:/initialized` | background | shim | Sent once bridge has been created. | +| 2 | `bridge:/startDiscovery` | shim | bridge | Starts network discovery. | +| 3 | `shim:/serviceUp` | bridge | shim | Sent once a receiver device has been found. | +| 4 | `shim:/serviceDown` | bridge | shim | Sent once a receiver device has been lost. | +| 5 | `main:/openPopup` | shim | background | Opens the receiver selection popup. | +| 6 | `popup:/assignShim` | background | popup | Provides popup with tab/frame ID for the opener shim so that it can make a direct connection. | +| 7 | `shim:/popupReady` | popup | shim | Sent once popup is ready to receive data. | +| 8 | `popup:/populateReceiverList` | shim | popup | Provides popup with current `state.receiverList`. | +| 9 | `shim:/selectReceiver` | popup | shim | Sent once a receiver has been selected. | +| 10 | `popup:/close` | shim | popup | Closes popup. | +| 11 | `bridge:/session/initialize` | shim | bridge | Initializes cast session with receiver device. | +| 12 | `bridge:/session/close` | shim | bridge | Closes cast session. | +| 13 | `shim:/session/connected` | bridge | shim | Sent once cast session has connected. | +| 14 | `shim:/session/updateStatus` | bridge | shim | Provides shim session with status updates. | +| 15 | `bridge:/session/impl_addMessageListener` | shim | bridge | Sends data to bridge for implementation of `Session#addMessageListener` method. | +| 16 | `bridge:/session/impl_sendMessage` | shim | bridge | Sends data to bridge for implementation of `Session#sendMessage` method. | +| 17 | `bridge:/session/impl_setReceiverMuted` | shim | bridge | Sends data to bridge for implementation of `Session#setReceiverMuted` method. | +| 18 | `bridge:/session/impl_setReceiverVolumeLevel` | shim | bridge | Sends data to bridge for implementation of `Session#setReceiverVolumeLevel` method. | +| 19 | `bridge:/session/impl_stop` | shim | bridge | Sends data to bridge for implementation of `Session#stop` method. | +| 20 | `bridge:/media/initialize` | shim | bridge | Initializes bridge media message handler. | +| 21 | `bridge:/media/sendMediaMessage` | shim | bridge | Sends media message to receiver device. | +| 22 | `shim:/session/impl_addMessageListener` | shim | popup | Response from bridge->shim counterpart message. | +| 23 | `shim:/session/impl_sendMessage` | shim | popup | Response from bridge->shim counterpart message. | +| 24 | `shim:/session/impl_setReceiverMuted` | shim | popup | Response from bridge->shim counterpart message. | +| 25 | `shim:/session/impl_setReceiverVolumeLevel` | shim | popup | Response from bridge->shim counterpart message. | +| 26 | `shim:/session/impl_stop` | shim | popup | Response from bridge->shim counterpart message. | +| 27 | `shim:/media/sendMediaMessageResponse` | shim | popup | Response from `sendMediaMessage`. Contains error status. | +| 28 | `shim:/media/update` | shim | popup | Provides shim media with status updates. | +| 29 | `bridge:/startHttpServer` | mediaCast | bridge | Starts HTTP server for serving local media to receiver device. | +| 30 | `bridge:/stopHttpServer` | mediaCast | bridge | Stops HTTP server. | +| 31 | `mediaCast:/httpServerStarted` | bridge | mediaCast | Sent once HTTP server has started. | +| 32 | `updater:/updateData` | options | updater | Sends initialization data to updater popup. | diff --git a/diagram.svg b/diagram.svg index 98ce2b7..ff370ab 100644 --- a/diagram.svg +++ b/diagram.svg @@ -1 +1 @@ -backgroundshimbridgepopupruntime.connectNative { application: “fx_cast_bridge” }runtime.connect { name: “shim” }runtime.connect { name: “popup” }tabs.connect { name: “popup” }INCOMING 8) popup:/populateReceiverList 10) popup:/closeOUTGOING 9) shim:/selectReceiver 7) shim:/popupReadyINCOMING 1) shim:/initializedOUTGOING 5) main:/openPopupINCOMING 6) popup:/assignShimSession (shim)Media (shim)SESSION (SHIM) 13) shim:/session/connected 14) shim:/session/updateStatus 22) shim:/session/impl_addMessageListener 23) shim:/session/impl_sendMessage 24) shim:/session/impl_setReceiverMuted 25) shim:/session/impl_setReceiverVolumeLevel 26) shim:/session/impl_stopBRIDGE 2) bridge:/discover 11) bridge:/session/initialize 12) bridge:/session/close 15) bridge:/session/impl_addMessageListener 16) bridge:/session/impl_sendMessage 17) bridge:/session/impl_setReceiverMuted 18) bridge:/session/impl_setReceiverVolumeLevel 19) bridge:/session/impl_stop 20) bridge:/media/initialize 21) bridge:/media/sendMediaMessage 29) bridge:/startHttpServer 30) bridge:/stopHttpServerMEDIA (SHIM) 27) shim:/media/sendMediaMessageResponse 28) shim:/media/updateSHIM 3) shim:/serviceUp 4) shim:/serviceDownmediaCastmirrorCastMEDIACAST 31) mediaCast:/httpServerStartedoptionsupdaterruntime.connect { name: “updater” }INCOMING 32) updater:/updateDataProxied Messages \ No newline at end of file +backgroundshimbridgepopupruntime.connectNative { application: “fx_cast_bridge” }runtime.connect { name: “shim” }runtime.connect { name: “popup” }tabs.connect { name: “popup” }INCOMING 8) popup:/populateReceiverList 10) popup:/closeOUTGOING 9) shim:/selectReceiver 7) shim:/popupReadyINCOMING 1) shim:/initializedOUTGOING 5) main:/openPopupINCOMING 6) popup:/assignShimSession (shim)Media (shim)SESSION (SHIM) 13) shim:/session/connected 14) shim:/session/updateStatus 22) shim:/session/impl_addMessageListener 23) shim:/session/impl_sendMessage 24) shim:/session/impl_setReceiverMuted 25) shim:/session/impl_setReceiverVolumeLevel 26) shim:/session/impl_stopBRIDGE 2) bridge:/startDiscovery 11) bridge:/session/initialize 12) bridge:/session/close 15) bridge:/session/impl_addMessageListener 16) bridge:/session/impl_sendMessage 17) bridge:/session/impl_setReceiverMuted 18) bridge:/session/impl_setReceiverVolumeLevel 19) bridge:/session/impl_stop 20) bridge:/media/initialize 21) bridge:/media/sendMediaMessage 29) bridge:/startHttpServer 30) bridge:/stopHttpServerMEDIA (SHIM) 27) shim:/media/sendMediaMessageResponse 28) shim:/media/updateSHIM 3) shim:/serviceUp 4) shim:/serviceDownmediaCastmirrorCastMEDIACAST 31) mediaCast:/httpServerStartedoptionsupdaterruntime.connect { name: “updater” }INCOMING 32) updater:/updateDataProxied Messages \ No newline at end of file