src/widgets/PlaceholderPlayer.js
author veltr
Thu, 16 May 2013 13:34:02 +0200
changeset 1001 3210bf928a11
parent 991 2b036bd80f6d
child 1005 768bd0691ed1
permissions -rw-r--r--
Enabled loading widgets without the widgeting framework
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
991
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
     1
/* This is a fake player, for when no video is available */
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
     2
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
     3
IriSP.Widgets.PlaceholderPlayer = function(player, config) {
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
     4
    IriSP.Widgets.Widget.call(this, player, config);
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
     5
};
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
     6
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
     7
IriSP.Widgets.PlaceholderPlayer.prototype = new IriSP.Widgets.Widget();
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
     8
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
     9
IriSP.Widgets.PlaceholderPlayer.prototype.defaults = {
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    10
}
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    11
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    12
IriSP.Widgets.PlaceholderPlayer.prototype.template = '<div class="Ldt-PlaceholderPlayer">(loading)</div>';
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    13
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    14
IriSP.Widgets.PlaceholderPlayer.prototype.draw = function() {
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    15
    
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    16
    this.renderTemplate();
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    17
    
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    18
    var paused = true,
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    19
        timeDelta = 0,
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    20
        currentTime = new IriSP.Model.Time(0),
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    21
        media = this.media,
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    22
        sel = this.$.find(".Ldt-PlaceholderPlayer");
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    23
    
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    24
    function updateTime() {
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    25
        if (!paused) {
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    26
            currentTime = new IriSP.Model.Time(new Date().valueOf() - timeDelta);
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    27
            if (currentTime <= media.duration) {
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    28
                media.trigger("timeupdate", currentTime);
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    29
                setTimeout(updateTime, 100);
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    30
            } else {
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    31
                currentTime = media.duration;
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    32
                media.pause();
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    33
            }
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    34
        }
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    35
        sel.text(currentTime.toString(true));
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    36
    }
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    37
    
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    38
    
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    39
    // Binding functions to Popcorn
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    40
    media.on("setcurrenttime", function(_milliseconds) {
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    41
        timeDelta = new Date().valueOf() - _milliseconds;
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    42
        currentTime = new IriSP.Model.Time(_milliseconds);
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    43
        media.trigger("seeked");
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    44
        media.trigger("timeupdate", currentTime);
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    45
        sel.text(currentTime.toString(true));
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    46
    });
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    47
    
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    48
    media.on("setplay", function() {
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    49
        paused = false;
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    50
        timeDelta = new Date().valueOf() - currentTime
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    51
        media.trigger("play");
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    52
        updateTime();
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    53
    });
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    54
    
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    55
    media.on("setpause", function() {
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    56
        paused = true;
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    57
        media.trigger("pause");
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    58
        updateTime();
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    59
    });
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    60
    
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    61
    media.trigger("loadedmetadata");
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    62
    
2b036bd80f6d Added a placeholder player for video-less tests
veltr
parents:
diff changeset
    63
}