define(["exports","./../../emby-apiclient/events.js","./../appsettings.js","./../datetime.js","./../../emby-apiclient/apiclient.js","./../pluginmanager.js","./playqueuemanager.js","./../usersettings/usersettings.js","./../globalize.js","./../../emby-apiclient/connectionmanager.js","./../servicelocator.js","./../../loading/loading.js","./../methodtimer.js","./../qualityoptions.js"],function(_exports,_events,_appsettings,_datetime,_apiclient,_pluginmanager,_playqueuemanager,_usersettings,_globalize,_connectionmanager,_servicelocator,_loading,_methodtimer,_qualityoptions){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var PlaybackItemFields="ProductionYear,PremiereDate,Container";function enableLocalPlaylistManagement(player){return!player.getPlaylist&&!!player.isLocalPlayer}function returnResolve(err){return console.error(err),Promise.resolve()}function addPlaylistItemsToPlaybackReport(info,playlist,serverId){for(var list=[],i=0,length=playlist.length;i=interceptors.length)return void resolve();var interceptor=interceptors[index];interceptor.intercept(options).then(function(){runNextPrePlay(interceptors,index+1,options,resolve,reject)},reject)}(interceptors,0,options,resolve,reject)):resolve()})}function updateResultSetStartingPoint(result,firstItem,options,isQueueing){for(var startIndex=-1,i=0,length=result.Items.length;i=reportPlaylist.getTime()&&instance.onSleepTimerFired(player)}function PlaybackManager(){var currentTargetInfo,self=this,players=[],currentPairingId=null;function removeCurrentPlayer(player){var previousPlayer=self._currentPlayer;previousPlayer&&player.id!==previousPlayer.id||setCurrentPlayerInternal(null)}function setCurrentPlayerInternal(player,targetInfo){var previousPlayer=self._currentPlayer,previousTargetInfo=currentTargetInfo;if(player&&!targetInfo&&player.isLocalPlayer&&(targetInfo=createTarget(self,player)),player&&!targetInfo)throw new Error("targetInfo cannot be null");currentPairingId=null,self._currentPlayer=player,(currentTargetInfo=targetInfo)&&targetInfo.Id!==(null==previousTargetInfo?void 0:previousTargetInfo.Id)&&console.log("Active player: "+JSON.stringify(targetInfo)),previousPlayer&&self.endPlayerUpdates(previousPlayer),player&&self.beginPlayerUpdates(player),function(playbackManagerInstance,newPlayer,newTarget,previousPlayer,previousTargetInfo){!newPlayer&&!previousPlayer||newTarget&&previousTargetInfo&&newTarget.id===previousTargetInfo.id||_events.default.trigger(playbackManagerInstance,"playerchange",[newPlayer,newTarget,previousPlayer])}(self,player,targetInfo,previousPlayer,previousTargetInfo)}function changeStream(player,ticks,params,progressEventName){var signal,liveStreamId,lastMediaInfoQuery,playSessionId,currentItem;return canPlayerSeek(self,player)&&null==params?(player.currentTime(parseInt(ticks/1e4)),Promise.resolve()):(signal=(new AbortController).signal,params=params||{},liveStreamId=getPlayerData(player).streamInfo.liveStreamId,lastMediaInfoQuery=getPlayerData(player).streamInfo.lastMediaInfoQuery,playSessionId=self.playSessionId(player),currentItem=self.currentItem(player),getDeviceProfile(player,currentItem,{isRetry:!1===params.EnableDirectPlay}).then(function(deviceProfile){var audioStreamIndex=null==params.AudioStreamIndex?getPlayerData(player).audioStreamIndex:params.AudioStreamIndex,subtitleStreamIndex=null==params.SubtitleStreamIndex?getPlayerData(player).subtitleStreamIndex:params.SubtitleStreamIndex,currentMediaSource=self.currentMediaSource(player),apiClient=_connectionmanager.default.getApiClient(currentItem),maxBitrate=(ticks=ticks&&parseInt(ticks),params.MaxStreamingBitrate||self.getMaxStreamingBitrate(player)),currentPlayOptions=currentItem.playOptions||{},enableAutomaticQuality=self.enableAutomaticBitrateDetection(player);return getPlaybackInfo(player,apiClient,currentItem,deviceProfile,maxBitrate,enableAutomaticQuality,ticks,!0,currentMediaSource.Id,audioStreamIndex,subtitleStreamIndex,playSessionId,liveStreamId,params.EnableDirectPlay,params.EnableDirectStream,params.AllowVideoStreamCopy,params.AllowAudioStreamCopy,signal).then(function(result){if(result.ErrorCode)return Promise.reject({errorCode:result.ErrorCode});currentMediaSource=result.MediaSources[0];result=createStreamInfo(apiClient,currentItem.MediaType,currentItem,currentMediaSource,result.PlaySessionId,ticks);return result.fullscreen=currentPlayOptions.fullscreen,result.lastMediaInfoQuery=lastMediaInfoQuery,result.url?(getPlayerData(player).subtitleStreamIndex=subtitleStreamIndex,getPlayerData(player).audioStreamIndex=audioStreamIndex,getPlayerData(player).maxStreamingBitrate=maxBitrate,function(apiClient,player,playSessionId,streamInfo,progressEventName,signal){return getPlayerData(player).streamInfo&&playSessionId?apiClient.stopActiveEncodings(playSessionId).then(function(){return setSrcIntoPlayer(apiClient,player,streamInfo,progressEventName,playSessionId,signal)}):setSrcIntoPlayer(apiClient,player,streamInfo,progressEventName,null,signal)}(apiClient,player,playSessionId,result,progressEventName,signal)):Promise.reject({errorCode:"NoCompatibleStream",skipToNextItem:!0})})}))}function setSrcIntoPlayer(apiClient,player,streamInfo,progressEventName,previousPlaySessionId,signal){return normalizePlayOptions(streamInfo),getPlayerData(player).streamInfo=streamInfo,player.play(streamInfo,signal).then(function(){streamInfo.started=!0,"subtitletrackchange"===progressEventName||"audiotrackchange"===progressEventName?_events.default.trigger(player,progressEventName):sendProgressUpdate(self,player,progressEventName||"timeupdate"),previousPlaySessionId&&apiClient.stopActiveEncodings(previousPlaySessionId)},function(err){return console.error("player.play error: "+err),previousPlaySessionId&&apiClient.stopActiveEncodings(previousPlaySessionId),streamInfo.started=!1,onPlaybackError.call(player,err,{type:err&&err.name?err.name:"mediadecodeerror",streamInfo:streamInfo,returnPromise:!0})})}function playFromFetchedItems(options,items,showLoading,signal){return translateItemsForPlayback(items,options,showLoading,null,signal).then(function(translatedResult){return function(items,options,autoplay,signal){var playStartIndex=options.startIndex;null==playStartIndex&&(playStartIndex=options.shuffle&&items.length?function(min,max){return Math.floor(Math.random()*(max-min+1)+min)}(0,items.length):0);var firstItemApiClient,firstItem=items[playStartIndex];firstItem=firstItem||items[playStartIndex=0];return firstItem?(firstItemApiClient=_connectionmanager.default.getApiClient(firstItem)).getCurrentUser({signal:signal}).then(function(user){return null==options.startPositionTicks&&(options.startPositionTicks=firstItem.UserData&&firstItem.UserData.PlaybackPositionTicks||0,options.startPositionTicks)&&(user=1e7*(user.Configuration.ResumeRewindSeconds||0),options.startPositionTicks=Math.max(0,options.startPositionTicks-user)),function(items,firstItem,firstItemApiClient,playStartIndex,options,autoplay,signal){return function(firstItem,apiClient,options,signal){return options.shuffle||options.startPositionTicks||!1===options.fullscreen||"Video"!==(options=firstItem).MediaType||"TvChannel"===options.Type||"InProgress"===options.Status||!options.Id||!_appsettings.default.enableCinemaMode()?getDefaultIntros():(_loading.default.show(),options={},_servicelocator.appHost.supports("youtube_embedded")||(options.ExcludeSources=["youtube"]),apiClient.getIntros(firstItem.Id,options,signal).catch(getDefaultIntros))}(firstItem,firstItemApiClient,options,signal).then(function(introsResult){var introPlayOptions,introsResult=introsResult.Items;introsResult.length&&playStartIndex&&(items=items.slice(playStartIndex),playStartIndex=0),firstItem.playOptions={autoplay:options.autoplay,fullscreen:options.fullscreen,mediaSourceId:options.mediaSourceId,audioStreamIndex:options.audioStreamIndex,subtitleStreamIndex:options.subtitleStreamIndex,startPositionTicks:options.startPositionTicks,shuffle:options.shuffle},introPlayOptions=introsResult.length?{fullscreen:firstItem.playOptions.fullscreen}:firstItem.playOptions,self._isBackgroundPlaybackHack=!1===introPlayOptions.fullscreen;for(var i=0,length=(items=introsResult.concat(items)).length;i=Math.floor(runtimeTicks/1e4))&&(console.log("restarting live channel"),self.play({items:[currentItem]}))}})}function bindStopped(player){enableLocalPlaylistManagement(player)&&(_events.default.off(player,"stopped",onPlaybackStopped),_events.default.on(player,"stopped",onPlaybackStopped))}function onPlaybackTimeUpdate(e){sendProgressUpdate(self,this,"timeupdate")}function onAudioTrackChange(e){sendProgressUpdate(self,this,"audiotrackchange")}function onSubtitleTrackChange(e){sendProgressUpdate(self,this,"subtitletrackchange")}function onPlaybackPause(e){enableLocalPlaylistManagement(this)&&sendProgressUpdate(self,this,"pause"),_events.default.trigger(self,"pause",[this])}function onPlaybackUnpause(e){enableLocalPlaylistManagement(this)&&sendProgressUpdate(self,this,"unpause"),_events.default.trigger(self,"unpause",[this])}function onPlaybackVolumeChange(e){sendProgressUpdate(self,this,"volumechange")}function onRepeatModeChange(e){sendProgressUpdate(self,this,"repeatmodechange")}function onSleepTimerChange(e){sendProgressUpdate(self,this,"sleeptimerchange")}function onShuffleChange(e){sendProgressUpdate(self,this,"shufflechange"),_events.default.trigger(this,"playlistitemmove",[])}function onSubtitleOffsetChange(e){sendProgressUpdate(self,this,"subtitleoffsetchange")}function onPlaybackRateChange(e){sendProgressUpdate(self,this,"playbackratechange")}function onPlaylistItemMove(e){sendProgressUpdate(self,this,"playlistitemmove",!0)}function onPlaylistItemRemove(e,info){sendProgressUpdate(self,this,"playlistitemremove",!0,{PlaylistItemIds:info?info.PlaylistItemIds:null})}function onPlaylistItemAdd(e){sendProgressUpdate(self,this,"playlistitemadd",!0)}function onPlayerShutdown(e){removeCurrentPlayer(this)}function initMediaPlayer(player){players.push(player),players.sort(function(a,b){return(a.priority||0)-(b.priority||0)}),!1!==player.isLocalPlayer&&(player.isLocalPlayer=!0),player.currentState={},player.getVolume&&player.setVolume||function(player){player.getVolume=function(){return player.volume()},player.setVolume=function(val){return player.volume(val)}}(player),enableLocalPlaylistManagement(player)?(_events.default.on(player,"error",onPlaybackError),_events.default.on(player,"timeupdate",onPlaybackTimeUpdate),_events.default.on(player,"audiotrackchange",onAudioTrackChange),_events.default.on(player,"subtitletrackchange",onSubtitleTrackChange),_events.default.on(player,"pause",onPlaybackPause),_events.default.on(player,"unpause",onPlaybackUnpause),_events.default.on(player,"volumechange",onPlaybackVolumeChange),_events.default.on(player,"repeatmodechange",onRepeatModeChange),_events.default.on(player,"sleeptimerchange",onSleepTimerChange),_events.default.on(player,"shufflechange",onShuffleChange),_events.default.on(player,"subtitleoffsetchange",onSubtitleOffsetChange),_events.default.on(player,"playbackratechange",onPlaybackRateChange),_events.default.on(player,"playlistitemmove",onPlaylistItemMove),_events.default.on(player,"playlistitemremove",onPlaylistItemRemove),_events.default.on(player,"playlistitemadd",onPlaylistItemAdd)):player.isLocalPlayer&&(_events.default.on(player,"pause",onPlaybackPause),_events.default.on(player,"unpause",onPlaybackUnpause),_events.default.on(player,"itemstarted",onPlaybackStartedFromSelfManagingPlayer),_events.default.on(player,"itemstopped",onPlaybackStoppedFromSelfManagingPlayer),_events.default.on(player,"playqueuestarted",onPlayQueueStartedFromSelfManagingPlayer),_events.default.on(player,"sleeptimerfired",onSleepTimerFiredFromSelfManagingPlayer),_events.default.on(player,"audiotrackchange",onAudioTrackChange),_events.default.on(player,"subtitletrackchange",onSubtitleTrackChange),_events.default.on(player,"subtitleoffsetchange",onSubtitleOffsetChange),_events.default.on(player,"playbackratechange",onPlaybackRateChange),_events.default.on(player,"playlistitemmove",onPlaylistItemMove),_events.default.on(player,"playlistitemremove",onPlaylistItemRemove),_events.default.on(player,"playlistitemadd",onPlaylistItemAdd),_events.default.on(player,"shutdown",onPlayerShutdown)),player.isLocalPlayer&&function(player){_events.default.on(_servicelocator.fullscreenManager,"fullscreenchange",function(){_events.default.trigger(player,"fullscreenchange")})}(player),bindStopped(player)}this._playQueueManager=new _playqueuemanager.default,self.getPlayerInfo=function(player){var target;return(player=player||self._currentPlayer)?(target=currentTargetInfo||{},{name:player.name,isLocalPlayer:player.isLocalPlayer,id:target.id,playerName:target.playerName,deviceName:target.deviceName,playableMediaTypes:target.playableMediaTypes,supportedCommands:target.supportedCommands}):null},self.setActivePlayer=function(player,targetInfo){if("localplayer"===player||"localplayer"===player.name)return self._currentPlayer&&self._currentPlayer.isLocalPlayer?void 0:void setCurrentPlayerInternal(null,null);if(!(player="string"==typeof player?players.filter(function(p){return p.name===player})[0]:player))throw new Error("null player");setCurrentPlayerInternal(player,targetInfo)},self.trySetActivePlayer=function(player,targetInfo){if("localplayer"===player||"localplayer"===player.name)self._currentPlayer&&self._currentPlayer.isLocalPlayer,self._isPairing=!1;else{if(!(player="string"==typeof player?players.filter(function(p){return p.name===player})[0]:player))throw new Error("null player");var promise;currentPairingId===targetInfo.id?self._isPairing=!1:(currentPairingId=targetInfo.id,promise=player.tryPair?player.tryPair(targetInfo):Promise.resolve(),self._isPairing=!0,_events.default.trigger(self,"pairing"),promise.then(function(){self._isPairing=!1,_events.default.trigger(self,"paired"),setCurrentPlayerInternal(player,targetInfo)},function(){self._isPairing=!1,_events.default.trigger(self,"pairerror"),currentPairingId===targetInfo.id&&(currentPairingId=null)}))}},self.getTargets=function(){var promises=players.filter(displayPlayerIndividually).map(getPlayerTargets);return Promise.all(promises).then(function(responses){for(var targets=[],i=0;iDate.parse(item.EndDate)||Date.now()=supported.length&&(index=0),this.setAspectRatio(supported[index].id,player)}},PlaybackManager.prototype.setAspectRatio=function(val,player){(player=player||this._currentPlayer)&&player.setAspectRatio&&player.setAspectRatio(val)},PlaybackManager.prototype.getSupportedAspectRatios=function(player){return(player=player||this._currentPlayer)&&player.getSupportedAspectRatios?player.getSupportedAspectRatios():[]},PlaybackManager.prototype.getAspectRatio=function(player){if((player=player||this._currentPlayer)&&player.getAspectRatio)return player.getAspectRatio()},PlaybackManager.prototype.setBrightness=function(val,player){(player=player||this._currentPlayer)&&player.setBrightness(val)},PlaybackManager.prototype.getBrightness=function(player){if(player=player||this._currentPlayer)return player.getBrightness()},PlaybackManager.prototype.setVolume=function(val,player){(player=player||this._currentPlayer)&&player.setVolume(val)},PlaybackManager.prototype.getVolume=function(player){if(player=player||this._currentPlayer)return player.getVolume()},PlaybackManager.prototype.volumeUp=function(player){(player=player||this._currentPlayer)&&player.volumeUp()},PlaybackManager.prototype.volumeDown=function(player){(player=player||this._currentPlayer)&&player.volumeDown()},PlaybackManager.prototype.sendAbortSignal=function(){var controller=this._abortController;controller&&(this._abortController=null,controller.abort())},PlaybackManager.prototype.newAbortSignal=function(){this.sendAbortSignal();var controller=new AbortController;return(this._abortController=controller).signal},PlaybackManager.prototype.getCurrentPlayer=function(){return this._currentPlayer},PlaybackManager.prototype.currentTime=function(player){return!(player=player||this._currentPlayer)||enableLocalPlaylistManagement(player)||player.isLocalPlayer?this.getCurrentTicks(player):player.currentTime()},PlaybackManager.prototype.nextItem=function(player){var apiClient;return(player=player||this._currentPlayer)&&!enableLocalPlaylistManagement(player)?player.nextItem():(player=this._playQueueManager.getNextItemInfo())&&player.item?(apiClient=_connectionmanager.default.getApiClient(player.item)).getItem(apiClient.getCurrentUserId(),player.item.Id,{ExcludeFields:"VideoChapters,VideoMediaSources,MediaStreams,People,Overview"}):Promise.reject()},PlaybackManager.prototype.canQueue=function(item){if(this._currentPlayer)switch(item.Type){case"Program":case"TvChannel":return!1;case"MusicAlbum":case"MusicArtist":return this.canPlay(item)&&this.canQueueMediaType("Audio");default:return this.canPlay(item)&&canPlayerPlayMediaType(this._currentPlayer,item.MediaType)}return!1},PlaybackManager.prototype.canQueueMediaType=function(mediaType){return!!this._currentPlayer&&canPlayerPlayMediaType(this._currentPlayer,mediaType)},PlaybackManager.prototype.isMuted=function(player){return!!(player=player||this._currentPlayer)&&player.isMuted()},PlaybackManager.prototype.setMute=function(mute,player){(player=player||this._currentPlayer)&&player.setMute(mute)},PlaybackManager.prototype.toggleMute=function(mute,player){(player=player||this._currentPlayer)&&(player.toggleMute?player.toggleMute():player.setMute(!player.isMuted()))},PlaybackManager.prototype.nextChapter=function(player){player=player||this._currentPlayer;var ticks=this.getCurrentTicks(player),nextChapter=(this.currentMediaSource(player).Chapters||this.currentItem(player).Chapters||[]).filter(function(i){return i.StartPositionTicks>ticks})[0];nextChapter?this.seek(nextChapter.StartPositionTicks,player):this.nextTrack(player)},PlaybackManager.prototype.previousChapter=function(player){player=player||this._currentPlayer;var ticks=this.getCurrentTicks(player);ticks-=1e8,0===this.getCurrentPlaylistIndex(player)&&(ticks=Math.max(ticks,0));var previousChapters=(this.currentMediaSource(player).Chapters||this.currentItem(player).Chapters||[]).filter(function(i){return i.StartPositionTicks<=ticks});previousChapters.length?this.seek(previousChapters[previousChapters.length-1].StartPositionTicks,player):this.previousTrack(player)},PlaybackManager.prototype.fastForward=function(player){player=player||this._currentPlayer;var offsetTicks=1e4*_usersettings.default.skipForwardLength();this.seekRelative(offsetTicks,player)},PlaybackManager.prototype.rewind=function(player){player=player||this._currentPlayer;var offsetTicks=0-1e4*_usersettings.default.skipBackLength();this.seekRelative(offsetTicks,player)},PlaybackManager.prototype.frameStepForward=function(player){var offsetTicks=getFrameTicks((player=player||this._currentPlayer).streamInfo);offsetTicks&&this.seekRelative(offsetTicks+=1e4,player)},PlaybackManager.prototype.frameStepBack=function(player){var offsetTicks=getFrameTicks((player=player||this._currentPlayer).streamInfo);offsetTicks&&this.seekRelative(-1*(offsetTicks+=1e4),player)},PlaybackManager.prototype.seekPercent=function(percent,player){player=player||this._currentPlayer,console.log("seeking to "+percent+"%");var ticks=this.duration(player)||0;ticks*=percent/=100,ticks=parseInt(ticks),console.log("seeking to "+ticks+" ticks"),this.seek(ticks,player)},PlaybackManager.prototype.playTrailers=function(item){var instance,player=this._currentPlayer;return player&&player.playTrailers?player.playTrailers(item):(player=_connectionmanager.default.getApiClient(item),instance=this,player.getAllTrailers({LocalTrailers:0<(item.LocalTrailerCount||0),RemoteTrailers:0===(item.LocalTrailerCount||0)},item).then(function(result){return instance.play({items:result.Items})}))},PlaybackManager.prototype.getSubtitleUrl=function(textStream,serverId){serverId=_connectionmanager.default.getApiClient(serverId);return textStream.IsExternalUrl?textStream.DeliveryUrl:serverId.getUrl(textStream.DeliveryUrl)},PlaybackManager.prototype.stop=function(player){return player=player||this._currentPlayer,this.sendAbortSignal(),player?(enableLocalPlaylistManagement(player)&&this._playQueueManager.reset(),player.stop(!0)):Promise.resolve()},PlaybackManager.prototype.getBufferedRanges=function(player){return(player=player||this._currentPlayer)&&player.getBufferedRanges?player.getBufferedRanges():[]},PlaybackManager.prototype.getSeekableRanges=function(player){return(player=player||this._currentPlayer)&&player.getSeekableRanges?player.getSeekableRanges():[]},PlaybackManager.prototype.playPause=function(player){if(player=player||this._currentPlayer)return player.playPause?player.playPause():player.paused()?this.unpause(player):this.pause(player)},PlaybackManager.prototype.paused=function(player){if(player=player||this._currentPlayer)return player.paused()},PlaybackManager.prototype.pause=function(player){(player=player||this._currentPlayer)&&player.pause()},PlaybackManager.prototype.unpause=function(player){(player=player||this._currentPlayer)&&player.unpause()},PlaybackManager.prototype.instantMix=function(item,player){var options,instance;return(player=player||this._currentPlayer)&&player.instantMix?player.instantMix(item):(player=_connectionmanager.default.getApiClient(item),(options={}).UserId=player.getCurrentUserId(),options.Limit=5e3,instance=this,player.getInstantMixFromItem(item.Id,options).then(function(result){return instance.play({items:result.Items})}))},PlaybackManager.prototype.shuffle=function(shuffleItem,player,queryOptions){return(player=player||this._currentPlayer)&&player.shuffle?player.shuffle(shuffleItem):((queryOptions=queryOptions||{}).items=[shuffleItem],queryOptions.shuffle=!0,this.play(queryOptions))},PlaybackManager.prototype.audioTracks=function(player){if((player=player||this._currentPlayer).audioTracks){var result=player.audioTracks();if(result)return result}result=this.currentMediaSource(player);return((null==result?void 0:result.MediaStreams)||[]).filter(function(s){return"Audio"===s.Type})},PlaybackManager.prototype.subtitleTracks=function(player){if((player=player||this._currentPlayer).subtitleTracks){var result=player.subtitleTracks();if(result)return result}result=this.currentMediaSource(player);return((null==result?void 0:result.MediaStreams)||[]).filter(function(s){return"Subtitle"===s.Type})},PlaybackManager.prototype.getSupportedCommands=function(player){var list,forceSupportVolume;return!(player=player||this._currentPlayer)||player.isLocalPlayer?(list=["GoHome","GoToSettings","SetAudioStreamIndex","SetSubtitleStreamIndex","RefreshMediaSource","SetMaxStreamingBitrate","DisplayContent","GoToSearch","DisplayMessage","TriggerTranscodingFallback","SetRepeatMode","SetShuffle","PlayMediaSource","PlayTrailers"],_servicelocator.appHost.supports("fullscreenchange")&&list.push("ToggleFullscreen"),_servicelocator.appHost.supports("sleeptimer")&&list.push("SetSleepTimer"),null!=player&&player.supports&&(forceSupportVolume="libmpvmediaplayer"===(null==player?void 0:player.id),(player.supports("VolumeUp")||forceSupportVolume)&&list.push("VolumeUp"),(player.supports("VolumeDown")||forceSupportVolume)&&list.push("VolumeDown"),(player.supports("Mute")||forceSupportVolume)&&list.push("Mute"),(player.supports("Unmute")||forceSupportVolume)&&list.push("Unmute"),(player.supports("ToggleMute")||forceSupportVolume)&&list.push("ToggleMute"),(player.supports("SetVolume")||forceSupportVolume)&&list.push("SetVolume"),player.supports("PictureInPicture")&&list.push("PictureInPicture"),player.supports("AutoPictureInPicture")&&list.push("AutoPictureInPicture"),player.supports("SetBrightness")&&list.push("SetBrightness"),player.supports("SetAspectRatio")&&list.push("SetAspectRatio"),player.supports("SetSubtitleOffset")&&list.push("SetSubtitleOffset"),player.supports("SetSubtitleAppearance")&&list.push("SetSubtitleAppearance"),player.supports("SetPlaybackRate"))&&list.push("SetPlaybackRate"),list):(forceSupportVolume=this.getPlayerInfo(player))?forceSupportVolume.supportedCommands:[]},PlaybackManager.prototype.toggleRepeatMode=function(player){switch(player=player||this._currentPlayer,this.getRepeatMode(player)){case"RepeatNone":this.setRepeatMode("RepeatAll",player);break;case"RepeatAll":this.setRepeatMode("RepeatOne",player);break;case"RepeatOne":this.setRepeatMode("RepeatNone",player)}},PlaybackManager.prototype.setRepeatMode=function(value,player){if((player=player||this._currentPlayer)&&!enableLocalPlaylistManagement(player))return player.setRepeatMode(value);this._playQueueManager.setRepeatMode(value),_events.default.trigger(player,"repeatmodechange")},PlaybackManager.prototype.getRepeatMode=function(player){return((player=player||this._currentPlayer)&&!enableLocalPlaylistManagement(player)?player:this._playQueueManager).getRepeatMode()},PlaybackManager.prototype.setSleepTimer=function(options,player){var playerData;return(player=player||this._currentPlayer)&&!enableLocalPlaylistManagement(player)?player.setSleepTimer(options):((playerData=getPlayerData(player)).sleepTimerMode=options.sleepTimerMode||"None",(options=options.sleepTimerEndTime)&&"string"==typeof options&&(options=_datetime.default.parseISO8601Date(options)),playerData.sleepTimerEndTime=options,_events.default.trigger(player,"sleeptimerchange"),Promise.resolve())},PlaybackManager.prototype.onSleepTimerFired=function(player){player=player||this._currentPlayer,this.setSleepTimer({sleepTimerMode:"None"},player),this.pause(player)},PlaybackManager.prototype.getSleepTimerMode=function(player){return(player=player||this._currentPlayer)&&!enableLocalPlaylistManagement(player)?player.getSleepTimerMode():getPlayerData(player).sleepTimerMode||"None"},PlaybackManager.prototype.getSleepTimerEndTime=function(player){return(player=player||this._currentPlayer)&&!enableLocalPlaylistManagement(player)?player.getSleepTimerEndTime():getPlayerData(player).sleepTimerEndTime},PlaybackManager.prototype.toggleShuffle=function(player){player=player||this._currentPlayer,this.setShuffle(!this.getShuffle(player),player)},PlaybackManager.prototype.setShuffle=function(value,player){if((player=player||this._currentPlayer)&&!enableLocalPlaylistManagement(player))return player.setShuffle(value);this._playQueueManager.setShuffle(value),_events.default.trigger(player,"shufflechange")},PlaybackManager.prototype.getShuffle=function(player){return((player=player||this._currentPlayer)&&!enableLocalPlaylistManagement(player)?player:this._playQueueManager).getShuffle()},PlaybackManager.prototype.setSubtitleOffset=function(value,player){(player=player||this._currentPlayer).setSubtitleOffset&&(player.setSubtitleOffset(value),_events.default.trigger(player,"subtitleoffsetchange"))},PlaybackManager.prototype.incrementSubtitleOffset=function(value,player){(player=player||this._currentPlayer).incrementSubtitleOffset&&(player.incrementSubtitleOffset(value),_events.default.trigger(player,"subtitleoffsetchange"))},PlaybackManager.prototype.getSubtitleOffset=function(player){return(player=player||this._currentPlayer).getSubtitleOffset?player.getSubtitleOffset():0},PlaybackManager.prototype.getPlaybackRate=function(player){return(player=player||this._currentPlayer).getPlaybackRate?player.getPlaybackRate():1},PlaybackManager.prototype.setPlaybackRate=function(value,player){(player=player||this._currentPlayer).setPlaybackRate&&player.setPlaybackRate(value)},PlaybackManager.prototype.trySetActiveDeviceName=function(name){name=normalizeName(name);var instance=this;instance.getTargets().then(function(result){result=result.filter(function(p){return normalizeName(p.name)===name})[0];result&&instance.trySetActivePlayer(result.playerName,result)})},PlaybackManager.prototype.displayContent=function(options,player){(player=player||this._currentPlayer)&&player.displayContent&&player.displayContent(options)},PlaybackManager.prototype.beginPlayerUpdates=function(player){player.beginPlayerUpdates&&player.beginPlayerUpdates()},PlaybackManager.prototype.endPlayerUpdates=function(player){player.endPlayerUpdates&&player.endPlayerUpdates()},PlaybackManager.prototype.setDefaultPlayerActive=function(){this.setActivePlayer("localplayer")},PlaybackManager.prototype.removeActivePlayer=function(name){var playerInfo=this.getPlayerInfo();playerInfo&&playerInfo.playerName===name&&this.setDefaultPlayerActive()},PlaybackManager.prototype.removeActiveTarget=function(id){var playerInfo=this.getPlayerInfo();playerInfo&&playerInfo.id===id&&this.setDefaultPlayerActive()},PlaybackManager.prototype.sendCommand=function(cmd,player){switch(console.log("MediaController received command: "+cmd.Name),cmd.Name){case"SetPlaybackRate":this.setPlaybackRate(parseFloat(cmd.Arguments.PlaybackRate),player);break;case"SetSubtitleOffset":this.setSubtitleOffset(parseFloat(cmd.Arguments.SubtitleOffset),player);break;case"IncrementSubtitleOffset":this.incrementSubtitleOffset(parseFloat(cmd.Arguments.Increment),player);break;case"TriggerTranscodingFallback":this.triggerTranscodingFallback(player);break;case"SetRepeatMode":this.setRepeatMode(cmd.Arguments.RepeatMode,player);break;case"SetSleepTimer":this.setSleepTimer(cmd.Arguments||{},player);break;case"SetShuffle":var shuffle=cmd.Arguments.Shuffle;this.setShuffle(!0===shuffle||"true"===(shuffle||"").toString().toLowerCase(),player);break;case"VolumeUp":this.volumeUp(player);break;case"VolumeDown":this.volumeDown(player);break;case"Mute":this.setMute(!0,player);break;case"Unmute":this.setMute(!1,player);break;case"ToggleMute":this.toggleMute(player);break;case"SetVolume":this.setVolume(cmd.Arguments.Volume,player);break;case"SetAspectRatio":this.setAspectRatio(cmd.Arguments.AspectRatio,player);break;case"SetBrightness":this.setBrightness(cmd.Arguments.Brightness,player);break;case"SetAudioStreamIndex":this.setAudioStreamIndex(parseInt(cmd.Arguments.Index),player);break;case"SetSubtitleStreamIndex":this.setSubtitleStreamIndex(parseInt(cmd.Arguments.Index),player,cmd.Arguments.RefreshMediaSource);break;case"SetMaxStreamingBitrate":break;case"ToggleFullscreen":this.toggleFullscreen(player);break;default:player.sendCommand&&player.sendCommand(cmd)}};_exports.default=new PlaybackManager});