Files
Futontime_UI/modules/common/playback/playersettingsmenu.js
2026-02-09 10:48:21 +01:00

1 line
8.9 KiB
JavaScript

define(["exports","./../globalize.js","./playbackmanager.js","./../../emby-apiclient/connectionmanager.js","./../../actionsheet/actionsheet.js","./../qualityoptions.js","./../dataformatter.js"],function(_exports,_globalize,_playbackmanager,_connectionmanager,_actionsheet,_qualityoptions,_dataformatter){function showSpeedMenu(options){for(var menuItems=[],player=options.player,currentValue=_playbackmanager.default.getPlaybackRate(player),values=[.25,.5,.75,1,1.25,1.5,1.75,2],i=0,length=values.length;i<length;i++){var value=values[i];menuItems.push({name:1===value?_globalize.default.translate("Normal"):numberToString(value)+"x",id:value.toString(),selected:currentValue===value})}return _actionsheet.default.show({items:menuItems,positionTo:options.positionTo,positionX:options.positionX,positionY:options.positionY,transformOrigin:options.transformOrigin,noTextWrap:options.noTextWrap,title:_globalize.default.translate("PlaybackSpeed"),hasItemSelectionState:!0}).then(function(result){result&&_playbackmanager.default.setPlaybackRate(result,player)})}function numberToString(value){try{return new Intl.NumberFormat(_globalize.default.getCurrentLocales(),{style:"decimal"}).format(value)}catch(err){return console.log("Error in NumberFormat: "+err),value}}function showWithUser(options,player,user){var currentAspectRatioId,asideText,supportedCommands=_playbackmanager.default.getSupportedCommands(player),menuItems=[],currentAspectRatio=("Video"===options.mediaType&&-1!==supportedCommands.indexOf("SetAspectRatio")&&(currentAspectRatioId=_playbackmanager.default.getAspectRatio(player),currentAspectRatio=_playbackmanager.default.getSupportedAspectRatios(player).filter(function(i){return i.id===currentAspectRatioId})[0],menuItems.push({name:_globalize.default.translate("HeaderAspectRatio"),id:"aspectratio",asideText:currentAspectRatio?currentAspectRatio.name:null})),_playbackmanager.default.currentMediaSource(player));if("Video"===options.mediaType&&user&&user.Policy.EnableVideoPlaybackTranscoding&&currentAspectRatio&&currentAspectRatio.SupportsTranscoding&&-1!==supportedCommands.indexOf("SetMaxStreamingBitrate")&&(user=function(player){var text,videoStream=(videoStream=_playbackmanager.default.currentMediaSource(player).MediaStreams.filter(function(stream){return"Video"===stream.Type})[0])?videoStream.Width:null;return(videoStream=_qualityoptions.default.getVideoQualityOptions({currentMaxBitrate:_playbackmanager.default.getMaxStreamingBitrate(player),isAutomaticBitrateEnabled:_playbackmanager.default.enableAutomaticBitrateDetection(player),videoWidth:videoStream,enableAuto:!0}).filter(function(o){return o.selected})).length?(text=(videoStream=videoStream[0]).name,videoStream.autoText&&((player=_playbackmanager.default.getPlayerState(player)).PlayState&&"Transcode"!==player.PlayState.PlayMethod?text+=" - Direct":text+=" "+videoStream.autoText),text):null}(player),menuItems.push({name:_globalize.default.translate("Quality"),id:"quality",asideText:user})),"Video"===options.mediaType&&-1!==supportedCommands.indexOf("SetRepeatMode")&&currentAspectRatio.RunTimeTicks&&(user=_playbackmanager.default.getRepeatMode(player),menuItems.push({name:_globalize.default.translate("HeaderRepeatMode"),id:"repeatmode",asideText:"RepeatNone"===user?_globalize.default.translate("None"):_globalize.default.translate(""+user)})),-1!==supportedCommands.indexOf("SetPlaybackRate")&&currentAspectRatio.RunTimeTicks&&!1!==options.speed&&(user=_playbackmanager.default.getPlaybackRate(player),menuItems.push({name:_globalize.default.translate("PlaybackSpeed"),id:"speed",asideText:1===user?_globalize.default.translate("Normal"):numberToString(user)})),"Audio"===options.mediaType&&-1!==supportedCommands.indexOf("SetSleepTimer")){switch(_playbackmanager.default.getSleepTimerMode(player)){case"AtTime":asideText=_dataformatter.default.formatRelativeTime(_playbackmanager.default.getSleepTimerEndTime(player),!1);break;case"AfterItem":asideText=_globalize.default.translate("AfterCurrentItem")}menuItems.push({name:_globalize.default.translate("HeaderSleepTimer"),id:"sleeptimer",asideText:asideText})}return"Video"===options.mediaType&&-1!==supportedCommands.indexOf("TriggerTranscodingFallback")&&_playbackmanager.default.canTriggerTranscodingFallback(player)&&menuItems.push({name:_globalize.default.translate("HeaderPlaybackCorrection"),id:"triggertranscodingfallback",asideText:null}),player.isLocalPlayer&&!1!==options.stats&&menuItems.push({name:_globalize.default.translate("StatsForNerds"),id:"stats",asideText:null}),1<_playbackmanager.default.getCurrentPlaylistLength(player)&&menuItems.push({name:_globalize.default.translate("HeaderSavePlayQueueToPlaylist"),id:"saveplayqueue",asideText:null}),options.more&&menuItems.push({name:_globalize.default.translate("More"),id:"more",asideText:null}),_actionsheet.default.show({items:menuItems,positionTo:options.positionTo,positionX:options.positionX,positionY:options.positionY,transformOrigin:options.transformOrigin,noTextWrap:options.noTextWrap,hasItemAsideText:!0}).then(function(id){return handleSelectedOption(id,options,player)})}function isValidForPlaylist(i){return i.Id&&i.ServerId}function handleSelectedOption(id,options,player){switch(id){case"quality":return function(player,options){var videoStream=(videoStream=_playbackmanager.default.currentMediaSource(player).MediaStreams.filter(function(stream){return"Video"===stream.Type})[0])?videoStream.Width:null,menuItems=(videoStream=_qualityoptions.default.getVideoQualityOptions({currentMaxBitrate:_playbackmanager.default.getMaxStreamingBitrate(player),isAutomaticBitrateEnabled:_playbackmanager.default.enableAutomaticBitrateDetection(player),videoWidth:videoStream,enableAuto:!0})).map(function(o){var opt={name:o.name,id:o.bitrate,asideText:o.secondaryText};return o.selected&&(opt.selected=!0),opt}),selectedId=(selectedId=videoStream.filter(function(o){return o.selected})).length?selectedId[0].bitrate:null;return _actionsheet.default.show({items:menuItems,positionTo:options.positionTo,positionX:options.positionX,positionY:options.positionY,transformOrigin:options.transformOrigin,noTextWrap:options.noTextWrap,title:_globalize.default.translate("Quality"),hasItemSelectionState:!0}).then(function(id){id=parseInt(id);id!==selectedId&&_playbackmanager.default.setMaxStreamingBitrate({enableAutomaticBitrateDetection:!id,maxBitrate:id},player)})}(player,options);case"aspectratio":return function(player,options){var currentId=_playbackmanager.default.getAspectRatio(player),menuItems=_playbackmanager.default.getSupportedAspectRatios(player).map(function(i){return{id:i.id,name:i.name,selected:i.id===currentId}});return _actionsheet.default.show({items:menuItems,positionTo:options.positionTo,positionX:options.positionX,positionY:options.positionY,transformOrigin:options.transformOrigin,noTextWrap:options.noTextWrap,title:_globalize.default.translate("HeaderAspectRatio"),hasItemSelectionState:!0}).then(function(id){return id?(_playbackmanager.default.setAspectRatio(id,player),Promise.resolve()):Promise.reject()})}(player,options);case"repeatmode":return function(player,options){var menuItems=[],currentValue=_playbackmanager.default.getRepeatMode(player);return menuItems.push({name:_globalize.default.translate("RepeatAll"),id:"RepeatAll",selected:"RepeatAll"===currentValue,asideIcon:"&#xe040;"}),menuItems.push({name:_globalize.default.translate("RepeatOne"),id:"RepeatOne",selected:"RepeatOne"===currentValue,asideIcon:"&#xe041;"}),menuItems.push({name:_globalize.default.translate("None"),id:"RepeatNone",selected:"RepeatNone"===currentValue}),_actionsheet.default.show({items:menuItems,positionTo:options.positionTo,positionX:options.positionX,positionY:options.positionY,transformOrigin:options.transformOrigin,noTextWrap:options.noTextWrap,title:_globalize.default.translate("HeaderRepeatMode"),hasItemSelectionState:!0,hasItemAsideIcon:!0}).then(function(mode){mode&&_playbackmanager.default.setRepeatMode(mode,player)})}(player,options);case"speed":return showSpeedMenu(options);case"saveplayqueue":return function(player){return Emby.importModule("./modules/addtolist/addtolist.js").then(function(AddToList){_playbackmanager.default.getPlaylist(player).then(function(result){result=result.Items.filter(isValidForPlaylist);result.length&&(new AddToList).show({items:result,enableAddToPlayQueue:!1,defaultValue:"new",type:"Playlist"})})})}(player);case"sleeptimer":return function(options){return Emby.importModule("./modules/common/playback/sleeptimermenu.js").then(function(SleepTimerMenu){return SleepTimerMenu.show(options)})}(options);default:return options.onOption&&options.onOption(id),Promise.resolve()}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={show:function(options){var player=options.player,currentItem=_playbackmanager.default.currentItem(player);return currentItem&&currentItem.ServerId?_connectionmanager.default.getApiClient(currentItem.ServerId).getCurrentUser().then(function(user){return showWithUser(options,player,user)}):showWithUser(options,player,null)},showSpeedMenu:showSpeedMenu,showSubMenu:handleSelectedOption}});