integration/js/editor.js
author veltr
Tue, 30 Oct 2012 18:44:45 +0100
changeset 27 b2d068afdbd8
parent 26 7c394ea40f28
child 29 5ce5e26091ea
permissions -rw-r--r--
Mashup editing and preview
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
     1
IriSP.Hashcut = function(options) {
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
     2
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
     3
    /* Load Media List */
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
     4
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
     5
    var directory = new IriSP.Model.Directory(),
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
     6
        project = directory.remoteSource({
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
     7
            url: options.url,
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
     8
            serializer: IriSP.serializers.medialist
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
     9
        }),
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    10
        mashup = new IriSP.Model.Mashup(false, project),
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    11
        mediatemplate = _.template('<li class="item-video" data-media-id="<%= id %>"><img src="<%= thumbnail %>" alt="<%= title %>" />'
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    12
            + '<span class="video-info"><span class="title-video"><%= title %></span><span class="author"><%= description %></span>'
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    13
            + '<span class="time-length">Durée : <span><%= duration.toString() %></span></span></span></li>'),
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    14
        segmenttemplate = _.template('<li class="item-video" data-segment-id="<%= annotation.id %>" data-media-id="<%= annotation.getMedia().id %>">'
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    15
            + '<img src="<%= annotation.getMedia().thumbnail %>" alt="<%= annotation.getMedia().title %>" />'
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    16
            + '<span class="video-info"><span class="title-video"><%= annotation.getMedia().title %></span>'
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    17
            + '<span class="subtitle"><%= annotation.title %></span><span class="duration"><%= annotation.begin.toString() %> - <%= annotation.end.toString() %> (<%= annotation.getDuration().toString() %>)</span>'
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    18
            + '<ul class="tools"><li><a class="edit" href="#" title="Éditer le segment"></a></li><li><a class="bottom" href="#" title="Descendre le segment"></a></li>'
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    19
            + '<li><a class="top" href="#" title="Remonter le segment"></a></li><li><a class="delete" href="#" title="Supprimer le segment"></a></li></ul></span></li>'),
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    20
        viztemplate = _.template('<div class="frise-segment" style="background-color:<%= color %>; left:<%= left %>%; width:<%= width %>%;"></div>'),
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    21
        intervaltemplate = _.template('<span class="frise-indication" style="left:<%= left %>%;"><%= time.toString() %></span>');
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    23
    /* Fill left column with Media List */
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    24
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    25
    project.onLoad(function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    26
        var html = '';
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    27
        project.getMedias().forEach(function(_m) {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    28
            html += mediatemplate(_m);
13
42c59d09670e display media list
veltr
parents: 12
diff changeset
    29
        });
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    30
        $(".col-left .list-video").html(html);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    31
    });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    32
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    33
    /* Search Media with left column form */
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    34
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    35
    $(".col-left input").on("keyup change input paste", function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    36
        var val = $(this).val();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    37
        if (val) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    38
            var find = IriSP.Model.regexpFromTextOrArray(val, true),
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    39
                replace = IriSP.Model.regexpFromTextOrArray(val, false);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    40
        }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    41
        $(".col-left .item-video").each(function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    42
            var li = $(this),
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    43
                title = $(this).find(".title-video"),
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    44
                titletext = title.text();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    45
            if (val && find.test(titletext)) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    46
                title.html(titletext.replace(replace, '<span style="background: yellow;">$1</span>'));
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    47
                li.show();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    48
            } else {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    49
                title.text(titletext);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    50
                if (val) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    51
                    li.hide();
13
42c59d09670e display media list
veltr
parents: 12
diff changeset
    52
                } else {
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    53
                    li.show();
13
42c59d09670e display media list
veltr
parents: 12
diff changeset
    54
                }
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    55
            }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    56
        })
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    57
    });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    58
    
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    59
    /* Fill right column when mashup is updated */
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    60
   
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    61
    function setPointerToCurrentAnnotation() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    62
        if (mashupCurrentAnnotation) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    63
            var p = (mashupCurrentAnnotation.begin + mashupCurrentAnnotation.end) / (2 * mashup.duration);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    64
            $(".mashup-description .pointer").css("left", (100 * p) + "%");
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    65
        }
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    66
    }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    67
    
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    68
    function updateMashupUI() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    69
        var listhtml = '', vizhtml = '', t = 0, k = mashup.duration ? (100 / mashup.duration) : 0;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    70
        mashup.segments.forEach(function(_s) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    71
            listhtml += segmenttemplate(_s);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    72
            var vizdata = {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    73
                left: k * t,
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    74
                width: k * _s.duration,
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    75
                color: _s.getMedia().color
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    76
            }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    77
            vizhtml += viztemplate(vizdata);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    78
            t += _s.duration.milliseconds;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    79
        });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    80
        
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    81
        var intervals = [ 1000, 2000, 5000, 10000, 30000, 60000, 120000, 300000, 600000, 900000, 1800000, 3600000, 7200000 ];
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    82
        
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    83
        function createIntervals(maxn) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    84
            for (var i = 0; i < intervals.length; i++) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    85
                if (mashup.duration / intervals[i] <= maxn) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    86
                    var html = '';
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    87
                    for (var j = intervals[i]; j < mashup.duration; j += intervals[i]) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    88
                        html += intervaltemplate({ left: k * j, time: new IriSP.Model.Time(j) });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    89
                    }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    90
                    return html;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    91
                }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    92
            }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    93
            return "";
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    94
        }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    95
        
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    96
        $(".col-right .list-video").html(listhtml).find(".item-video:last-child .bottom, .item-video:first-child .top").addClass("disable");
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    97
        $(".mashup-total-duration").text(mashup.duration.toString());
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    98
        $(".frise-segments").html(vizhtml);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
    99
        $(".col-right .frise-indications").html(createIntervals(4));
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   100
        $(".bloc-pvw .frise-indications").html(createIntervals(8));
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   101
        highlightCurrentSegment();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   102
        if (currentMedia === mashup) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   103
            $(".Ldt-Ctrl-Time-Total").text(currentMedia.duration.toString());
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   104
            if (mashupTimecode > mashup.duration) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   105
                mashup.setCurrentTime(mashup.duration);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   106
            }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   107
            changeCurrentAnnotation();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   108
            setPointerToCurrentAnnotation();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   109
        }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   110
    }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   111
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   112
    mashup.on("change",updateMashupUI);
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   113
    
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   114
    /* Slider */
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   115
   
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   116
    var timeSlider = $(".Ldt-Slider"),
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   117
        slidersRange = 920;
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   118
    timeSlider.slider({
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   119
        range: "min",
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   120
        value: 0,
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   121
        min: 0,
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   122
        max: slidersRange,
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   123
        slide: function(event, ui) {
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   124
            if (currentMedia) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   125
                var t = currentMedia.duration * ui.value / slidersRange;
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   126
                currentMedia.setCurrentTime(t);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   127
            }
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   128
        }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   129
    });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   130
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   131
    var timeSliderHandle = timeSlider.find('.ui-slider-handle'),
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   132
        timeSliderMaximized = false,
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   133
        timeSliderTimeoutId = false,
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   134
        timeSliderMinimizedHeight = 4,
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   135
        timeSliderMaximizedHeight = 10,
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   136
        timeSliderTimeoutDuration = 1500,
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   137
        timeTooltip = $(".Ldt-Slider-Time");
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   138
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   139
    timeSlider.css(calculateSliderCss(timeSliderMinimizedHeight));
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   140
    timeSliderHandle.css(calculateHandleCss(timeSliderMinimizedHeight));
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   141
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   142
    function timeSliderMouseOver() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   143
        if (timeSliderTimeoutId) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   144
            window.clearTimeout(timeSliderTimeoutId);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   145
            timeSliderTimeoutId = false;
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   146
        }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   147
        if (!timeSliderMaximized) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   148
           timeSliderAnimateToHeight(timeSliderMaximizedHeight);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   149
           timeSliderMaximized = true;
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   150
        }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   151
    }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   152
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   153
    function timeSliderMouseOut() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   154
        timeTooltip.hide();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   155
        if (timeSliderTimeoutId) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   156
            clearTimeout(timeSliderTimeoutId);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   157
            timeSliderTimeoutId = false;
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   158
        }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   159
        timeSliderTimeoutId = setTimeout(function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   160
            if (timeSliderMaximized) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   161
                timeSliderAnimateToHeight(timeSliderMinimizedHeight);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   162
                timeSliderMaximized = false;
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   163
            }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   164
            timeSliderTimeoutId = false;
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   165
        }, timeSliderTimeoutDuration);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   166
    }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   167
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   168
    timeSlider
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   169
        .mouseover(function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   170
            timeTooltip.show();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   171
            timeSliderMouseOver();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   172
        })
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   173
        .mouseout(timeSliderMouseOut)
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   174
        .mousemove(function(_e) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   175
            var _x = _e.pageX - timeSlider.offset().left,
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   176
                _t = new IriSP.Model.Time(
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   177
                    currentMedia ? currentMedia.duration * _x / timeSlider.width() : 0
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   178
                );
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   179
            timeTooltip.text(_t.toString()).css("left",_x);
15
56937307d7f4 cleaning css
veltr
parents: 13
diff changeset
   180
        });
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   181
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   182
    $(".Ldt-Ctrl").mouseover(timeSliderMouseOver).mouseout(timeSliderMouseOut);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   183
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   184
    function timeSliderAnimateToHeight(_height) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   185
        timeSlider.stop().animate(
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   186
            calculateSliderCss(_height),
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   187
            500,
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   188
            function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   189
                IriSP.jQuery(this).css("overflow","visible");
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   190
            });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   191
        timeSliderHandle.stop().animate(
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   192
            calculateHandleCss(_height),
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   193
            500,
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   194
            function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   195
                IriSP.jQuery(this).css("overflow","visible");
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   196
            });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   197
    }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   198
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   199
    function calculateSliderCss(_size) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   200
        return {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   201
            height: _size + "px",
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   202
            "margin-top": (timeSliderMinimizedHeight - _size) + "px"
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   203
        };
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   204
    }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   205
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   206
    function calculateHandleCss(_size) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   207
        return {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   208
            height: (2 + _size) + "px",
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   209
            width: (2 + _size) + "px",
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   210
            "margin-left": -Math.ceil(2 + _size / 2) + "px" 
18
c85b323f5174 Modifications to home
veltr
parents: 15
diff changeset
   211
        }
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   212
    }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   213
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   214
    /* Controller Widget */
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   215
   
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   216
    var volBlock = $(".Ldt-Ctrl-Volume-Control");
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   217
    
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   218
    $('.Ldt-Ctrl-Sound')
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   219
        .click(function() {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   220
            if (currentMedia) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   221
                currentMedia.setMuted(!currentMedia.getMuted());
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   222
            }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   223
        })
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   224
        .mouseover(function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   225
            volBlock.show();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   226
        })
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   227
        .mouseout(function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   228
            volBlock.hide();
18
c85b323f5174 Modifications to home
veltr
parents: 15
diff changeset
   229
        });
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   230
    volBlock.mouseover(function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   231
        volBlock.show();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   232
    }).mouseout(function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   233
        volBlock.hide();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   234
    });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   235
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   236
    var volBar = $(".Ldt-Ctrl-Volume-Bar");
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   237
    
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   238
    function ctrlVolumeUpdater() {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   239
        if (currentMedia) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   240
            var _muted = currentMedia.getMuted(),
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   241
                _vol = currentMedia.getVolume();
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   242
            if (_vol === false) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   243
                _vol = .5;
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   244
            }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   245
            var _soundCtl = $(".Ldt-Ctrl-Sound");
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   246
            _soundCtl.removeClass("Ldt-Ctrl-Sound-Mute Ldt-Ctrl-Sound-Half Ldt-Ctrl-Sound-Full");
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   247
            if (_muted) {        
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   248
                _soundCtl.attr("title", "Activer le son")
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   249
                    .addClass("Ldt-Ctrl-Sound-Mute");    
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   250
            } else {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   251
                _soundCtl.attr("title", "Couper le son")
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   252
                    .addClass(_vol < .5 ? "Ldt-Ctrl-Sound-Half" : "Ldt-Ctrl-Sound-Full" )
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   253
            }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   254
            volBar.slider("value", _muted ? 0 : 100 * _vol);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   255
            volBar.attr("title",'Volume : ' + Math.floor(100 * _vol) + '%');
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   256
        }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   257
    }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   258
    
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   259
    volBar.slider({
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   260
        slide: function(event, ui) {
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   261
            if (currentMedia) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   262
                currentMedia.setVolume(ui.value / 100);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   263
            }
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   264
        }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   265
    });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   266
    
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   267
    $(".Ldt-Ctrl-Play").click(function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   268
        if (currentMedia) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   269
            if (currentMedia.getPaused()) {        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   270
                currentMedia.play();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   271
            } else {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   272
                currentMedia.pause();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   273
            }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   274
        }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   275
    });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   276
    
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   277
    $(".Ldt-Ctrl-SetIn").click(function() {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   278
        if (currentMedia && currentSegment) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   279
            currentSegment.setBegin(currentMedia.getCurrentTime());
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   280
        }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   281
    });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   282
    $(".Ldt-Ctrl-SetOut").click(function() {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   283
        if (currentMedia && currentSegment) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   284
            currentSegment.setEnd(currentMedia.getCurrentTime());
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   285
        }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   286
    });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   287
    
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   288
    /* Slice Widget */
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   289
   
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   290
    var sliceSlider = $(".Ldt-Slice"),
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   291
        sliceStartTime;
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   292
    
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   293
    sliceSlider.slider({
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   294
        range: true,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   295
        values: [0, slidersRange],
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   296
        min: 0,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   297
        max: slidersRange,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   298
        start: function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   299
            if (currentMedia) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   300
                if (!currentMedia.getPaused()) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   301
                    currentMedia.pause();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   302
                }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   303
            }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   304
        },
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   305
        slide: function(event, ui) {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   306
            if (currentMedia && currentSegment) {
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   307
                var t = currentMedia.duration * ui.value / slidersRange;
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   308
                if (ui.value === ui.values[0]) {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   309
                    currentSegment.setBegin(t);
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   310
                } else {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   311
                    currentSegment.setEnd(t);
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   312
                }
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   313
            }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   314
        }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   315
    });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   316
    
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   317
    sliceSlider.find(".ui-slider-handle:first")
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   318
        .addClass("Ldt-Slice-left-handle")
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   319
        .click(function() {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   320
            if (currentMedia && currentSegment) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   321
                currentMedia.setCurrentTime(currentSegment.begin);
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   322
            }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   323
        });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   324
    sliceSlider.find(".ui-slider-handle:last")
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   325
        .addClass("Ldt-Slice-right-handle")
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   326
        .click(function() {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   327
            if (currentMedia && currentSegment) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   328
                currentMedia.setCurrentTime(currentSegment.end);
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   329
            }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   330
        });
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   331
    
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   332
    /* UI Events */
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   333
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   334
    function onCurrentMediaPlay() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   335
        $(".Ldt-Ctrl-Play")
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   336
            .attr("title", "Pause")
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   337
            .removeClass("Ldt-Ctrl-Play-PlayState")
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   338
            .addClass("Ldt-Ctrl-Play-PauseState")
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   339
    }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   340
    
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   341
    function onCurrentMediaPause() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   342
        $(".Ldt-Ctrl-Play")
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   343
            .attr("title", "Lecture")
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   344
            .removeClass("Ldt-Ctrl-Play-PauseState")
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   345
            .addClass("Ldt-Ctrl-Play-PlayState")
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   346
    }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   347
    
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   348
    function onCurrentMediaTimeupdate(_time) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   349
        $(".Ldt-Ctrl-Time-Elapsed").text(_time.toString());
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   350
        timeSlider.slider("value",slidersRange * _time / currentMedia.duration);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   351
    }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   352
    
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   353
    /* Mashup Player */
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   354
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   355
    var mashupCurrentMedia = null,
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   356
        mashupCurrentAnnotation = null,
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   357
        mashupSegmentBegin,
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   358
        mashupSegmentEnd,
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   359
        mashupTimecode = 0,
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   360
        mashupSeeking = false,
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   361
        mashupSeekdiv,
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   362
        mashupTimedelta;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   363
        
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   364
    function changeCurrentAnnotation() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   365
        if (mashupTimecode >= mashup.duration) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   366
            if (!mashup.paused) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   367
                mashup.paused = true;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   368
                mashup.trigger("pause");
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   369
            }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   370
            mashupTimecode = 0;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   371
        }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   372
        var _annotation = mashup.getAnnotationAtTime( mashupTimecode );
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   373
        if (typeof _annotation === "undefined") {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   374
            if (mashupCurrentMedia) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   375
                mashupCurrentMedia.pause();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   376
                if (!mashup.paused) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   377
                    mashup.paused = true;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   378
                    mashup.trigger("pause");
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   379
                }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   380
            }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   381
            return;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   382
        }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   383
        mashupCurrentAnnotation = _annotation;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   384
        mashupSegmentBegin = mashupCurrentAnnotation.annotation.begin.milliseconds;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   385
        mashupSegmentEnd = mashupCurrentAnnotation.annotation.end.milliseconds;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   386
        mashupTimedelta = mashupSegmentBegin - mashupCurrentAnnotation.begin.milliseconds;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   387
        mashupCurrentMedia = mashupCurrentAnnotation.getMedia();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   388
        
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   389
        project.getMedias().forEach(function(_media) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   390
            if (_media !== mashupCurrentMedia) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   391
                _media.hide();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   392
                _media.pause();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   393
            } else {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   394
                _media.show();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   395
            }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   396
        });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   397
        
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   398
        mashupCurrentMedia.setCurrentTime( mashupTimecode + mashupTimedelta);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   399
        mashupCurrentMedia.seeking = true;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   400
        
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   401
        if (!mashup.paused) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   402
            mashupCurrentMedia.play();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   403
            mashupSeeking = true;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   404
//TODO:            _seekdiv.show();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   405
        }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   406
        mashup.trigger("timeupdate", new IriSP.Model.Time(mashupTimecode));
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   407
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   408
    }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   409
    
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   410
    /* Set current Media */
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   411
   
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   412
    var currentMedia, currentSegment;
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   413
    
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   414
    function updateSliderAndTangles() {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   415
        if (currentMedia && currentSegment) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   416
            var start = currentSegment.begin,
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   417
                end = currentSegment.end,
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   418
                dur = currentSegment.getDuration(),
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   419
                f = slidersRange / currentMedia.duration,
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   420
                tangleStart = $(".tangle-start"),
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   421
                tangleEnd = $(".tangle-end"),
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   422
                tangleDuration = $(".tangle-duration");
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   423
            sliceSlider.slider( "values", [ f * start, f * end ] );
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   424
            tangleStart.text(start.toString(tangleStart.hasClass("active"))).attr("data-milliseconds",start.milliseconds);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   425
            tangleEnd.text(end.toString(tangleEnd.hasClass("active"))).attr("data-milliseconds",end.milliseconds);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   426
            tangleDuration.text(dur.toString(tangleDuration.hasClass("active"))).attr("data-milliseconds",dur.milliseconds);
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   427
            $(".segment-info .pointer").css("left",(parseFloat($(".Ldt-Slice-left-handle").css("left")) + parseFloat($(".Ldt-Slice-right-handle").css("left")))/2)
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   428
        }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   429
    }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   430
    
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   431
    var addMode;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   432
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   433
    function setMedia(media) {
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   434
        $(".col-left .item-video").removeClass("active");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   435
        $(".tutorial").hide();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   436
        if (currentMedia) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   437
            currentMedia.pause();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   438
        }
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   439
        currentMedia = media;
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   440
        if (currentMedia.elementType == "media") {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   441
            $("video").hide();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   442
            $(".col-left .item-video[data-media-id='" + currentMedia.id + "']").addClass("active");
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   443
            showSegmentation();
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   444
            var currentvideo = $('#video_' + currentMedia.id);
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   445
            if (!currentvideo.length) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   446
                addMediaPlayer(currentMedia);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   447
            }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   448
            $(".tab-media-title").text(currentMedia.title);
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   449
            
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   450
            addMode = !(currentSegment && mashup.hasAnnotation(currentSegment));
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   451
            
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   452
            if (!currentSegment) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   453
                currentSegment = new IriSP.Model.Annotation(false, project);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   454
                currentSegment.setMedia(currentMedia.id);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   455
                currentSegment.setBegin(0);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   456
                currentSegment.setEnd(currentMedia.duration);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   457
                currentSegment.title = "Segment sans titre";
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   458
                currentSegment.description = "Extrait de « " + currentMedia.title + " »";
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   459
                currentSegment.on("change-begin", function() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   460
                    if (currentMedia && currentSegment === this) {
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   461
                        currentMedia.setCurrentTime(this.begin);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   462
                        updateSliderAndTangles();
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   463
                    }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   464
                });
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   465
                currentSegment.on("change-end", function() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   466
                    if (currentMedia && currentSegment === this) {
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   467
                        currentMedia.setCurrentTime(this.end);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   468
                        updateSliderAndTangles();
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   469
                    }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   470
                });
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   471
                currentSegment.on("enter", function() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   472
                    if (currentMedia === mashup) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   473
                        $(".annotation-title").text(this.title);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   474
                        $(".annotation-begin").text(this.begin.toString());
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   475
                        $(".annotation-end").text(this.end.toString());
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   476
                        $(".annotation-media-title").text(this.getMedia().title);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   477
                        $(".annotation-description").text(this.description);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   478
                        setPointerToCurrentAnnotation();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   479
                    }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   480
                })
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   481
            }
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   482
            if (currentMedia.loaded) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   483
                currentMedia.setCurrentTime(currentSegment.begin);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   484
            }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   485
            $(".add-segment").val(addMode ? "Ajouter au Hashcut" : "Sauvegarder");
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   486
            $(".create-or-edit").text(addMode ? "Créer un nouveau segment" : "Modifier le segment");
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   487
            updateSliderAndTangles();
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   488
            media.show();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   489
            $("#segment-title").val(currentSegment.title);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   490
            $("#segment-description").val(currentSegment.description);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   491
            $("#segment-tags").val("");
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   492
        }
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   493
        if (currentMedia.elementType === "mashup") {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   494
            showPreview();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   495
            mashup.checkLoaded();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   496
        }
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   497
        $(".Ldt-Ctrl-Time-Total").text(currentMedia.duration.toString());
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   498
        // TODO: Do something with the tags !
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   499
        onCurrentMediaTimeupdate(currentMedia.getCurrentTime());
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   500
        onCurrentMediaPause();
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   501
        highlightCurrentSegment();
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   502
    }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   503
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   504
    function addMediaPlayer(media) {
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   505
        var videoid = "video_" + media.id,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   506
            videoEl = $('<video>'),
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   507
            width = $(".video").width(),
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   508
            height = $(".video").height(),
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   509
            mp4_file = media.video.replace(/\.webm$/i,'.mp4'),
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   510
            webm_file = media.video.replace(/\.mp4$/i,'.webm'),
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   511
            mp4_src = $('<source>'),
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   512
            webm_src = $('<source>');
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   513
        mp4_src.attr({
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   514
            src: mp4_file,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   515
            type: "video/mp4"
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   516
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   517
        webm_src.attr({
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   518
            src: webm_file,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   519
            type: "video/webm"
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   520
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   521
        videoEl.attr({
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   522
            id : videoid,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   523
            width : width,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   524
            height : height
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   525
        }).css({
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   526
            position : "absolute",
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   527
            left: 0,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   528
            top: 0,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   529
            width : width,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   530
            height : height
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   531
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   532
        videoEl.append(mp4_src).append(webm_src);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   533
        $(".video").append(videoEl);
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   534
        
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   535
        media.show = function() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   536
            videoEl.show();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   537
        }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   538
        media.hide = function() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   539
            videoEl.hide();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   540
        }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   541
        
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   542
        var popcorn = Popcorn("#" + videoid);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   543
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   544
        // Binding functions to Popcorn
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   545
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   546
        media.on("setcurrenttime", function(_milliseconds) {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   547
            if (media.loaded) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   548
                popcorn.currentTime(_milliseconds / 1000);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   549
            }
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   550
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   551
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   552
        media.on("setvolume", function(_vol) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   553
            media.volume = _vol;
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   554
            if (media.loaded) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   555
                popcorn.volume(_vol);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   556
            }
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   557
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   558
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   559
        media.on("setmuted", function(_muted) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   560
            media.muted = _muted;
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   561
            if (media.loaded) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   562
                popcorn.muted(_muted);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   563
            }
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   564
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   565
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   566
        media.on("setplay", function() {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   567
            if (media.loaded) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   568
                popcorn.play();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   569
            }
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   570
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   571
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   572
        media.on("setpause", function() {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   573
            if (media.loaded) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   574
                popcorn.pause();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   575
            }
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   576
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   577
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   578
        // Binding Popcorn events to media
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   579
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   580
        function getVolume() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   581
            media.muted = popcorn.muted();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   582
            media.volume = popcorn.volume();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   583
        }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   584
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   585
        popcorn.on("loadedmetadata", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   586
            getVolume();
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   587
            media.loaded = true;
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   588
            media.trigger("loadedmetadata");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   589
            media.trigger("volumechange");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   590
        })
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   591
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   592
        popcorn.on("timeupdate", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   593
            media.trigger("timeupdate", new IriSP.Model.Time(1000*popcorn.currentTime()));
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   594
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   595
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   596
        popcorn.on("volumechange", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   597
            getVolume();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   598
            media.trigger("volumechange");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   599
        })
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   600
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   601
        popcorn.on("play", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   602
            media.trigger("play");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   603
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   604
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   605
        popcorn.on("pause", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   606
            media.trigger("pause");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   607
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   608
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   609
        popcorn.on("seeked", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   610
            media.trigger("seeked");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   611
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   612
        
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   613
        // Binding UI Events and Mashup Playing to Media
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   614
        
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   615
        media.on("loadedmetadata", function() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   616
            mashup.checkLoaded();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   617
        });
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   618
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   619
        media.on("play", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   620
            if (media === currentMedia) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   621
                onCurrentMediaPlay();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   622
            }
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   623
            if (mashup === currentMedia && media === mashupCurrentMedia) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   624
                mashup.trigger("play");
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   625
            }
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   626
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   627
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   628
        media.on("pause", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   629
            if (media === currentMedia) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   630
                onCurrentMediaPause();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   631
            }
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   632
            if (mashup === currentMedia && media === mashupCurrentMedia) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   633
                mashup.trigger("pause");
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   634
            }
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   635
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   636
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   637
        media.on("timeupdate", function(_time) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   638
            if (media === currentMedia) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   639
                onCurrentMediaTimeupdate(_time);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   640
            }
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   641
            if (mashup === currentMedia && !mashup.paused && media === mashupCurrentMedia && !media.seeking) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   642
                if ( _time < mashupSegmentEnd ) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   643
                    if ( _time >= mashupSegmentBegin ) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   644
                        mashupTimecode = _time - mashupTimedelta;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   645
                    } else {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   646
                        mashupTimecode = mashupSegmentBegin - mashupTimedelta;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   647
                        media.setCurrentTime(mashupSegmentBegin);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   648
                    }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   649
                } else {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   650
                    mashupTimecode = mashupSegmentEnd - mashupTimedelta;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   651
                    media.pause();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   652
                    changeCurrentAnnotation();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   653
                }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   654
                mashup.trigger("timeupdate", new IriSP.Model.Time(mashupTimecode));
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   655
            }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   656
        });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   657
        
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   658
        media.on("seeked", function() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   659
            media.seeking = false;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   660
            if (mashup === currentMedia && media === mashupCurrentMedia && mashupSeeking) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   661
                mashupSeeking = false;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   662
//TODO:                _seekdiv.hide();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   663
            }
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   664
        });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   665
        
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   666
        media.on("volumechange", function() {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   667
            if (media === currentMedia) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   668
                ctrlVolumeUpdater();
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   669
            }
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   670
            mashup.muted = media.muted;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   671
            mashup.volume = media.volume;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   672
            mashup.trigger("volumechange");
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   673
        })
18
c85b323f5174 Modifications to home
veltr
parents: 15
diff changeset
   674
        
13
42c59d09670e display media list
veltr
parents: 12
diff changeset
   675
    }
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   676
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   677
    // Mashup Events
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   678
    
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   679
    mashup.on("setcurrenttime", function(_milliseconds) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   680
        mashupTimecode = _milliseconds;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   681
        changeCurrentAnnotation();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   682
    });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   683
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   684
    mashup.on("setvolume", function(_vol) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   685
        mashup.getMedias().forEach(function(_media) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   686
            _media.setVolume(_vol);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   687
        });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   688
        mashup.volume = _vol;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   689
    });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   690
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   691
    mashup.on("setmuted", function(_muted) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   692
        mashup.getMedias().forEach(function(_media) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   693
            _media.setMuted(_muted);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   694
        });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   695
        mashup.muted = _muted;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   696
    });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   697
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   698
    mashup.on("setplay", function() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   699
        mashup.paused = false;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   700
        changeCurrentAnnotation();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   701
    });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   702
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   703
    mashup.on("setpause", function() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   704
        mashup.paused = true;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   705
        if (mashupCurrentMedia) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   706
            mashupCurrentMedia.pause();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   707
        }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   708
    });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   709
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   710
    mashup.on("loadedmetadata", function() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   711
        if (mashup === currentMedia) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   712
            changeCurrentAnnotation();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   713
        }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   714
    });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   715
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   716
    /* Mashup Events to UI */
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   717
   
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   718
    mashup.on("play", function() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   719
        if (mashup === currentMedia) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   720
            onCurrentMediaPlay();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   721
        }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   722
    });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   723
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   724
    mashup.on("pause", function() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   725
        if (mashup === currentMedia) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   726
            onCurrentMediaPause();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   727
        }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   728
    });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   729
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   730
    mashup.on("timeupdate", function(_time) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   731
        if (mashup === currentMedia) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   732
            $(".frise-position").css("left",(100*_time/mashup.duration)+"%");
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   733
            onCurrentMediaTimeupdate(_time);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   734
        }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   735
    });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   736
        
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   737
    /* Segment Form interaction */
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   738
   
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   739
    $("#segment-title").on("keyup change input paste", function() {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   740
        if (currentMedia && currentSegment) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   741
            currentSegment.title = $(this).val();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   742
            updateMashupUI();
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   743
        }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   744
    });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   745
    $("#segment-description").on("keyup change input paste", function() {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   746
        if (currentMedia && currentSegment) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   747
            currentSegment.description = $(this).val();
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   748
        }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   749
    });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   750
    $("#segment-form").submit(function() {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   751
        if (addMode) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   752
            mashup.addAnnotation(currentSegment);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   753
        } else {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   754
            updateMashupUI();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   755
        }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   756
        var segment = mashup.getAnnotation(currentSegment);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   757
        currentSegment = undefined;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   758
        setMedia(mashup);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   759
        if (segment) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   760
            mashup.setCurrentTime(segment.begin);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   761
        }
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   762
    })
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   763
    
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   764
    /* Click on media items */
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   765
   
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   766
    $(".col-left").on("click", ".item-video", function() {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   767
        currentSegment = undefined;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   768
        setMedia(project.getElement($(this).attr("data-media-id")));
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   769
    });
12
8a8b6097d382 Starting 'editorjs' branch
veltr
parents:
diff changeset
   770
    
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   771
    /* Click on Tabs */
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   772
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   773
    function showSegmentation() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   774
        $(".col-middle").removeClass("empty-mode pvw-mode").addClass("segment-mode");
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   775
        return false;
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   776
    }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   777
    function showPreview() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   778
        $(".col-middle").removeClass("empty-mode segment-mode").addClass("pvw-mode");
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   779
        return false;
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   780
    }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   781
    
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   782
    $(".tab-pvw").click(function() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   783
        if (mashup.segments.length) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   784
            setMedia(mashup);
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   785
        }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   786
    });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   787
    
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   788
    /* Click on segments */
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   789
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   790
    function reorganizeMashup() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   791
        var ids = $(".organize-segments .item-video").map(function(){return $(this).attr("data-segment-id")});
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   792
        mashup.setAnnotationsById(ids);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   793
    }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   794
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   795
    function highlightCurrentSegment() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   796
        $(".organize-segments .item-video").removeClass("active");
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   797
        if (currentMedia && currentSegment) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   798
            $(".item-video[data-segment-id='" + currentSegment.id + "']").addClass("active");
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   799
        }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   800
    }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   801
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   802
    $(".organize-segments").sortable({
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   803
        stop : reorganizeMashup
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   804
    });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   805
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   806
    $(".organize-segments").on("click", ".item-video", function(e) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   807
        var el = $(this),
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   808
            segment = mashup.getAnnotationById(el.attr("data-segment-id"));
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   809
        setMedia(mashup);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   810
        if (segment) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   811
            mashup.setCurrentTime(segment.begin);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   812
        }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   813
        return false;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   814
    });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   815
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   816
    $(".organize-segments").on("click", ".edit", function(e) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   817
        var currentItem = $(this).parents(".item-video"),
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   818
            media = project.getElement(currentItem.attr("data-media-id")),
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   819
            segment = project.getElement(currentItem.attr("data-segment-id"));
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   820
        currentSegment = segment;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   821
        setMedia(media);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   822
        return false;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   823
    });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   824
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   825
    $(".organize-segments").on("click", ".top", function(e){
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   826
        var currentItem = $(this).parents(".item-video");
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   827
        currentItem.insertBefore(currentItem.prev());
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   828
		reorganizeMashup();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   829
		return false;
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   830
    });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   831
    
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   832
    $(".organize-segments").on("click", ".bottom", function(e){
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   833
        var currentItem = $(this).parents(".item-video");
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   834
        currentItem.insertAfter(currentItem.next());
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   835
		reorganizeMashup();
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   836
        return false;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   837
    });
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   838
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   839
    $(".organize-segments").on("click", ".delete", function(e){
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   840
        var id = $(this).parents(".item-video").attr("data-segment-id");
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   841
        mashup.removeAnnotationById(id);
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   842
        return false;
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   843
    });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   844
    
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   845
    /* Tangles */
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   846
    var tangleMsPerPixel = 100,
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   847
        activeTangle,
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   848
        tangleStartX,
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   849
        tangleStartVal,
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   850
        tangleHasMoved;
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   851
    
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   852
    $(".time-tangle").mousedown(function(evt) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   853
        activeTangle = $(this);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   854
        activeTangle.addClass("active");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   855
        tangleStartVal = +activeTangle.attr("data-milliseconds");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   856
        tangleStartX = evt.pageX;
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   857
        tangleHasMoved = false;
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   858
        $(this).siblings(".time-tangle").addClass("deactivate");
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   859
        return false;
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   860
    });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   861
    $(document)
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   862
        .mousemove(function(evt) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   863
            if (activeTangle) {
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   864
                tangleHasMoved = true;
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   865
                var newval = new IriSP.Model.Time(tangleMsPerPixel * (evt.pageX - tangleStartX) + tangleStartVal);
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   866
                activeTangle.trigger("valuechange", newval);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   867
                return false;
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   868
            }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   869
        })
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   870
        .mouseup(function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   871
            if (activeTangle) {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   872
                activeTangle.text(activeTangle.text().replace(/\.\d+$/,''));
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   873
                $(".time-tangle").removeClass("active deactivate");
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   874
                activeTangle = undefined;
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   875
            }
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   876
        });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   877
        
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   878
    $(".tangle-start")
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   879
        .mouseup(function(evt) {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   880
            if (!tangleHasMoved && currentMedia && currentSegment) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   881
                currentMedia.setCurrentTime(currentSegment.begin);
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   882
            }
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   883
        })
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   884
        .on("valuechange", function(evt, val) {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   885
            if (currentMedia && currentSegment) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   886
                currentSegment.setBegin(val);
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   887
            }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   888
        });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   889
    $(".tangle-end")
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   890
        .mouseup(function(evt) {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   891
            if (!tangleHasMoved && currentMedia && currentSegment) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   892
                currentMedia.setCurrentTime(currentSegment.end);
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   893
            }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   894
        })
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   895
        .on("valuechange", function(evt, val) {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   896
            if (currentMedia && currentSegment) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   897
                currentSegment.setEnd(val);
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   898
            }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   899
        });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   900
    $(".tangle-duration").on("valuechange", function(evt, val) {
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   901
        if (currentMedia && currentSegment) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   902
            currentSegment.setDuration(val);
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   903
        }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   904
    });
27
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   905
    
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   906
    $(".mashup-description .edit").click(function() {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   907
        if (mashupCurrentAnnotation) {
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   908
            currentSegment = mashupCurrentAnnotation.annotation;
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   909
            setMedia(mashupCurrentAnnotation.getMedia());
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   910
        }
b2d068afdbd8 Mashup editing and preview
veltr
parents: 26
diff changeset
   911
    })
13
42c59d09670e display media list
veltr
parents: 12
diff changeset
   912
}