src/widgets/Trace.js
changeset 961 e1baacb52075
parent 960 9a278b9e3b05
child 986 f9d51dd4a3fe
equal deleted inserted replaced
956:7c1d08cf6956 961:e1baacb52075
    20   if (typeof window.tracemanager === "undefined") {
    20   if (typeof window.tracemanager === "undefined") {
    21       console.log("Tracemanager not found");
    21       console.log("Tracemanager not found");
    22       return;
    22       return;
    23   }
    23   }
    24   var _this = this,
    24   var _this = this,
    25     _listeners = {
    25     _mdplisteners = {
    26         "IriSP.search.open" : 0,
    26         "search.open" : 0,
    27         "IriSP.search.closed" : 0,
    27         "search.closed" : 0,
    28         "IriSP.search" : 0,
    28         "search" : 0,
    29         "IriSP.search.cleared" : 0,
    29         "search.cleared" : 0,
    30         "IriSP.search.matchFound" : 0,
    30         "search.matchFound" : 0,
    31         "IriSP.search.noMatchFound" : 0,
    31         "search.noMatchFound" : 0,
    32         "IriSP.search.triggeredSearch" : 0,
    32         "search.triggeredSearch" : 0,
    33         "IriSP.TraceWidget.MouseEvents" : 0,
    33         "TraceWidget.MouseEvents" : 0
       
    34     }
       
    35     _medialisteners = {
    34         "play" : 0,
    36         "play" : 0,
    35         "pause" : 0,
    37         "pause" : 0,
    36         "volumechange" : 0,
    38         "volumechange" : 0,
    37         "seeked" : 0,
    39         "seeked" : 0,
    38         "play" : 0,
    40         "play" : 0,
    39         "pause" : 0,
    41         "pause" : 0,
    40         "timeupdate" : 2000
    42         "timeupdate" : 2000
    41     };
    43     };
    42     IriSP._(_listeners).each(function(_ms, _listener) {
    44     IriSP._(_mdplisteners).each(function(_ms, _listener) {
    43         var _f = function(_arg) {
    45         var _f = function(_arg) {
    44             _this.eventHandler(_listener, _arg);
    46             _this.eventHandler(_listener, _arg);
    45         }
    47         }
    46         if (_ms) {
    48         if (_ms) {
    47             _f = IriSP._.throttle(_f, _ms);
    49             _f = IriSP._.throttle(_f, _ms);
    48         }
    50         }
    49         _this.player.popcorn.listen(_listener, _f);
    51         _this.onMdpEvent(_listener, _f);
       
    52     });
       
    53     IriSP._(_medialisteners).each(function(_ms, _listener) {
       
    54         var _f = function(_arg) {
       
    55             _this.eventHandler(_listener, _arg);
       
    56         }
       
    57         if (_ms) {
       
    58             _f = IriSP._.throttle(_f, _ms);
       
    59         }
       
    60         _this.media.on(_listener, _f);
    50     });
    61     });
    51     
    62     
    52     if (!this.tracer) {
    63     if (!this.tracer) {
    53     
    64     
    54         this.tracer = window.tracemanager.init_trace("test", {
    65         this.tracer = window.tracemanager.init_trace("test", {
    89             _data.value = _value;
   100             _data.value = _value;
    90         }
   101         }
    91         switch(_e.type) {
   102         switch(_e.type) {
    92             case "mouseover":
   103             case "mouseover":
    93                 if (_this.lastTarget != _lastTarget) {
   104                 if (_this.lastTarget != _lastTarget) {
    94                     _this.player.popcorn.trigger('IriSP.TraceWidget.MouseEvents', _data);
   105                     _this.player.trigger('TraceWidget.MouseEvents', _data);
    95                 } else {
   106                 } else {
    96                     if (typeof _this.moTimeout != "undefined") {
   107                     if (typeof _this.moTimeout != "undefined") {
    97                         clearTimeout(_this.moTimeout);
   108                         clearTimeout(_this.moTimeout);
    98                         _this.moTimeout = undefined;
   109                         _this.moTimeout = undefined;
    99                     }
   110                     }
   103                 if (typeof _this.moTimeout != "undefined") {
   114                 if (typeof _this.moTimeout != "undefined") {
   104                     clearTimeout(_this.moTimeout);
   115                     clearTimeout(_this.moTimeout);
   105                 }
   116                 }
   106                 _this.moTimeout = setTimeout(function() {
   117                 _this.moTimeout = setTimeout(function() {
   107                    if (_lastTarget != _this.lastTarget) {
   118                    if (_lastTarget != _this.lastTarget) {
   108                        _this.player.popcorn.trigger('IriSP.TraceWidget.MouseEvents', _data);
   119                        _this.player.trigger('TraceWidget.MouseEvents', _data);
   109                    }
   120                    }
   110                 },100);
   121                 },100);
   111             break;
   122             break;
   112             default:
   123             default:
   113                 _this.player.popcorn.trigger('IriSP.TraceWidget.MouseEvents', _data);
   124                 _this.player.trigger('TraceWidget.MouseEvents', _data);
   114         }
   125         }
   115         _this.lastTarget = _lastTarget;
   126         _this.lastTarget = _lastTarget;
   116     });
   127     });
   117 }
   128 }
   118 
   129 
   128         case 'IriSP.TraceWidget.MouseEvents':
   139         case 'IriSP.TraceWidget.MouseEvents':
   129             _traceName += _arg.widget + '_' + _arg.type;
   140             _traceName += _arg.widget + '_' + _arg.type;
   130             delete _arg.widget;
   141             delete _arg.widget;
   131             delete _arg.type;
   142             delete _arg.type;
   132         break;
   143         break;
   133         case 'timeupdate':
       
   134         case 'play':
   144         case 'play':
   135         case 'pause':
   145         case 'pause':
   136             _arg.time = this.player.popcorn.currentTime() * 1000;
   146             _arg.milliseconds = this.media.getCurrentTime().milliseconds;
       
   147         case 'timeupdate':
   137         case 'seeked':
   148         case 'seeked':
   138         case 'volumechange':
   149         case 'volumechange':
   139             _traceName += 'Popcorn_' + _listener;
   150             _traceName += 'media_' + _listener;
   140         break;
   151         break;
   141         default:
   152         default:
   142             _traceName += _listener.replace('IriSP.','').replace('.','_');
   153             _traceName += _listener.replace('.','_');
   143     }
   154     }
   144     this.lastEvent = _traceName;
   155     this.lastEvent = _traceName;
   145     if (typeof this.extend === "object" && this.extend) {
   156     if (typeof this.extend === "object" && this.extend) {
   146         IriSP._(_arg).extend(this.extend);
   157         IriSP._(_arg).extend(this.extend);
   147     }
   158     }