diff -r 6a90c96f0b4c -r 2b036bd80f6d src/widgets/PlaceholderPlayer.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/widgets/PlaceholderPlayer.js Tue Jan 29 15:38:41 2013 +0100
@@ -0,0 +1,63 @@
+/* This is a fake player, for when no video is available */
+
+IriSP.Widgets.PlaceholderPlayer = function(player, config) {
+ IriSP.Widgets.Widget.call(this, player, config);
+};
+
+IriSP.Widgets.PlaceholderPlayer.prototype = new IriSP.Widgets.Widget();
+
+IriSP.Widgets.PlaceholderPlayer.prototype.defaults = {
+}
+
+IriSP.Widgets.PlaceholderPlayer.prototype.template = '
(loading)
';
+
+IriSP.Widgets.PlaceholderPlayer.prototype.draw = function() {
+
+ this.renderTemplate();
+
+ var paused = true,
+ timeDelta = 0,
+ currentTime = new IriSP.Model.Time(0),
+ media = this.media,
+ sel = this.$.find(".Ldt-PlaceholderPlayer");
+
+ function updateTime() {
+ if (!paused) {
+ currentTime = new IriSP.Model.Time(new Date().valueOf() - timeDelta);
+ if (currentTime <= media.duration) {
+ media.trigger("timeupdate", currentTime);
+ setTimeout(updateTime, 100);
+ } else {
+ currentTime = media.duration;
+ media.pause();
+ }
+ }
+ sel.text(currentTime.toString(true));
+ }
+
+
+ // Binding functions to Popcorn
+ media.on("setcurrenttime", function(_milliseconds) {
+ timeDelta = new Date().valueOf() - _milliseconds;
+ currentTime = new IriSP.Model.Time(_milliseconds);
+ media.trigger("seeked");
+ media.trigger("timeupdate", currentTime);
+ sel.text(currentTime.toString(true));
+ });
+
+ media.on("setplay", function() {
+ paused = false;
+ timeDelta = new Date().valueOf() - currentTime
+ media.trigger("play");
+ updateTime();
+ });
+
+ media.on("setpause", function() {
+ paused = true;
+ media.trigger("pause");
+ updateTime();
+ });
+
+ media.trigger("loadedmetadata");
+
+}
\ No newline at end of file