Use receiver selector manager

This commit is contained in:
hensm
2019-04-30 17:43:58 +01:00
committed by Matt Hensman
parent b1cde1b3b5
commit cd7248eefd
7 changed files with 193 additions and 222 deletions

View File

@@ -6,6 +6,9 @@ import SessionRequest from "./SessionRequest";
import { AutoJoinPolicy
, DefaultActionPolicy } from "../enums";
import { ReceiverSelectorMediaType }
from "../../../receiverSelectorManager/ReceiverSelectorManager";
export default class ApiConfig {
public additionalSessionRequests: any[] = [];
@@ -23,6 +26,7 @@ export default class ApiConfig {
= DefaultActionPolicy.CREATE_SESSION
// TODO: Remove awful hack for mirror casting
, public _selectedMedia: string = "app") {
, public _selectedMedia: ReceiverSelectorMediaType
= ReceiverSelectorMediaType.App) {
}
}

View File

@@ -98,7 +98,7 @@ export function initialize (
apiConfig = newApiConfig;
sendMessageResponse({
subject: "bridge:/startDiscovery"
subject: "main:/shimInitialized"
});
apiConfig.receiverListener(receiverList.length
@@ -157,7 +157,10 @@ export function requestSession (
// Open destination chooser
sendMessageResponse({
subject: "main:/openPopup"
subject: "main:/selectReceiverBegin"
, data: {
defaultMediaType: apiConfig._selectedMedia
}
});
}
@@ -186,10 +189,12 @@ export function unescape (escaped: string): string {
}
onMessage(message => {
onMessage(async message => {
console.log(message)
switch (message.subject) {
case "shim:/initialized": {
isAvailable = true;
break;
}
@@ -228,7 +233,7 @@ onMessage(message => {
break;
}
case "shim:/selectReceiver": {
case "shim:/selectReceiverEnd": {
console.info("fx_cast (Debug): Selected receiver");
const selectedReceiver = new Receiver(
@@ -247,7 +252,7 @@ onMessage(message => {
, selectedReceiver // receiver
, (session: Session) => {
sendMessageResponse({
subject: "popup:/close"
subject: "main:/sessionCreated"
});
sessionRequestInProgress = false;
@@ -272,26 +277,10 @@ onMessage(message => {
break;
}
/**
* Popup is ready to receive data to populate the cast destination
* chooser.
*/
case "shim:/popupReady": {
sendMessageResponse({
subject: "popup:/populateReceiverList"
, data: {
receivers: receiverList
, selectedMedia: apiConfig._selectedMedia
}
});
break;
}
/**
* Popup closed before session established.
*/
case "shim:/popupClosed": {
case "shim:/selectReceiverCancelled": {
if (sessionRequestInProgress) {
sessionRequestInProgress = false;
sessionErrorCallback(new Error_(ErrorCode.CANCEL));