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

update sync processes

This commit is contained in:
Luke Pulverenti 2015-09-09 13:49:44 -04:00
parent cad461b296
commit c23547137d
19 changed files with 400 additions and 326 deletions

View file

@ -568,11 +568,24 @@
return html;
}
function getSeekableDuration() {
if (self.currentMediaSource && self.currentMediaSource.RunTimeTicks) {
return self.currentMediaSource.RunTimeTicks;
}
if (self.currentMediaRenderer) {
return self.getCurrentTicks(self.currentMediaRenderer);
}
return null;
}
function onPositionSliderChange() {
var newPercent = parseInt(this.value);
var newPositionTicks = (newPercent / 100) * self.currentMediaSource.RunTimeTicks;
var newPositionTicks = (newPercent / 100) * getSeekableDuration();
self.changeStream(Math.floor(newPositionTicks));
}
@ -718,12 +731,13 @@
positionSlider._setPinValue = function (value) {
if (!self.currentMediaSource || !self.currentMediaSource.RunTimeTicks) {
var seekableDuration = getSeekableDuration();
if (!self.currentMediaSource || !seekableDuration) {
this.pinValue = '--:--';
return;
}
var ticks = self.currentMediaSource.RunTimeTicks;
var ticks = seekableDuration;
ticks /= 100;
ticks *= value;

View file

@ -503,9 +503,14 @@
self.updateCanClientSeek = function (mediaRenderer) {
var duration = mediaRenderer.duration();
var currentSrc = self.getCurrentSrc(mediaRenderer);
canClientSeek = duration && !isNaN(duration) && duration != Number.POSITIVE_INFINITY && duration != Number.NEGATIVE_INFINITY;
if ((currentSrc || '').indexOf('.m3u8') != -1) {
canClientSeek = true;
} else {
var duration = mediaRenderer.duration();
canClientSeek = duration && !isNaN(duration) && duration != Number.POSITIVE_INFINITY && duration != Number.NEGATIVE_INFINITY;
}
};
self.getCurrentSrc = function (mediaRenderer) {
@ -709,6 +714,7 @@
ticks = Math.floor(ticks);
var timeText = Dashboard.getDisplayTime(ticks);
var mediaRenderer = self.currentMediaRenderer;
if (self.currentDurationTicks) {
@ -719,22 +725,20 @@
var percent = ticks / self.currentDurationTicks;
percent *= 100;
positionSlider.disabled = false;
positionSlider.value = percent;
}
} else {
}
if (positionSlider) {
if (positionSlider) {
positionSlider.disabled = true;
}
positionSlider.disabled = !canClientSeek;
}
if (currentTimeElement) {
currentTimeElement.html(timeText);
}
var state = self.getPlayerStateInternal(self.currentMediaRenderer, self.currentItem, self.currentMediaSource);
var state = self.getPlayerStateInternal(mediaRenderer, self.currentItem, self.currentMediaSource);
Events.trigger(self, 'positionchange', [state]);
};
@ -1552,6 +1556,8 @@
PlayState: {}
};
var currentSrc = mediaRenderer ? mediaRenderer.currentSrc() : null;
if (mediaRenderer) {
state.PlayState.VolumeLevel = mediaRenderer.volume() * 100;
@ -1560,8 +1566,6 @@
state.PlayState.PositionTicks = self.getCurrentTicks(mediaRenderer);
state.PlayState.RepeatMode = self.getRepeatMode();
var currentSrc = mediaRenderer.currentSrc();
if (currentSrc) {
var audioStreamIndex = getParameterByName('AudioStreamIndex', currentSrc);
@ -1588,7 +1592,7 @@
RunTimeTicks: mediaSource.RunTimeTicks
};
state.PlayState.CanSeek = mediaSource.RunTimeTicks && mediaSource.RunTimeTicks > 0;
state.PlayState.CanSeek = (mediaSource.RunTimeTicks || 0) > 0 || canClientSeek;
}
if (item) {

View file

@ -1763,7 +1763,6 @@ var AppInfo = {};
AppInfo.enableUserImage = true;
AppInfo.hasPhysicalVolumeButtons = isCordova || isMobile;
AppInfo.hasPhysicalVolumeButtons = true;
AppInfo.enableBackButton = isIOS && (window.navigator.standalone || AppInfo.isNativeApp);
AppInfo.supportsFullScreen = isCordova && isAndroid;
@ -2009,6 +2008,8 @@ var AppInfo = {};
if (Dashboard.isRunningInCordova() && $.browser.android) {
define("localassetmanager", ["cordova/android/localassetmanager"]);
} else if (Dashboard.isRunningInCordova()) {
define("localassetmanager", ["cordova/localassetmanager"]);
} else {
define("localassetmanager", ["apiclient/localassetmanager"]);
}
@ -2135,7 +2136,26 @@ var AppInfo = {};
return Hammer;
});
$.extend(AppInfo, Dashboard.getAppInfo(appName, deviceId, deviceName));
define("cryptojs-sha1", ["apiclient/sha1"]);
define("contentuploader", ["apiclient/contentuploader"]);
define("serversync", ["apiclient/serversync"]);
define("multiserversync", ["apiclient/multiserversync"]);
var deps = [];
if (!deviceId) {
deps.push('cryptojs-sha1');
}
require(deps, function () {
$.extend(AppInfo, Dashboard.getAppInfo(appName, deviceId, deviceName));
initAfterDependencies(deferred, capabilities);
});
}
function initAfterDependencies(deferred, capabilities) {
var drawer = document.querySelector('.mainDrawerPanel');
drawer.classList.remove('mainDrawerPanelPreInit');