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

update hdhomerun

This commit is contained in:
Luke Pulverenti 2015-07-26 17:02:23 -04:00
parent 74fad00abe
commit 1aeb69a26c
24 changed files with 244 additions and 87 deletions

View file

@ -56,13 +56,13 @@
return appStorage.getItem('enableFullScreen') == 'true';
},
syncPath: function (val) {
enableSyncToExternalStorage: function (val) {
if (val != null) {
update('syncPath', val.toString());
update('enableSyncToExternalStorage', val.toString());
}
return appStorage.getItem('syncPath');
return appStorage.getItem('enableSyncToExternalStorage') == 'true';
},
displayPreferencesKey: function() {

View file

@ -628,6 +628,15 @@
self.setVolume(getCurrentVolume() + 2);
};
self.setRepeatMode = function (mode) {
castPlayer.sendMessage({
options: {
RepeatMode: mode
},
command: 'SetRepeatMode'
});
};
self.toggleMute = function () {
var state = self.lastPlayerData || {};
@ -676,7 +685,8 @@
"SetVolume",
"SetAudioStreamIndex",
"SetSubtitleStreamIndex",
"DisplayContent"]
"DisplayContent",
"SetRepeatMode"]
};
};

View file

@ -156,7 +156,7 @@
return true;
}
$(ownerpage).on('swipeleft', function (e) {
$(pages).on('swipeleft', function (e) {
if (allowSwipe(e)) {
var selected = parseInt(pages.selected || '0');
@ -168,7 +168,7 @@
}
});
$(ownerpage).on('swiperight', function (e) {
$(pages).on('swiperight', function (e) {
if (allowSwipe(e)) {
var selected = parseInt(pages.selected || '0');

View file

@ -573,6 +573,10 @@
currentPlayer.volumeUp();
};
self.setRepeatMode = function (mode) {
currentPlayer.setRepeatMode(mode);
};
self.playlist = function () {
return currentPlayer.playlist || [];
};
@ -586,6 +590,9 @@
Logger.log('MediaController received command: ' + cmd.Name);
switch (cmd.Name) {
case 'SetRepeatMode':
player.setRepeatMode(cmd.Arguments.RepeatMode);
break;
case 'VolumeUp':
player.volumeUp();
break;

View file

@ -1127,7 +1127,24 @@
self.nextTrack = function () {
var newIndex = currentPlaylistIndex + 1;
var newIndex;
switch (self.getRepeatMode()) {
case 'RepeatOne':
newIndex = currentPlaylistIndex;
break;
case 'RepeatAll':
newIndex = currentPlaylistIndex + 1;
if (newIndex >= self.playlist.length) {
newIndex = 0;
}
break;
default:
newIndex = currentPlaylistIndex + 1;
break;
}
var newItem = self.playlist[newIndex];
if (newItem) {
@ -1498,6 +1515,7 @@
state.PlayState.IsMuted = mediaRenderer.volume() == 0;
state.PlayState.IsPaused = mediaRenderer.paused();
state.PlayState.PositionTicks = self.getCurrentTicks(mediaRenderer);
state.PlayState.RepeatMode = self.getRepeatMode();
var currentSrc = mediaRenderer.currentSrc();
@ -1751,6 +1769,15 @@
return true;
};
var repeatMode = 'RepeatNone';
self.getRepeatMode = function () {
return repeatMode;
};
self.setRepeatMode = function (mode) {
repeatMode = mode;
};
function onTimeUpdate() {
var currentTicks = self.getCurrentTicks(this);

View file

@ -39,10 +39,11 @@
showLatestItemsPopup: false,
shape: getSquareShape(),
showTitle: true,
defaultAction: 'play',
showParentTitle: true,
lazy: true,
centerText: true,
overlayPlayButton: true
overlayMoreButton: true
});
ImageLoader.lazyChildren(elem);

View file

@ -16,7 +16,7 @@
$('#chkEnableFullScreen', page).checked(AppSettings.enableFullScreen()).checkboxradio("refresh");
$('#txtSyncPath', page).val(AppSettings.syncPath());
$('#chkSyncToExternalCard', page).checked(AppSettings.enableSyncToExternalStorage()).checkboxradio("refresh");
Dashboard.hideLoadingMsg();
}
@ -34,7 +34,7 @@
appStorage.setItem('enableThemeSongs-' + user.Id, $('#selectThemeSong', page).val());
appStorage.setItem('enableBackdrops-' + user.Id, $('#selectBackdrop', page).val());
AppSettings.syncPath($('#txtSyncPath', page).val());
AppSettings.enableSyncToExternalStorage($('#chkSyncToExternalCard', page).checked());
ApiClient.updateUserConfiguration(user.Id, user.Configuration).done(function () {
Dashboard.alert(Globalize.translate('SettingsSaved'));

View file

@ -12,6 +12,7 @@
var unpauseButton;
var pauseButton;
var positionSlider;
var toggleRepeatButton;
var lastPlayerState;
@ -53,6 +54,8 @@
html += '<paper-slider pin step="1" min="0" max="100" value="0" class="nowPlayingBarVolumeSlider" style="width:100px;vertical-align:middle;"></paper-slider>';
html += '<paper-icon-button icon="repeat" class="mediaButton toggleRepeatButton"></paper-icon-button>';
html += '<div class="nowPlayingBarUserDataButtons">';
html += '</div>';
@ -135,8 +138,26 @@
});
});
toggleRepeatButton = $('.toggleRepeatButton', elem).on('click', function () {
if (currentPlayer && lastPlayerState) {
var state = lastPlayerState;
switch ((state.PlayState || {}).RepeatMode) {
case 'RepeatNone':
currentPlayer.setRepeatMode('RepeatAll');
break;
case 'RepeatAll':
currentPlayer.setRepeatMode('RepeatOne');
break;
case 'RepeatOne':
currentPlayer.setRepeatMode('RepeatNone');
break;
}
}
})[0];
// Unfortunately this is necessary because the polymer elements might not be ready immediately and there doesn't seem to be an event-driven way to find out when
setTimeout(function() {
setTimeout(function () {
volumeSlider = $('.nowPlayingBarVolumeSlider', elem).on('change', function () {
if (currentPlayer) {
@ -314,6 +335,24 @@
showUnmuteButton = false;
}
if (supportedCommands.indexOf('SetRepeatMode') == -1) {
toggleRepeatButton.classList.add('hide');
} else {
toggleRepeatButton.classList.remove('hide');
}
if (playState.RepeatMode == 'RepeatAll') {
toggleRepeatButton.icon = "repeat";
toggleRepeatButton.classList.add('repeatActive');
}
else if (playState.RepeatMode == 'RepeatOne') {
toggleRepeatButton.icon = "repeat-one";
toggleRepeatButton.classList.add('repeatActive');
} else {
toggleRepeatButton.icon = "repeat";
toggleRepeatButton.classList.remove('repeatActive');
}
if (supportedCommands.indexOf('SetVolume') == -1) {
showVolumeSlider = false;
}

View file

@ -208,6 +208,24 @@
});
}
function toggleRepeat(player) {
if (player && lastPlayerState) {
var state = lastPlayerState;
switch ((state.PlayState || {}).RepeatMode) {
case 'RepeatNone':
player.setRepeatMode('RepeatAll');
break;
case 'RepeatAll':
player.setRepeatMode('RepeatOne');
break;
case 'RepeatOne':
player.setRepeatMode('RepeatNone');
break;
}
}
}
function bindEvents(page) {
$('.tabButton', page).on('click', function () {
@ -240,10 +258,15 @@
$('.btnCommand,.btnToggleFullscreen', page).on('click', function () {
if (currentPlayer) {
MediaController.sendCommand({
Name: this.getAttribute('data-command')
}, currentPlayer);
if (this.classList.contains('repeatToggleButton')) {
toggleRepeat(currentPlayer);
} else {
MediaController.sendCommand({
Name: this.getAttribute('data-command')
}, currentPlayer);
}
}
});
@ -490,11 +513,13 @@
if (playerInfo.isLocalPlayer && AppInfo.hasPhysicalVolumeButtons) {
$('.volumeButton', page).css('visibility', 'hidden');
$('.nowPlayingPageVolumeControl', page).hide();
} else {
$('.volumeButton', page).css('visibility', 'visible');
$('.nowPlayingPageVolumeControl', page).show();
}
if (playerInfo.isLocalPlayer && AppInfo.hasPhysicalVolumeButtons && item && item.MediaType == 'Audio') {
if (item && item.MediaType == 'Audio') {
$('.buttonsRow2', page).hide();
$('.buttonsRow3', page).hide();
} else {
@ -502,6 +527,20 @@
$('.buttonsRow3', page).show();
}
var toggleRepeatButton = page.querySelector('.repeatToggleButton');
if (playState.RepeatMode == 'RepeatAll') {
toggleRepeatButton.icon = "repeat";
toggleRepeatButton.classList.add('nowPlayingPageRepeatActive');
}
else if (playState.RepeatMode == 'RepeatOne') {
toggleRepeatButton.icon = "repeat-one";
toggleRepeatButton.classList.add('nowPlayingPageRepeatActive');
} else {
toggleRepeatButton.icon = "repeat";
toggleRepeatButton.classList.remove('nowPlayingPageRepeatActive');
}
updateNowPlayingInfo(page, state);
}

View file

@ -125,9 +125,7 @@
self.setVolume = function (vol) {
sendCommandByName('SetVolume', {
Volume: vol
});
};
@ -155,6 +153,13 @@
});
};
self.setRepeatMode = function (mode) {
sendCommandByName('SetRepeatMode', {
RepeatMode: mode
});
};
self.displayContent = function (options) {
sendCommandByName('DisplayContent', options);

View file

@ -1065,6 +1065,7 @@ var Dashboard = {
case 'SetAudioStreamIndex':
case 'SetSubtitleStreamIndex':
case 'ToggleFullscreen':
case 'SetRepeatMode':
break;
default:
Logger.log('Unrecognized command: ' + cmd.Name);
@ -1430,7 +1431,8 @@ var Dashboard = {
"SetSubtitleStreamIndex",
"DisplayContent",
"GoToSearch",
"DisplayMessage"
"DisplayMessage",
"SetRepeatMode"
];
},

View file

@ -166,7 +166,8 @@
context: 'tv',
showDetailsMenu: true,
overlayPlayButton: true,
preferThumb: true
preferThumb: true,
centerText: true
});
}