src/js/init.js
author veltr
Tue, 17 Apr 2012 15:03:40 +0200
branchnew-model
changeset 866 3bf7aa8216e5
parent 842 4ae2247a59f4
child 868 a525cc2214e7
permissions -rw-r--r--
IriSP.Model.List now inherits from Array
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
123
58bb8ccea9a8 added a file for the init routines.
hamidouk
parents:
diff changeset
     1
/* init.js - initialization and configuration of Popcorn and the widgets
58bb8ccea9a8 added a file for the init routines.
hamidouk
parents:
diff changeset
     2
exemple json configuration:
58bb8ccea9a8 added a file for the init routines.
hamidouk
parents:
diff changeset
     3
531
e7f27746668e beefed up the docs.
hamidouk
parents: 500
diff changeset
     4
*/
453
8568e47379a2 added autoconfiguration of the media source for rtmp streams.
hamidouk
parents: 430
diff changeset
     5
531
e7f27746668e beefed up the docs.
hamidouk
parents: 500
diff changeset
     6
/** do some magic to configure popcorn according to the options object passed.
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
     7
 Works for html5, jwplayer and youtube videos
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
     8
 */
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
     9
IriSP.configurePopcorn = function(layoutManager, options) {
123
58bb8ccea9a8 added a file for the init routines.
hamidouk
parents:
diff changeset
    10
    var pop;
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    11
    var ret = layoutManager.createDiv();
287
5c7495102bd7 added a spacer div to simplify some graphic animations.
hamidouk
parents: 216
diff changeset
    12
    var containerDiv = ret[0];
767
645d06da3d5b automatically insert 1px of margin between the video and the first widget.
hamidouk
parents: 743
diff changeset
    13
    var spacerDiv = ret[1];
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    14
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    15
    /* insert one pixel of margin between the video and the first widget, using the
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    16
     spacer.
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    17
     */
767
645d06da3d5b automatically insert 1px of margin between the video and the first widget.
hamidouk
parents: 743
diff changeset
    18
    IriSP.jQuery("#" + spacerDiv).css("height", "1px");
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    19
127
3ce493c93d6c added tests for init.js.
hamidouk
parents: 123
diff changeset
    20
    switch(options.type) {
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    21
        /*
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    22
         todo : dynamically create the div/video tag which
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    23
         will contain the video.
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    24
         */
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    25
        case "html5":
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    26
            var tmpId = Popcorn.guid("video");
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    27
            IriSP.jQuery("#" + containerDiv).append("<video src='" + options.video + "' id='" + tmpId + "'></video>");
402
6148fb647f46 html5 video can now set the height and width of the video.
hamidouk
parents: 315
diff changeset
    28
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    29
            if(options.hasOwnProperty("width"))
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    30
                IriSP.jQuery("#" + containerDiv).css("width", options.width);
453
8568e47379a2 added autoconfiguration of the media source for rtmp streams.
hamidouk
parents: 430
diff changeset
    31
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    32
            if(options.hasOwnProperty("height"))
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    33
                IriSP.jQuery("#" + containerDiv).css("height", options.height);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    34
            pop = Popcorn("#" + tmpId);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    35
            break;
453
8568e47379a2 added autoconfiguration of the media source for rtmp streams.
hamidouk
parents: 430
diff changeset
    36
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    37
        case "jwplayer":
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    38
            var opts = IriSP.jQuery.extend({}, options);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    39
            delete opts.container;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    40
            delete opts.type;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    41
            opts.file = opts.video;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    42
            delete opts.video;
453
8568e47379a2 added autoconfiguration of the media source for rtmp streams.
hamidouk
parents: 430
diff changeset
    43
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    44
            if(!options.hasOwnProperty("flashplayer")) {
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    45
                opts.flashplayer = IriSP.jwplayer_swf_path;
816
e97e22801146 use href or url indiscriminately to get the source of the rtmp.
hamidouk
parents: 811
diff changeset
    46
            }
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    47
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    48
            if(!options.hasOwnProperty("controlbar.position")) {
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    49
                opts["controlbar.position"] = "none";
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    50
            }
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    51
            pop = new IriSP.PopcornReplacement.jwplayer("#" + containerDiv, opts);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    52
            break;
456
7fcdb501effd added a switch to choose different options if using rtmp or not.
hamidouk
parents: 453
diff changeset
    53
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    54
        case "youtube":
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    55
            var opts = IriSP.jQuery.extend({}, options);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    56
            delete opts.container;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    57
            opts.controls = 0;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    58
            opts.autostart = false;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    59
            // Popcorn.youtube wants us to specify the size of the player in the style attribute of its container div.
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    60
            IriSP.jQuery("#" + containerDiv).css({
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    61
                width : opts.width + "px",
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    62
                height : opts.height + "px"
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    63
            })
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    64
            pop = Popcorn.youtube("#" + containerDiv, opts.video, opts);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    65
            break;
558
29a370694c53 delete type variable which seemed to sometimes (but not always) confuse the jwplayer,
hamidouk
parents: 557
diff changeset
    66
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    67
        case "dailymotion":
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    68
            pop = new IriSP.PopcornReplacement.dailymotion("#" + containerDiv, options);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    69
            break;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    70
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    71
        case "allocine":
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    72
            /* pass the options as-is to the allocine player and let it handle everything */
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    73
            pop = new IriSP.PopcornReplacement.allocine("#" + containerDiv, options);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    74
            break;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    75
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    76
        default:
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    77
            pop = undefined;
123
58bb8ccea9a8 added a file for the init routines.
hamidouk
parents:
diff changeset
    78
    };
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    79
127
3ce493c93d6c added tests for init.js.
hamidouk
parents: 123
diff changeset
    80
    return pop;
123
58bb8ccea9a8 added a file for the init routines.
hamidouk
parents:
diff changeset
    81
};
531
e7f27746668e beefed up the docs.
hamidouk
parents: 500
diff changeset
    82
/** Configure the gui and instantiate the widgets passed as parameters
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    83
 @param guiOptions the gui object as seen in the examples.
531
e7f27746668e beefed up the docs.
hamidouk
parents: 500
diff changeset
    84
 */
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    85
IriSP.configureWidgets = function(popcornInstance, layoutManager, guiOptions) {
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    86
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    87
    var serialFactory = new IriSP.SerializerFactory(IriSP.__dataloader);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    88
    var params = {
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    89
        width : guiOptions.width,
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    90
        height : guiOptions.height
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    91
    };
158
1813e6e4f0d6 made a small change to the way popcorn is integrated into the page.
hamidouk
parents: 141
diff changeset
    92
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    93
    var default_options = guiOptions.default_options;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    94
    if(IriSP.null_or_undefined(default_options))
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    95
        default_options = {};
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    96
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    97
    var ret_widgets = [];
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
    98
    var index;
141
becd5f52fa24 this commit fixes an elusive integration bug where the object would get called
hamidouk
parents: 136
diff changeset
    99
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   100
    for( index = 0; index < guiOptions.widgets.length; index++) {
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   101
        var widget = IriSP.instantiateWidget(popcornInstance, serialFactory, layoutManager, guiOptions.widgets[index], default_options);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   102
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   103
        ret_widgets.push(widget);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   104
    };
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   105
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   106
    return ret_widgets;
171
158f0193ec54 added support for dependency widgets (i.e : a widget can now depend on another,
hamidouk
parents: 158
diff changeset
   107
};
531
e7f27746668e beefed up the docs.
hamidouk
parents: 500
diff changeset
   108
/** configure modules. @see configureWidgets */
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   109
IriSP.configureModules = function(popcornInstance, modulesList) {
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   110
/*    if(IriSP.null_or_undefined(modulesList))
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   111
        return;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   112
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   113
    var serialFactory = new IriSP.SerializerFactory(IriSP.__dataloader);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   114
    var ret_modules = [];
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   115
    var index;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   116
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   117
    for( index = 0; index < modulesList.length; index++) {
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   118
        var moduleConfig = modulesList[index];
461
a9c5eeca190c added modules and tbe tests to test them.
hamidouk
parents: 456
diff changeset
   119
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   120
        var serializer = serialFactory.getSerializer(moduleConfig.metadata);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   121
        var module = new IriSP[moduleConfig.type](popcornInstance, moduleConfig, serializer);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   122
        ret_modules.push(module);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   123
    };
461
a9c5eeca190c added modules and tbe tests to test them.
hamidouk
parents: 456
diff changeset
   124
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   125
    return ret_modules; */
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   126
};
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   127
/** instantiate a widget - only called by configureWidgets, never by the user. Handles widget
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   128
 dependencies.
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   129
 @param popcornInstance popcorn instance the widget will user
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   130
 @param serialFactory serializer factory to instantiate the widget with
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   131
 @param layoutManager layout manager
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   132
 @param widgetConfig configuration options for the widget
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   133
 @param defaultOptions a dictionnary with some options defined for every widget.
531
e7f27746668e beefed up the docs.
hamidouk
parents: 500
diff changeset
   134
 */
811
b9dd62e35e30 less useless code - required widgets now support defaultOptions too.
hamidouk
parents: 810
diff changeset
   135
IriSP.instantiateWidget = function(popcornInstance, serialFactory, layoutManager, widgetConfig, defaultOptions) {
b9dd62e35e30 less useless code - required widgets now support defaultOptions too.
hamidouk
parents: 810
diff changeset
   136
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   137
    if(IriSP.null_or_undefined(defaultOptions))
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   138
        defaultOptions = {};
811
b9dd62e35e30 less useless code - required widgets now support defaultOptions too.
hamidouk
parents: 810
diff changeset
   139
    widgetConfig = IriSP.underscore.defaults(widgetConfig, defaultOptions);
287
5c7495102bd7 added a spacer div to simplify some graphic animations.
hamidouk
parents: 216
diff changeset
   140
175
b0cb7132accb variable rename.
hamidouk
parents: 171
diff changeset
   141
    var arr = IriSP.jQuery.extend({}, widgetConfig);
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   142
582
1bca6b7f56e1 give the possibility to specify containers for widgets.
hamidouk
parents: 577
diff changeset
   143
    /* create a div for those widgets who didn't already specify a container; */
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   144
    if(!arr.hasOwnProperty("container")) {
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   145
        /* create div returns us a container for the widget and a spacer */
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   146
        var ret = layoutManager.createDiv(widgetConfig.type);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   147
        var container = ret[0];
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   148
        var spacer = ret[1];
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   149
        arr.container = container;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   150
        arr.spacer = spacer;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   151
        arr.layoutManager = layoutManager;
582
1bca6b7f56e1 give the possibility to specify containers for widgets.
hamidouk
parents: 577
diff changeset
   152
    }
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   153
    var serializer = serialFactory.getSerializer(widgetConfig.metadata);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   154
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   155
    if( typeof serializer == "undefined")
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   156
        debugger;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   157
171
158f0193ec54 added support for dependency widgets (i.e : a widget can now depend on another,
hamidouk
parents: 158
diff changeset
   158
    // instantiate the object passed as a string
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   159
    var widget = new IriSP[widgetConfig.type](popcornInstance, arr, serializer);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   160
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   161
    if(widgetConfig.hasOwnProperty("requires")) {
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   162
        // also create the widgets this one depends on.
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   163
        // the dependency widget is available in the parent widget context as
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   164
        // this.WidgetName (for instance, this.TipWidget);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   165
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   166
        var i = 0;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   167
        for( i = 0; i < widgetConfig.requires.length; i++) {
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   168
            var widgetName = widgetConfig.requires[i]["type"], _configobj = IriSP.jQuery.extend({}, widgetConfig.requires[i]), _div = document.createElement('div'), _container = IriSP.guid(arr.container + '_' + widgetName + '_');
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   169
            _configobj.container = _container;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   170
            _div.id = _container;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   171
            widget.selector.append(_div);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   172
            widget[widgetName] = IriSP.instantiateWidget(popcornInstance, serialFactory, layoutManager, _configobj, defaultOptions);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   173
        }
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   174
    }
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   175
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   176
    serializer.sync(IriSP.wrap(widget, function() {
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   177
        this.draw();
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   178
    }));
171
158f0193ec54 added support for dependency widgets (i.e : a widget can now depend on another,
hamidouk
parents: 158
diff changeset
   179
    return widget;
287
5c7495102bd7 added a spacer div to simplify some graphic animations.
hamidouk
parents: 216
diff changeset
   180
};
743
69a9969daa41 better defaults - paths are now computed at run-time.
hamidouk
parents: 707
diff changeset
   181
/** single point of entry for the metadataplayer */
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   182
IriSP.initPlayer = function(config, metadata_url, format) {
840
ac66e2240e1e bugfixes
veltr
parents: 828
diff changeset
   183
    document.getElementById(config.gui.container).innerHTML = IriSP.templToHTML(IriSP.loading_template, config.gui);
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   184
    IriSP.loadLibs(config, metadata_url, format, function() {
743
69a9969daa41 better defaults - paths are now computed at run-time.
hamidouk
parents: 707
diff changeset
   185
866
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   186
        var layoutManager = new IriSP.LayoutManager(config.gui);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   187
        
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   188
        if (typeof IriSP._videoData !== "undefined" && typeof config.player.video === "undefined") {
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   189
            var _media = IriSP._videoData.currentMedia;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   190
            if (typeof _media !== "undefined") {
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   191
                config.player.video = _media.video;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   192
                if (typeof _media.streamer !== "undefined") {
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   193
                    config.player.streamer = _media.streamer;
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   194
                    config.player.video = _media.video.replace(_media.streamer,'');
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   195
                }
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   196
            }
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   197
            
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   198
        }
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   199
        
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   200
        var pop = IriSP.configurePopcorn(layoutManager, config.player);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   201
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   202
        IriSP._widgets = IriSP.configureWidgets(pop, layoutManager, config.gui);
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   203
        IriSP.jQuery('#Ldt-loader').detach();
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   204
    });
3bf7aa8216e5 IriSP.Model.List now inherits from Array
veltr
parents: 842
diff changeset
   205
};