diff --git a/IMPLEMENTATION.md b/IMPLEMENTATION.md index e97d655..7713aeb 100644 --- a/IMPLEMENTATION.md +++ b/IMPLEMENTATION.md @@ -37,3 +37,19 @@ Once the user selects a receiver device to cast to, the popup sends a `shim:/sel Cast SDK API calls are translated into Chromecast protocol messages and sent via `node-castv2`. Based on [@GPMDP/electron-chromecast](https://github.com/GPMDP/electron-chromecast), so there are many similarities. The shim and the bridge exchange messages to implement API methods which require communication with the receiver device. `Session` and `Media` objects have a counterpart object within the bridge. Some messages are routed directly to these objects. For `Session`, these are in the format `bridge:/session/impl_`. For `Media`, it's `bridge:/media/impl_`. + + +# Messages (WIP) + +| Subject | Origin | Destination | Description | +| --- | --- | --- | --- | +| `shim:/initialized` | background | shim | Sent after bridge has been created. | +| `bridge:/discover` | shim | bridge | Starts network discovery. | +| `shim:/serviceUp` | bridge | shim | Sent when a receiver device has been found. | +| `shim:/serviceDown` | bridge | shim | Sent when a receiver device has been lost. | +| `main:/openPopup` | shim | background | Opens the receiver selection popup. | +| `popup:/assignShim` | background | popup | Provides popup with tab/frame ID for the opener shim so that it can make a direct connection. | +| `shim:/popupReady` | popup | shim | Sent after popup is ready to be populated. | +| `popup:/populateReceiverList` | shim | popup | Supplies popup with current `state.receiverList`. | +| `shim:/selectReceiver` | popup | shim | Sent once a receiver has been selected. | +