1 line
10 KiB
JavaScript
1 line
10 KiB
JavaScript
|
|
import connectionManager from"./../emby-apiclient/connectionmanager.js";import playbackManager from"./../common/playback/playbackmanager.js";import globalize from"./../common/globalize.js";import events from"./../emby-apiclient/events.js";import"./../emby-elements/emby-button/paper-icon-button-light.js";import dataFormatter from"./../common/dataformatter.js";import layoutManager from"./../layoutmanager.js";function init(instance,container){var parent=document.createElement("div"),button=(parent.classList.add("playerStats","hide"),layoutManager.tv?parent.style.overflow="hidden":parent.classList.add("scrollY","hiddenScrollY"),parent.innerHTML='<div class="playerStats-content"><button type="button" is="paper-icon-button-light" class="playerStats-closeButton"><i class="md-icon"></i></button><div class="playerStats-stats"></div></div>',parent.querySelector(".playerStats-closeButton"));button&&button.addEventListener("click",onCloseButtonClick.bind(instance)),container.appendChild(parent),instance.element=parent}function onCloseButtonClick(){this.enabled(!1),events.trigger(this,"close")}function renderStats(elem,categories){elem.querySelector(".playerStats-stats").innerHTML=categories.map(function(category){let categoryHtml="";var stats=category.stats;stats.length&&category.name&&(categoryHtml=(categoryHtml=(categoryHtml=(categoryHtml=(categoryHtml+='<div class="playerStats-stat playerStats-stat-header"><div class="playerStats-stat-label">')+category.name)+'</div><div class="playerStats-stat-value">')+(category.subText||""))+"</div></div>");for(let i=0,length=stats.length;i<length;i++){categoryHtml+='<div class="playerStats-stat">';var stat=stats[i];null!=stat.label&&(categoryHtml=(categoryHtml+='<div class="playerStats-stat-label">')+stat.label+"</div>"),null!=stat.value&&(categoryHtml=(categoryHtml+='<div class="playerStats-stat-value">')+stat.value+"</div>"),categoryHtml+="</div>"}return categoryHtml}).join("")}function getSession(instance,player){return Date.now()-(instance.lastSessionTime||0)<1e4?Promise.resolve(instance.lastSession):(player=connectionManager.getApiClient(playbackManager.currentItem(player).ServerId)).getSessions({deviceId:player.deviceId()}).then(function(sessions){return instance.lastSession=sessions[0]||{},instance.lastSessionTime=Date.now(),Promise.resolve(instance.lastSession)},function(){return Promise.resolve({})})}function getStreamStats(session){var stats=[],playstate=session.PlayState||{},nowplayingItem=session.NowPlayingItem||{},session=session.TranscodingInfo||{};if(nowplayingItem.Container){let containerInfo=nowplayingItem.Container.toUpperCase();nowplayingItem.Bitrate&&(containerInfo+=" ("+dataFormatter.bitrateToString(nowplayingItem.Bitrate)+")"),stats.push({label:containerInfo})}let playMethod='<i class="md-icon playerStatsIcon autortl"></i>';if("Transcode"===playstate.PlayMethod){nowplayingItem=[];if(session.SubProtocol&&"progressive"!==session.SubProtocol?nowplayingItem.push(session.SubProtocol.toUpperCase()):session.Container&&nowplayingItem.push(session.Container.toUpperCase()),session.Bitrate){let bitrateInfo="(";session.Bitrate&&(bitrateInfo+=dataFormatter.bitrateToString(session.Bitrate)),session.Framerate&&(bitrateInfo+=" "+session.Framerate+" fps"),bitrateInfo+=")",nowplayingItem.push(bitrateInfo)}session.CurrentThrottle&&nowplayingItem.push('<span class="secondaryText">Throttling</span>'),playMethod+=nowplayingItem.join(" ")}else playMethod+=globalize.translate("HeaderDirectPlay");stats.push({value:playMethod});var transcodeReasons=session.TranscodeReasons||[];for(let i=0,length=transcodeReasons.length;i<length;i++)stats.push({value:globalize.translate(transcodeReasons[i])});return stats}function getVideoStats(session){var stats=[],playstate=session.PlayState||{},mediaStreams=(session.NowPlayingItem||{}).MediaStreams||[],videoStreamIndex=playstate.VideoStreamIndex,playstate=session.TranscodingInfo||{};let mediaStream;for(let i=0,length=mediaStreams.length;i<length;i++)if("Video"===mediaStreams[i].Type&&(null==videoStreamIndex||videoStreamIndex===mediaStreams[i].I
|