{
  "adapter,getVersion": "return '7.0.2-visualon-analytics-js'",
  "adapter,getPlayhead": "return this.player.getPosition();",
  "adapter,getFramesPerSecond": "var analyticsInfo=this.player.getAnalyticsInfo();if(analyticsInfo&&analyticsInfo.streamingFps){try{return parseInt(analyticsInfo.streamingFps,10);}catch(e){return 0;}}return 0;",
  "adapter,getDroppedFrames": "var analyticsInfo=this.player.getAnalyticsInfo();if(analyticsInfo&&analyticsInfo.droppedFrames){return analyticsInfo.droppedFrames;}return 0;",
  "adapter,getDuration": "return this.player.getDuration();",
  "adapter,getBitrate": "return this.targetBitrate;",
  "adapter,getTotalBytes": "var analyticsInfo=this.player.getAnalyticsInfo();if(analyticsInfo&&analyticsInfo.downloadBytes){return analyticsInfo.downloadBytes;}",
  "adapter,getRendition": "return this.getNpawUtils().buildRenditionString(this.width,this.height,this.targetBitrate);",
  "adapter,getIsLive": "return this.player.isLive();",
  "adapter,getResource": "var analyticsInfo=this.player.getAnalyticsInfo();if(analyticsInfo&&analyticsInfo.videoLinkURL){return analyticsInfo.videoLinkURL;}return null;",
  "adapter,getPlayerVersion": "return this.player.getVersion();",
  "adapter,getPlayerName": "return 'VisualON';",
  "adapter,registerListeners": "if(typeof voPlayer!=='undefined'&&this.player){this.references={};this.references[voPlayer.events.VO_OSMP_SRC_CB_OPEN_FINISHED]=this.openListener.bind(this);this.references[voPlayer.events.VO_OSMP_CB_PLAY_STARTED]=this.playListener.bind(this);this.references[voPlayer.events.VO_OSMP_CB_PLAY_PLAYING]=this.playingListener.bind(this);this.references[voPlayer.events.VO_OSMP_CB_PLAY_WAITING]=this.bufferListener.bind(this);this.references[voPlayer.events.VO_OSMP_CB_PLAY_PAUSED]=this.pauseListener.bind(this);this.references[voPlayer.events.VO_OSMP_CB_PLAY_COMPLETE]=this.endListener.bind(this);this.references[voPlayer.events.VO_OSMP_CB_SEEK_START]=this.seekListener.bind(this);this.references[voPlayer.events.VO_OSMP_CB_SEEK_COMPLETE]=this.seekEndListener.bind(this);this.references[voPlayer.events.VO_OSMP_CB_PLAY_TIME_UPDATED]=this.timeUpdatedListener.bind(this);this.references[voPlayer.events.VO_OSMP_CB_ERROR_EVENTS]=this.errorListener.bind(this);this.references[voPlayer.events.VO_OSMP_SRC_ADAPTIVE_STREAMING_INFO_EVENT_BITRATE_CHANGE]=this.bitrateChangeListener.bind(this);for(var key in this.references){this.player.addEventListener(key,this.references[key]);}}this._reset();",
  "adapter,unregisterListeners": "if(typeof voPlayer!=='undefined'&&this.player&&this.references){for(var key in this.references){this.player.off(key,this.references[key]);}delete this.references;}",
  "adapter,bitrateChangeListener,e": "if(e.mediaType&&e.mediaType==='video'){this.targetBitrate=e.bandwidth;this.width=e.width;this.height=e.height;}",
  "adapter,openListener,e": "this.fireStop({},'openListener');this._reset();",
  "adapter,timeUpdatedListener,e": "",
  "adapter,playListener,e": "this.fireStart({},'playListener');",
  "adapter,pauseListener,e": "this.firePause({},'pauseListener');",
  "adapter,playingListener,e": "this.fireStart({},'playingListener');this.fireJoin({},'playingListener');this.fireResume({},'playingListener');this.fireSeekEnd({},'playingListener');this.fireBufferEnd({},'playingListener');",
  "adapter,seekListener,e": "this.fireSeekBegin({},false,'seekListener');",
  "adapter,seekEndListener,e": "this.fireSeekEnd({},'seekEndListener');",
  "adapter,endListener,e": "this.fireStop({},'endListener');this._reset();",
  "adapter,bufferListener,e": "this.fireBufferBegin({},false,'bufferListener');",
  "adapter,errorListener,e": "this.fireError(e.code,e.message,undefined,undefined,'errorListener');",
  "adapter,_reset": "this.width=null;this.height=null;this.targetBitrate=null;"
}
