blob: 2152206fcc6046e703530b83048550d5bb5504eb [file] [log] [blame]
/*
* Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
/**
*
* @author Jitendra Kotamraju
*/
var network = function (eventSource) {
return {
initialize: function() {
var url = 'http://' + document.location.host
+ '/videoplayer/notifications';
eventSource = new EventSource(url);
eventSource.onmessage = function (event) {
// We should use JSON.parse to avoid any security holes,
// but that also needs json2.js
//var command = JSON.parse(event.data);
var command = eval('('+event.data+')');
if (command.type == "pause") {
APP.pauseVideo();
} else if (command.type == "play") {
APP.playVideo();
} else if (command.type == "seeked") {
APP.seekVideo(command.currentTime);
} else {
alert("Unknown command " + command);
}
};
},
send: function(command) {
eventSource.send(command);
}
}
};
var APP = {
id: Math.floor(Math.random() * 10000),
network: network(null),
// Cannot use 'this' here after updating window.onload (see below)
initialize: function () {
APP.network.initialize();
var video = APP.getVideo();
},
getVideo: function () {
return document.getElementsByTagName("video")[0];
},
pauseVideo: function () {
var video = this.getVideo();
video.pause();
},
playVideo: function () {
var video = this.getVideo();
video.play();
},
seekVideo: function (currentTime) {
var video = this.getVideo();
video.currentTime = currentTime;
}
};
window.onload = APP.initialize;