mirror of
https://github.com/moonlight-stream/moonlight-chrome.git
synced 2025-08-17 16:46:31 +00:00
40 lines
1.6 KiB
JavaScript
40 lines
1.6 KiB
JavaScript
var callbacks = {}
|
|
var callbacks_ids = 1;
|
|
|
|
var sendMessage = function(method, params) {
|
|
return new Promise(function(resolve, reject) {
|
|
var id = callbacks_ids++;
|
|
callbacks[id] = {'resolve': resolve, 'reject': reject};
|
|
|
|
common.naclModule.postMessage({
|
|
'callbackId': id,
|
|
'method': method,
|
|
'params': params
|
|
});
|
|
});
|
|
}
|
|
|
|
function handleMessage(msg) {
|
|
if (msg.data.callbackId && callbacks[msg.data.callbackId]) { // if it's a callback, treat it as such
|
|
callbacks[msg.data.callbackId][msg.data.type](msg.data.ret);
|
|
delete callbacks[msg.data.callbackId]
|
|
} else { // else, it's just info, or an event
|
|
console.log(msg.data);
|
|
if(msg.data === 'streamTerminated') { // if it's a recognized event, notify the appropriate function
|
|
$('#loadingSpinner').css('display', 'none'); // This is a fallback for RTSP handshake failing, which immediately terminates the stream.
|
|
api.refreshServerInfo().then(function (ret) {
|
|
showApps();
|
|
chrome.app.window.current().restore();
|
|
});
|
|
} else if(msg.data === 'Connection Established') {
|
|
$('#loadingSpinner').css('display', 'none');
|
|
} else if(msg.data.indexOf('ProgressMsg: ') === 0) {
|
|
$('#loadingMessage').text(msg.data.replace('ProgressMsg: ', ''));
|
|
} else if(msg.data.indexOf('TransientMsg: ') === 0) {
|
|
snackbarLog(msg.data.replace('TransientMsg: ', ''));
|
|
} else if(msg.data === 'displayVideo') {
|
|
$("#listener").addClass("fullscreen");
|
|
}
|
|
}
|
|
}
|