1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

unify video osd

This commit is contained in:
Luke Pulverenti 2017-01-03 01:51:36 -05:00
parent b3a664583a
commit 407f137095
24 changed files with 713 additions and 6466 deletions

View file

@ -167,7 +167,7 @@ var Dashboard = {
url = '/' + url;
}
}
Emby.Page.show(url);
return Emby.Page.show(url);
},
showLoadingMsg: function () {
@ -584,11 +584,6 @@ var Dashboard = {
},
isServerlessPage: function () {
var url = window.location.href.toLowerCase();
return url.indexOf('connectlogin.html') != -1 || url.indexOf('selectserver.html') != -1 || url.indexOf('login.html') != -1 || url.indexOf('forgotpassword.html') != -1 || url.indexOf('forgotpasswordpin.html') != -1;
},
capabilities: function () {
var caps = {
@ -844,20 +839,7 @@ var Dashboard = {
require(['browserdeviceprofile', 'qualityoptions', 'appSettings'], function (profileBuilder, qualityoptions, appSettings) {
var supportsCustomSeeking = false;
if (!browserInfo.mobile) {
supportsCustomSeeking = true;
} else if (AppInfo.isNativeApp && browserInfo.safari) {
if (navigator.userAgent.toLowerCase().indexOf('ipad') == -1) {
// Need to disable it in order to support picture in picture
supportsCustomSeeking = true;
}
} else if (AppInfo.isNativeApp) {
supportsCustomSeeking = true;
}
var profile = profileBuilder(Object.assign(profileOptions || {}, {
supportsCustomSeeking: supportsCustomSeeking
}));
if (!(AppInfo.isNativeApp && browserInfo.android) && !browserInfo.edge && !browserInfo.msie) {
@ -935,8 +917,6 @@ var AppInfo = {};
// This currently isn't working on android, unfortunately
AppInfo.supportsFileInput = !(AppInfo.isNativeApp && isAndroid);
AppInfo.hasPhysicalVolumeButtons = isCordova || browserInfo.mobile;
if (isCordova && isIOS) {
AppInfo.moreIcon = 'more-horiz';
} else {
@ -1204,7 +1184,10 @@ var AppInfo = {};
itemHelper: embyWebComponentsBowerPath + '/itemhelper',
itemShortcuts: embyWebComponentsBowerPath + "/shortcuts",
serverNotifications: embyWebComponentsBowerPath + '/servernotifications',
playbackManager: embyWebComponentsBowerPath + '/playback/playbackmanager',
nowPlayingHelper: embyWebComponentsBowerPath + '/playback/nowplayinghelper',
pluginManager: embyWebComponentsBowerPath + '/pluginmanager',
packageManager: embyWebComponentsBowerPath + '/packagemanager',
webAnimations: bowerPath + '/web-animations-js/web-animations-next-lite.min'
};
@ -1287,6 +1270,8 @@ var AppInfo = {};
define("peoplecardbuilder", [embyWebComponentsBowerPath + "/cardbuilder/peoplecardbuilder"], returnFirstDependency);
define("chaptercardbuilder", [embyWebComponentsBowerPath + "/cardbuilder/chaptercardbuilder"], returnFirstDependency);
define("mouseManager", [embyWebComponentsBowerPath + "/input/mouse"], returnFirstDependency);
define("deleteHelper", [embyWebComponentsBowerPath + "/deletehelper"], returnFirstDependency);
define("tvguide", [embyWebComponentsBowerPath + "/guide/guide"], returnFirstDependency);
define("programStyles", ['css!' + embyWebComponentsBowerPath + "/guide/programs"], returnFirstDependency);
@ -1447,6 +1432,8 @@ var AppInfo = {};
return dialoghelper;
});
define("inputmanager", ['inputManager'], returnFirstDependency);
// alias
define("historyManager", ['embyRouter'], returnFirstDependency);
@ -1454,60 +1441,6 @@ var AppInfo = {};
define("hammer-main", ['hammer'], createMainContentHammer);
define("appfooter-shared", ['appfooter'], createSharedAppFooter);
// mock this for now. not used in this app
define("playbackManager", [], function () {
return {
isPlaying: function () {
return MediaPlayer.currentItem != null;
},
isPlayingVideo: function () {
return MediaPlayer.currentItem != null;
},
play: function (options) {
if (options.fullscreen === false) {
// theme backdrops - not supported
if (!options.items || options.items[0].MediaType == 'Video') {
return Promise.reject();
}
}
return MediaController.play(options);
},
queue: function (options) {
MediaController.queue(options);
},
currentPlaylistIndex: function (options) {
return MediaController.currentPlaylistIndex(options);
},
canQueueMediaType: function (mediaType) {
return MediaController.canQueueMediaType(mediaType);
},
canPlay: function (item) {
return MediaController.canPlay(item);
},
canQueue: function (item) {
return MediaController.canQueueMediaType(item.MediaType, item.Type);
},
instantMix: function (item) {
return MediaController.instantMix(item);
},
shuffle: function (item) {
return MediaController.shuffle(item);
},
pause: function () {
return MediaController.pause();
},
stop: function () {
return MediaController.stop();
},
seek: function (ticks) {
return MediaController.seek(ticks);
}
};
});
// mock this for now. not used in this app
define("skinManager", [], function () {
@ -1519,18 +1452,6 @@ var AppInfo = {};
};
});
// mock this for now. not used in this app
define("playbackManager", [], function () {
return {
};
});
// mock this for now. not used in this app
define("pluginManager", [], function () {
return {
};
});
define("connectionManager", [], function () {
return ConnectionManager;
});
@ -1547,6 +1468,10 @@ var AppInfo = {};
Dashboard.navigate('login.html?serverid=' + serverId);
};
embyRouter.showVideoOsd = function () {
return Dashboard.navigate('videoosd.html');
};
embyRouter.showSelectServer = function () {
Dashboard.navigate('selectserver.html');
};
@ -1720,18 +1645,12 @@ var AppInfo = {};
if (Dashboard.isRunningInCordova() && browserInfo.android) {
//define("audiorenderer", ["scripts/htmlmediarenderer"]);
window.VlcAudio = true;
define("audiorenderer", ["cordova/android/vlcplayer"]);
define("videorenderer", ["cordova/android/vlcplayer"]);
}
else if (Dashboard.isRunningInCordova() && browserInfo.safari) {
define("audiorenderer", ["cordova/audioplayer"]);
define("videorenderer", ["scripts/htmlmediarenderer"]);
}
else {
define("audiorenderer", ["scripts/htmlmediarenderer"]);
define("videorenderer", ["scripts/htmlmediarenderer"]);
}
if (Dashboard.isRunningInCordova() && browserInfo.android) {
@ -1747,14 +1666,7 @@ var AppInfo = {};
define("buttonenabled", ["legacy/buttonenabled"]);
var deps = [];
deps.push('scripts/mediacontroller');
require(deps, function () {
initAfterDependencies();
});
initAfterDependencies();
}
function getRequirePromise(deps) {
@ -1794,7 +1706,6 @@ var AppInfo = {};
createConnectionManager().then(function () {
console.log('initAfterDependencies promises resolved');
MediaController.init();
require(['globalize'], function (globalize) {
@ -1850,7 +1761,7 @@ var AppInfo = {};
document.title = Globalize.translateDocument(document.title, 'core');
onAppReady();
loadPlugins([], browserInfo).then(onAppReady);
}
function defineRoute(newRoute, dictionary) {
@ -2619,6 +2530,16 @@ var AppInfo = {};
anonymous: true
});
defineRoute({
path: '/videoosd.html',
dependencies: [],
transition: 'fade',
controller: 'scripts/videoosd',
autoFocus: false,
type: 'video-osd',
supportsThemeMedia: true
});
defineRoute({
path: '/configurationpage',
dependencies: ['jQuery'],
@ -2636,12 +2557,75 @@ var AppInfo = {};
});
}
function onAppReady() {
function loadPlugins(externalPlugins, browser, shell) {
require(['scripts/mediaplayer'], function () {
console.log('Loading installed plugins');
MediaPlayer.init();
// Load installed plugins
var list = [
//'plugins/defaultskin/plugin',
//'plugins/logoscreensaver/plugin',
//'plugins/backdropscreensaver/plugin',
//'plugins/defaultsoundeffects/plugin',
//'plugins/playbackvalidation/plugin'
];
list.push('bower_components/emby-webcomponents/htmlaudioplayer/plugin');
list.push('bower_components/emby-webcomponents/htmlvideoplayer/plugin');
list.push('bower_components/emby-webcomponents/sessionplayer');
if (browser.chrome) {
list.push('bower_components/emby-webcomponents/chromecastplayer');
}
list.push('bower_components/emby-webcomponents/youtubeplayer/plugin');
//if (globalScope.webapis && webapis.avplay) {
// list.push('plugins/tizenavplayer/plugin');
//} else {
// list.push('plugins/htmlvideoplayer/plugin');
//}
//if (!browser.tv) {
// list.push('plugins/confirmstillplaying/plugin');
//}
//if (!browser.keyboard) {
// list.push('plugins/keyboard/plugin');
//}
for (var i = 0, length = externalPlugins.length; i < length; i++) {
list.push(externalPlugins[i]);
}
//if (shell.canExec) {
// list.push('plugins/externalplayer/plugin');
//}
return new Promise(function (resolve, reject) {
Promise.all(list.map(loadPlugin)).then(function () {
require(['packageManager'], function (packageManager) {
packageManager.init().then(resolve, reject);
});
}, reject);
});
}
function loadPlugin(url) {
return new Promise(function (resolve, reject) {
require(['pluginManager'], function (pluginManager) {
pluginManager.loadPlugin(url).then(resolve, reject);
});
});
}
function onAppReady() {
console.log('Begin onAppReady');
@ -2689,7 +2673,6 @@ var AppInfo = {};
var postInitDependencies = [];
postInitDependencies.push('bower_components/emby-webcomponents/thememediaplayer');
postInitDependencies.push('scripts/remotecontrol');
postInitDependencies.push('css!css/chromecast.css');
postInitDependencies.push('scripts/autobackdrops');
@ -2708,9 +2691,6 @@ var AppInfo = {};
//postInitDependencies.push('cordova/backgroundfetch');
}
} else if (browserInfo.chrome) {
postInitDependencies.push('scripts/chromecast');
}
postInitDependencies.push('scripts/nowplayingbar');
@ -2724,6 +2704,7 @@ var AppInfo = {};
}
postInitDependencies.push('bower_components/emby-webcomponents/input/api');
postInitDependencies.push('mouseManager');
if (!browserInfo.tv) {