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

expose more dlna profile properties

This commit is contained in:
Luke Pulverenti 2014-04-28 11:05:28 -04:00
parent 093ee4c866
commit ee5eefb01e
6 changed files with 188 additions and 38 deletions

View file

@ -1,6 +1,7 @@
(function (window, document, $, setTimeout, clearTimeout) {
var currentPlayer;
var lastPlayerState;
function bindEvents(page) {
@ -12,12 +13,37 @@
elem.show();
});
$('.btnCommand', page).on('click', function () {
$('.btnCommand,.btnToggleFullscreen', page).on('click', function () {
currentPlayer.sendCommand({
Name: this.getAttribute('data-command')
});
});
$('.btnStop', page).on('click', function () {
currentPlayer.stop();
});
$('.btnPlay', page).on('click', function () {
currentPlayer.unpause();
});
$('.btnPause', page).on('click', function () {
currentPlayer.pause();
});
$('.btnNextTrack', page).on('click', function () {
currentPlayer.nextTrack();
});
$('.btnPreviousTrack', page).on('click', function () {
currentPlayer.previousTrack();
});
}
function onPlaybackStart(e, state) {
@ -34,10 +60,59 @@
var player = this;
player.endPlayerUpdates();
onStateChanged.call(player, e, state);
}
function onStateChanged(e, state) {
updatePlayerState($.mobile.activePage, state);
}
function showButton(button) {
button.removeClass('hide');
}
function hideButton(button) {
button.addClass('hide');
}
function updatePlayerState(page, state) {
lastPlayerState = state;
var item = state.NowPlayingItem;
var playerInfo = MediaController.getPlayerInfo();
var supportedCommands = playerInfo.supportedCommands;
$('.btnToggleFullscreen', page).buttonEnabled(item && item.MediaType == 'Video' && supportedCommands.indexOf('ToggleFullscreen') != -1);
$('.btnAudioTracks', page).buttonEnabled(item != null);
$('.btnSubtitles', page).buttonEnabled(item != null);
$('.btnChapters', page).buttonEnabled(item != null);
$('.btnStop', page).buttonEnabled(item != null);
$('.btnNextTrack', page).buttonEnabled(item != null);
$('.btnPreviousTrack', page).buttonEnabled(item != null);
var btnPause = $('.btnPause', page).buttonEnabled(item != null);
var btnPlay = $('.btnPlay', page).buttonEnabled(item != null);
var playState = state.PlayState || {};
if (playState.IsPaused) {
hideButton(btnPause);
showButton(btnPlay);
} else {
showButton(btnPause);
hideButton(btnPlay);
}
}
function updateSupportedCommands(page, commands) {
@ -93,13 +168,6 @@
bindEvents(page);
}).on('pageshow', "#nowPlayingPage", function () {
var page = this;
$('.radioTabButton', page).checked(false).checkboxradio('refresh');
$('.radioTabButton:first', page).checked(true).checkboxradio('refresh').trigger('change');
$(function () {
$(MediaController).on('playerchange.nowplayingpage', function () {
@ -111,11 +179,20 @@
});
}).on('pageshow', "#nowPlayingPage", function () {
var page = this;
$('.radioTabButton', page).checked(false).checkboxradio('refresh');
$('.radioTabButton:first', page).checked(true).checkboxradio('refresh').trigger('change');
}).on('pagehide', "#nowPlayingPage", function () {
releaseCurrentPlayer();
$(MediaController).off('playerchange.nowplayingpage');
lastPlayerState = null;
});
})(window, document, jQuery, setTimeout, clearTimeout);