crea/integration/metadataplayer/MusitagAnnotations.js
author ymh <ymh.work@gmail.com>
Wed, 06 Jun 2012 23:00:42 +0200
changeset 16 e37a29d23c86
parent 4 4928ecd06b44
child 15 f1d070549d94
permissions -rw-r--r--
First version of tralalere platform
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     1
IriSP.Widgets.MusitagAnnotations = function(player, config) {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     2
    IriSP.Widgets.Widget.call(this, player, config);
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     3
};
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     4
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     5
IriSP.Widgets.MusitagAnnotations.prototype = new IriSP.Widgets.Widget();
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     6
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     7
IriSP.Widgets.MusitagAnnotations.prototype.defaults = {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     8
    annotation_type: 'musitag',
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     9
    columns: 15,
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    10
    max_by_column: 10,
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    11
    emoticons: ['happy', 'unhappy', 'laughing', 'surprised'],
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    12
    colors: ['red', 'yellow', 'green', 'blue']
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    13
};
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    14
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    15
IriSP.Widgets.MusitagAnnotations.prototype.draw = function() {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    16
    var _html = '',
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    17
        _annotations = this.getWidgetAnnotations(),
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    18
        _duration = this.source.getDuration().milliseconds,
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    19
        _sliceDuration = _duration/this.columns,
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    20
        _this = this;
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    21
    _annotations.forEach(function(_annotation) {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    22
        var _tags = _annotation.getTagTexts();
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    23
        _annotation.color_tag = false;
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    24
        _annotation.emoticon_tag = false;
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    25
        _tags.forEach(function(_tag) {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    26
            if (_this.emoticons.indexOf(_tag) != -1) {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    27
                _annotation.emoticon_tag = _tag;
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    28
            }
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    29
            if (_this.colors.indexOf(_tag) != -1) {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    30
                _annotation.color_tag = _tag;
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    31
            }
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    32
        });
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    33
    });
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    34
    for (var i = 0; i < this.columns; i++) {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    35
        var _sliceStart = i * _sliceDuration,
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    36
            _sliceEnd = (i+1) * _sliceDuration,
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    37
            _column = _annotations.filter(function(_annotation) {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    38
                return _annotation.begin >= _sliceStart
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    39
                    && _annotation.begin < _sliceEnd
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    40
                    && _annotation.emoticon_tag
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    41
                    && _annotation.color_tag
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    42
            }).sortBy(function(_annotation) {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    43
                return _annotation.created;
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    44
            });
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    45
        if (_column.length > this.max_by_column) {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    46
            _column = _column.slice(_column.length - this.max_by_column, _column.length);
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    47
        }
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    48
        _html += '<div class="Musitag-Annotations-column">';
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    49
        _html += _column.map(function(_annotation) {
4
4928ecd06b44 Added speech balloon to annotations
veltr
parents: 3
diff changeset
    50
            return '<div class="Musitag-Annotations-tag" begin-time="' + _annotation.begin + '">'
4928ecd06b44 Added speech balloon to annotations
veltr
parents: 3
diff changeset
    51
                + '<div class="Musitag-container-50">'
4928ecd06b44 Added speech balloon to annotations
veltr
parents: 3
diff changeset
    52
                + '<div class="Musitag-shadow"></div>'
4928ecd06b44 Added speech balloon to annotations
veltr
parents: 3
diff changeset
    53
                + '<div class="Musitag-color Musitag-' + _annotation.color_tag + '"></div>'
4928ecd06b44 Added speech balloon to annotations
veltr
parents: 3
diff changeset
    54
                + '<div class="Musitag-emoticon Musitag-' + _annotation.emoticon_tag + '"></div>'
4928ecd06b44 Added speech balloon to annotations
veltr
parents: 3
diff changeset
    55
                + '</div><div class="Musitag-Annotations-Balloon"></div></div>';
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    56
        }).join('');
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    57
        _html += '</div>';
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    58
    }
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    59
    this.$.html(_html);
4
4928ecd06b44 Added speech balloon to annotations
veltr
parents: 3
diff changeset
    60
    this.$.find('.Musitag-Annotations-tag .Musitag-container-50').click(function() {
4928ecd06b44 Added speech balloon to annotations
veltr
parents: 3
diff changeset
    61
        var _el = IriSP.jQuery(this).parent();
3
b9cf9835b5b9 added MP3 file
veltr
parents: 2
diff changeset
    62
        _this.player.popcorn.currentTime(_el.attr("begin-time") / 1000);
b9cf9835b5b9 added MP3 file
veltr
parents: 2
diff changeset
    63
    });
4
4928ecd06b44 Added speech balloon to annotations
veltr
parents: 3
diff changeset
    64
    this.$.find('.Musitag-Annotations-tag').mouseover(function() {
4928ecd06b44 Added speech balloon to annotations
veltr
parents: 3
diff changeset
    65
        var _el = IriSP.jQuery(this);
4928ecd06b44 Added speech balloon to annotations
veltr
parents: 3
diff changeset
    66
        _this.$.find('.Musitag-Annotations-Balloon').hide();
4928ecd06b44 Added speech balloon to annotations
veltr
parents: 3
diff changeset
    67
        _el.find('.Musitag-Annotations-Balloon').show();
4928ecd06b44 Added speech balloon to annotations
veltr
parents: 3
diff changeset
    68
    });
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    69
}