if(state.NowPlayingItem){varserverId=state.NowPlayingItem.ServerId;reportPlayback(state,serverId,"reportPlaybackProgress",progressEventName)}})}varcurrentTargetInfo,lastLocalPlayer,currentPlaylistIndex,currentPlaylistItemId,currentPlayOptions,self=this,players=[],currentPairingId=null,playlist=[];this._playNextAfterEnded=!0;varplayerStates={};this._repeatMode="RepeatNone",self.currentItem=function(player){if(!player)thrownewError("player cannot be null");vardata=getPlayerData(player);returndata.streamInfo?data.streamInfo.item:null},self.currentMediaSource=function(player){if(!player)thrownewError("player cannot be null");vardata=getPlayerData(player);returndata.streamInfo?data.streamInfo.mediaSource:null},self.getPlayerInfo=function(){varplayer=self._currentPlayer;if(!player)returnnull;vartarget=currentTargetInfo||{};return{name:player.name,isLocalPlayer:player.isLocalPlayer,id:target.id,deviceName:target.deviceName,playableMediaTypes:target.playableMediaTypes,supportedCommands:target.supportedCommands}},self.setActivePlayer=function(player,targetInfo){if("localplayer"===player||"localplayer"===player.name){if(self._currentPlayer&&self._currentPlayer.isLocalPlayer)return;returnvoidsetCurrentPlayerInternal(null,null)}if("string"==typeofplayer&&(player=players.filter(function(p){returnp.name===player})[0]),!player)thrownewError("null player");setCurrentPlayerInternal(player,targetInfo)},self.trySetActivePlayer=function(player,targetInfo){if("localplayer"===player||"localplayer"===player.name)returnvoid(self._currentPlayer&&self._currentPlayer.isLocalPlayer);if("string"==typeofplayer&&(player=players.filter(function(p){returnp.name===player})[0]),!player)thrownewError("null player");if(currentPairingId!==targetInfo.id){currentPairingId=targetInfo.id;varpromise=player.tryPair?player.tryPair(targetInfo):Promise.resolve();promise.then(function(){setCurrentPlayerInternal(player,targetInfo)},function(){currentPairingId===targetInfo.id&&(currentPairingId=null)})}},self.getTargets=function(){varpromises=players.filter(function(p){return!displayPlayerInLocalGroup(p)}).map(getPlayerTargets);returnPromise.all(promises).then(function(responses){vartargets=[];targets.push({name:globalize.translate("sharedcomponents#HeaderMyDevice"),id:"localplayer",playerName:"localplayer",playableMediaTypes:["Audio","Video","Game"],isLocalPlayer:!0,supportedCommands:getSupportedCommands({isLocalPlayer:!0})});for(vari=0;i<responses.length;i++)for(varsubTargets=responses[i],j=0;j<subTargets.length;j++)targets.push(subTargets[j]);returntargets=targets.sort(function(a,b){varaVal=a.isLocalPlayer?0:1,bVal=b.isLocalPlayer?0:1;returnaVal=aVal.toString()+a.name,bVal=bVal.toString()+b.name,aVal.localeCompare(bVal)})})},self.getPlaylist=function(player){returnplayer=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.getPlaylist():Promise.resolve(playlist.slice(0))},self.isPlaying=function(player){returnplayer=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.isPlaying():null!=player&&null!=player.currentSrc()},self.isPlayingLocally=function(mediaTypes,player){if(player=player||self._currentPlayer,!player||!player.isLocalPlayer)return!1;varplayerData=getPlayerData(player)||{};returnmediaTypes.indexOf((playerData.streamInfo||{}).mediaType||"")!==-1},self.isPlayingVideo=function(player){if(player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player))returnplayer.isPlayingVideo();if(self.isPlaying()){varplayerData=getPlayerData(player);return"Video"===playerData.streamInfo.mediaType}return!1},self.isPlayingAudio=function(player){if(player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player))returnplayer.isPlayingAudio();if(self.isPlaying()){varplayerData=getPlayerData(player);return"Audio"===playerData.streamInfo.mediaType}return!1},self.getPlayers=function(){returnplayers},self.canPlay=function(item){varitemType=item.Type,locationType=item.LocationType;return"MusicGenre"===itemType||"Season"===itemType||"Series"===it