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

@ -8,4 +8,4 @@ Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
--> -->
<!--<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic,500,500italic,700,700italic">--> <!--<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic,500,500italic,700,700italic">-->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto+Mono:400,700"> <!--<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto+Mono:400,700">-->

View file

@ -25,14 +25,14 @@
"web-component-tester": "*", "web-component-tester": "*",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
}, },
"homepage": "https://github.com/polymerelements/iron-meta", "homepage": "https://github.com/PolymerElements/iron-meta",
"_release": "1.0.3", "_release": "1.0.3",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.0.3", "tag": "v1.0.3",
"commit": "91529259262b0d8f33fed44bc3fd47aedf35cb04" "commit": "91529259262b0d8f33fed44bc3fd47aedf35cb04"
}, },
"_source": "git://github.com/polymerelements/iron-meta.git", "_source": "git://github.com/PolymerElements/iron-meta.git",
"_target": "^1.0.0", "_target": "^1.0.0",
"_originalSource": "polymerelements/iron-meta" "_originalSource": "PolymerElements/iron-meta"
} }

View file

@ -265,7 +265,8 @@
"SetVolume", "SetVolume",
"SetAudioStreamIndex", "SetAudioStreamIndex",
"SetSubtitleStreamIndex", "SetSubtitleStreamIndex",
"DisplayContent" "DisplayContent",
"SetRepeatMode"
]; ];
return target; return target;
@ -372,6 +373,15 @@
}); });
}; };
self.setRepeatMode = function (mode) {
sendMessageToDevice({
options: {
RepeatMode: mode
},
command: 'SetRepeatMode'
});
};
self.volumeUp = function () { self.volumeUp = function () {
sendMessageToDevice({ sendMessageToDevice({

View file

@ -48,10 +48,6 @@
font-weight: normal; font-weight: normal;
} }
.volumeButton {
margin-right: .5em !important;
}
.mediaPlayerAudioContainer { .mediaPlayerAudioContainer {
position: fixed; position: fixed;
top: 40%; top: 40%;

View file

@ -42,6 +42,10 @@
z-index: 1000; z-index: 1000;
} }
.nowPlayingPageRepeatActive {
color: #2ad !important;
}
.chapterMenuInner { .chapterMenuInner {
padding: 1em 0; padding: 1em 0;
text-align: center; text-align: center;
@ -193,6 +197,7 @@
display: none; display: none;
} }
} }
.nowPlayingPageUserDataButtons iron-icon { .nowPlayingPageUserDataButtons iron-icon {
width: 40px; width: 40px;
height: 40px; height: 40px;

View file

@ -6,7 +6,7 @@
} }
.hiddenNowPlayingBar .nowPlayingBar { .hiddenNowPlayingBar .nowPlayingBar {
display: none!important; display: none !important;
} }
.mediaButton, .nowPlayingBarUserDataButtons .btnUserItemRating { .mediaButton, .nowPlayingBarUserDataButtons .btnUserItemRating {
@ -15,14 +15,15 @@
margin: 0; margin: 0;
text-align: center; text-align: center;
} }
.mediaButton iron-icon {
.mediaButton iron-icon {
height: 40px; height: 40px;
width: 40px; width: 40px;
} }
.mediaButton.remoteControlButton iron-icon, .mediaButton.muteButton iron-icon, .mediaButton.unmuteButton iron-icon { .mediaButton.remoteControlButton iron-icon, .mediaButton.muteButton iron-icon, .mediaButton.unmuteButton iron-icon {
height: 26px; height: 26px;
} }
.nowPlayingDoubleText { .nowPlayingDoubleText {
top: -3px; top: -3px;
@ -61,6 +62,14 @@
max-width: 130px; max-width: 130px;
} }
.toggleRepeatButton iron-icon {
height: 32px;
}
.repeatActive {
color: #3367d6;
}
@media (min-width: 500px) { @media (min-width: 500px) {
.nowPlayingBarText { .nowPlayingBarText {
max-width: 180px; max-width: 180px;
@ -222,6 +231,10 @@
.nowPlayingBarPositionSlider #sliderKnob { .nowPlayingBarPositionSlider #sliderKnob {
top: -15px !important; top: -15px !important;
} }
.toggleRepeatButton {
display: none;
}
} }
@media all and (min-width: 800px) { @media all and (min-width: 800px) {

View file

@ -3,7 +3,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 100; font-weight: 100;
src: local('Roboto Thin'), local('Roboto-Thin'), url(fonts/roboto/ty9dfvLAziwdqQ2dHoyjphTbgVql8nDJpwnrE27mub0.woff2) format('woff2'), url(fonts/Roboto/RobotoThin.woff) format('woff'); src: local('Roboto Thin'), local('Roboto-Thin'), url(fonts/roboto/ty9dfvLAziwdqQ2dHoyjphTbgVql8nDJpwnrE27mub0.woff2) format('woff2'), url(fonts/roboto/RobotoThin.woff) format('woff');
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
} }
/* cyrillic */ /* cyrillic */
@ -11,7 +11,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 100; font-weight: 100;
src: local('Roboto Thin'), local('Roboto-Thin'), url(fonts/roboto/frNV30OaYdlFRtH2VnZZdhTbgVql8nDJpwnrE27mub0.woff2) format('woff2'), url(fonts/Roboto/RobotoThin.woff) format('woff'); src: local('Roboto Thin'), local('Roboto-Thin'), url(fonts/roboto/frNV30OaYdlFRtH2VnZZdhTbgVql8nDJpwnrE27mub0.woff2) format('woff2'), url(fonts/roboto/RobotoThin.woff) format('woff');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
} }
/* greek-ext */ /* greek-ext */
@ -19,7 +19,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 100; font-weight: 100;
src: local('Roboto Thin'), local('Roboto-Thin'), url(fonts/roboto/gwVJDERN2Amz39wrSoZ7FxTbgVql8nDJpwnrE27mub0.woff2) format('woff2'), url(fonts/Roboto/RobotoThin.woff) format('woff'); src: local('Roboto Thin'), local('Roboto-Thin'), url(fonts/roboto/gwVJDERN2Amz39wrSoZ7FxTbgVql8nDJpwnrE27mub0.woff2) format('woff2'), url(fonts/roboto/RobotoThin.woff) format('woff');
unicode-range: U+1F00-1FFF; unicode-range: U+1F00-1FFF;
} }
/* greek */ /* greek */
@ -27,7 +27,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 100; font-weight: 100;
src: local('Roboto Thin'), local('Roboto-Thin'), url(fonts/roboto/aZMswpodYeVhtRvuABJWvBTbgVql8nDJpwnrE27mub0.woff2) format('woff2'), url(fonts/Roboto/RobotoThin.woff) format('woff'); src: local('Roboto Thin'), local('Roboto-Thin'), url(fonts/roboto/aZMswpodYeVhtRvuABJWvBTbgVql8nDJpwnrE27mub0.woff2) format('woff2'), url(fonts/roboto/RobotoThin.woff) format('woff');
unicode-range: U+0370-03FF; unicode-range: U+0370-03FF;
} }
/* vietnamese */ /* vietnamese */
@ -35,7 +35,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 100; font-weight: 100;
src: local('Roboto Thin'), local('Roboto-Thin'), url(fonts/roboto/VvXUGKZXbHtX_S_VCTLpGhTbgVql8nDJpwnrE27mub0.woff2) format('woff2'), url(fonts/Roboto/RobotoThin.woff) format('woff'); src: local('Roboto Thin'), local('Roboto-Thin'), url(fonts/roboto/VvXUGKZXbHtX_S_VCTLpGhTbgVql8nDJpwnrE27mub0.woff2) format('woff2'), url(fonts/roboto/RobotoThin.woff) format('woff');
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB; unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
} }
/* latin-ext */ /* latin-ext */
@ -43,7 +43,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 100; font-weight: 100;
src: local('Roboto Thin'), local('Roboto-Thin'), url(fonts/roboto/e7MeVAyvogMqFwwl61PKhBTbgVql8nDJpwnrE27mub0.woff2) format('woff2'), url(fonts/Roboto/RobotoThin.woff) format('woff'); src: local('Roboto Thin'), local('Roboto-Thin'), url(fonts/roboto/e7MeVAyvogMqFwwl61PKhBTbgVql8nDJpwnrE27mub0.woff2) format('woff2'), url(fonts/roboto/RobotoThin.woff) format('woff');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
} }
/* latin */ /* latin */
@ -51,7 +51,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 100; font-weight: 100;
src: local('Roboto Thin'), local('Roboto-Thin'), url(fonts/roboto/2tsd397wLxj96qwHyNIkxPesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'), url(fonts/Roboto/RobotoThin.woff) format('woff'); src: local('Roboto Thin'), local('Roboto-Thin'), url(fonts/roboto/2tsd397wLxj96qwHyNIkxPesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'), url(fonts/roboto/RobotoThin.woff) format('woff');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
} }
/* cyrillic-ext */ /* cyrillic-ext */
@ -59,7 +59,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 300; font-weight: 300;
src: local('Roboto Light'), local('Roboto-Light'), url(fonts/roboto/0eC6fl06luXEYWpBSJvXCBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoLight.woff) format('woff'); src: local('Roboto Light'), local('Roboto-Light'), url(fonts/roboto/0eC6fl06luXEYWpBSJvXCBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoLight.woff) format('woff');
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
} }
/* cyrillic */ /* cyrillic */
@ -67,7 +67,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 300; font-weight: 300;
src: local('Roboto Light'), local('Roboto-Light'), url(fonts/roboto/Fl4y0QdOxyyTHEGMXX8kcRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoLight.woff) format('woff'); src: local('Roboto Light'), local('Roboto-Light'), url(fonts/roboto/Fl4y0QdOxyyTHEGMXX8kcRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoLight.woff) format('woff');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
} }
/* greek-ext */ /* greek-ext */
@ -75,7 +75,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 300; font-weight: 300;
src: local('Roboto Light'), local('Roboto-Light'), url(fonts/roboto/-L14Jk06m6pUHB-5mXQQnRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoLight.woff) format('woff'); src: local('Roboto Light'), local('Roboto-Light'), url(fonts/roboto/-L14Jk06m6pUHB-5mXQQnRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoLight.woff) format('woff');
unicode-range: U+1F00-1FFF; unicode-range: U+1F00-1FFF;
} }
/* greek */ /* greek */
@ -83,7 +83,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 300; font-weight: 300;
src: local('Roboto Light'), local('Roboto-Light'), url(fonts/roboto/I3S1wsgSg9YCurV6PUkTORJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoLight.woff) format('woff'); src: local('Roboto Light'), local('Roboto-Light'), url(fonts/roboto/I3S1wsgSg9YCurV6PUkTORJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoLight.woff) format('woff');
unicode-range: U+0370-03FF; unicode-range: U+0370-03FF;
} }
/* vietnamese */ /* vietnamese */
@ -91,7 +91,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 300; font-weight: 300;
src: local('Roboto Light'), local('Roboto-Light'), url(fonts/roboto/NYDWBdD4gIq26G5XYbHsFBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoLight.woff) format('woff'); src: local('Roboto Light'), local('Roboto-Light'), url(fonts/roboto/NYDWBdD4gIq26G5XYbHsFBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoLight.woff) format('woff');
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB; unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
} }
/* latin-ext */ /* latin-ext */
@ -99,7 +99,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 300; font-weight: 300;
src: local('Roboto Light'), local('Roboto-Light'), url(fonts/roboto/Pru33qjShpZSmG3z6VYwnRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoLight.woff) format('woff'); src: local('Roboto Light'), local('Roboto-Light'), url(fonts/roboto/Pru33qjShpZSmG3z6VYwnRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoLight.woff) format('woff');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
} }
/* latin */ /* latin */
@ -107,7 +107,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 300; font-weight: 300;
src: local('Roboto Light'), local('Roboto-Light'), url(fonts/roboto/Hgo13k-tfSpn0qi1SFdUfVtXRa8TVwTICgirnJhmVJw.woff2) format('woff2'), url(fonts/Roboto/RobotoLight.woff) format('woff'); src: local('Roboto Light'), local('Roboto-Light'), url(fonts/roboto/Hgo13k-tfSpn0qi1SFdUfVtXRa8TVwTICgirnJhmVJw.woff2) format('woff2'), url(fonts/roboto/RobotoLight.woff) format('woff');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
} }
/* cyrillic-ext */ /* cyrillic-ext */
@ -115,7 +115,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url(http://fonts.gstatic.com/s/roboto/v15/ek4gzZ-GeXAPcSbHtCeQI_esZW2xOQ-xsNqO47m55DA.woff2) format('woff2'), url(fonts/Roboto/RobotoRegular.woff) format('woff'); src: local('Roboto'), local('Roboto-Regular'), url(http://fonts.gstatic.com/s/roboto/v15/ek4gzZ-GeXAPcSbHtCeQI_esZW2xOQ-xsNqO47m55DA.woff2) format('woff2'), url(fonts/roboto/RobotoRegular.woff) format('woff');
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
} }
/* cyrillic */ /* cyrillic */
@ -123,7 +123,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url(http://fonts.gstatic.com/s/roboto/v15/mErvLBYg_cXG3rLvUsKT_fesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'), url(fonts/Roboto/RobotoRegular.woff) format('woff'); src: local('Roboto'), local('Roboto-Regular'), url(http://fonts.gstatic.com/s/roboto/v15/mErvLBYg_cXG3rLvUsKT_fesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'), url(fonts/roboto/RobotoRegular.woff) format('woff');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
} }
/* greek-ext */ /* greek-ext */
@ -131,7 +131,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url(http://fonts.gstatic.com/s/roboto/v15/-2n2p-_Y08sg57CNWQfKNvesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'), url(fonts/Roboto/RobotoRegular.woff) format('woff'); src: local('Roboto'), local('Roboto-Regular'), url(http://fonts.gstatic.com/s/roboto/v15/-2n2p-_Y08sg57CNWQfKNvesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'), url(fonts/roboto/RobotoRegular.woff) format('woff');
unicode-range: U+1F00-1FFF; unicode-range: U+1F00-1FFF;
} }
/* greek */ /* greek */
@ -139,7 +139,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url(http://fonts.gstatic.com/s/roboto/v15/u0TOpm082MNkS5K0Q4rhqvesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'), url(fonts/Roboto/RobotoRegular.woff) format('woff'); src: local('Roboto'), local('Roboto-Regular'), url(http://fonts.gstatic.com/s/roboto/v15/u0TOpm082MNkS5K0Q4rhqvesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'), url(fonts/roboto/RobotoRegular.woff) format('woff');
unicode-range: U+0370-03FF; unicode-range: U+0370-03FF;
} }
/* vietnamese */ /* vietnamese */
@ -147,7 +147,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url(http://fonts.gstatic.com/s/roboto/v15/NdF9MtnOpLzo-noMoG0miPesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'), url(fonts/Roboto/RobotoRegular.woff) format('woff'); src: local('Roboto'), local('Roboto-Regular'), url(http://fonts.gstatic.com/s/roboto/v15/NdF9MtnOpLzo-noMoG0miPesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'), url(fonts/roboto/RobotoRegular.woff) format('woff');
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB; unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
} }
/* latin-ext */ /* latin-ext */
@ -155,7 +155,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url(fonts/roboto/Fcx7Wwv8OzT71A3E1XOAjvesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'), url(fonts/Roboto/RobotoRegular.woff) format('woff'); src: local('Roboto'), local('Roboto-Regular'), url(fonts/roboto/Fcx7Wwv8OzT71A3E1XOAjvesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'), url(fonts/roboto/RobotoRegular.woff) format('woff');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
} }
/* latin */ /* latin */
@ -163,7 +163,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url(fonts/roboto/CWB0XYA8bzo0kSThX0UTuA.woff2) format('woff2'), url(fonts/Roboto/RobotoRegular.woff) format('woff'); src: local('Roboto'), local('Roboto-Regular'), url(fonts/roboto/CWB0XYA8bzo0kSThX0UTuA.woff2) format('woff2'), url(fonts/roboto/RobotoRegular.woff) format('woff');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
} }
/* cyrillic-ext */ /* cyrillic-ext */
@ -171,7 +171,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 500; font-weight: 500;
src: local('Roboto Medium'), local('Roboto-Medium'), url(http://fonts.gstatic.com/s/roboto/v15/ZLqKeelYbATG60EpZBSDyxJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoMedium.woff) format('woff'); src: local('Roboto Medium'), local('Roboto-Medium'), url(http://fonts.gstatic.com/s/roboto/v15/ZLqKeelYbATG60EpZBSDyxJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoMedium.woff) format('woff');
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
} }
/* cyrillic */ /* cyrillic */
@ -179,7 +179,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 500; font-weight: 500;
src: local('Roboto Medium'), local('Roboto-Medium'), url(http://fonts.gstatic.com/s/roboto/v15/oHi30kwQWvpCWqAhzHcCSBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoMedium.woff) format('woff'); src: local('Roboto Medium'), local('Roboto-Medium'), url(http://fonts.gstatic.com/s/roboto/v15/oHi30kwQWvpCWqAhzHcCSBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoMedium.woff) format('woff');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
} }
/* greek-ext */ /* greek-ext */
@ -187,7 +187,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 500; font-weight: 500;
src: local('Roboto Medium'), local('Roboto-Medium'), url(http://fonts.gstatic.com/s/roboto/v15/rGvHdJnr2l75qb0YND9NyBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoMedium.woff) format('woff'); src: local('Roboto Medium'), local('Roboto-Medium'), url(http://fonts.gstatic.com/s/roboto/v15/rGvHdJnr2l75qb0YND9NyBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoMedium.woff) format('woff');
unicode-range: U+1F00-1FFF; unicode-range: U+1F00-1FFF;
} }
/* greek */ /* greek */
@ -195,7 +195,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 500; font-weight: 500;
src: local('Roboto Medium'), local('Roboto-Medium'), url(http://fonts.gstatic.com/s/roboto/v15/mx9Uck6uB63VIKFYnEMXrRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoMedium.woff) format('woff'); src: local('Roboto Medium'), local('Roboto-Medium'), url(http://fonts.gstatic.com/s/roboto/v15/mx9Uck6uB63VIKFYnEMXrRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoMedium.woff) format('woff');
unicode-range: U+0370-03FF; unicode-range: U+0370-03FF;
} }
/* vietnamese */ /* vietnamese */
@ -203,7 +203,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 500; font-weight: 500;
src: local('Roboto Medium'), local('Roboto-Medium'), url(http://fonts.gstatic.com/s/roboto/v15/mbmhprMH69Zi6eEPBYVFhRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoMedium.woff) format('woff'); src: local('Roboto Medium'), local('Roboto-Medium'), url(http://fonts.gstatic.com/s/roboto/v15/mbmhprMH69Zi6eEPBYVFhRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoMedium.woff) format('woff');
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB; unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
} }
/* latin-ext */ /* latin-ext */
@ -211,7 +211,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 500; font-weight: 500;
src: local('Roboto Medium'), local('Roboto-Medium'), url(fonts/roboto/oOeFwZNlrTefzLYmlVV1UBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoMedium.woff) format('woff'); src: local('Roboto Medium'), local('Roboto-Medium'), url(fonts/roboto/oOeFwZNlrTefzLYmlVV1UBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoMedium.woff) format('woff');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
} }
/* latin */ /* latin */
@ -219,7 +219,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 500; font-weight: 500;
src: local('Roboto Medium'), local('Roboto-Medium'), url(fonts/roboto/RxZJdnzeo3R5zSexge8UUVtXRa8TVwTICgirnJhmVJw.woff2) format('woff2'), url(fonts/Roboto/RobotoMedium.woff) format('woff'); src: local('Roboto Medium'), local('Roboto-Medium'), url(fonts/roboto/RxZJdnzeo3R5zSexge8UUVtXRa8TVwTICgirnJhmVJw.woff2) format('woff2'), url(fonts/roboto/RobotoMedium.woff) format('woff');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
} }
/* cyrillic-ext */ /* cyrillic-ext */
@ -227,7 +227,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 700; font-weight: 700;
src: local('Roboto Bold'), local('Roboto-Bold'), url(http://fonts.gstatic.com/s/roboto/v15/77FXFjRbGzN4aCrSFhlh3hJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoBold.woff) format('woff'); src: local('Roboto Bold'), local('Roboto-Bold'), url(http://fonts.gstatic.com/s/roboto/v15/77FXFjRbGzN4aCrSFhlh3hJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoBold.woff) format('woff');
unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
} }
/* cyrillic */ /* cyrillic */
@ -235,7 +235,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 700; font-weight: 700;
src: local('Roboto Bold'), local('Roboto-Bold'), url(http://fonts.gstatic.com/s/roboto/v15/isZ-wbCXNKAbnjo6_TwHThJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoBold.woff) format('woff'); src: local('Roboto Bold'), local('Roboto-Bold'), url(http://fonts.gstatic.com/s/roboto/v15/isZ-wbCXNKAbnjo6_TwHThJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoBold.woff) format('woff');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
} }
/* greek-ext */ /* greek-ext */
@ -243,7 +243,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 700; font-weight: 700;
src: local('Roboto Bold'), local('Roboto-Bold'), url(http://fonts.gstatic.com/s/roboto/v15/UX6i4JxQDm3fVTc1CPuwqhJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoBold.woff) format('woff'); src: local('Roboto Bold'), local('Roboto-Bold'), url(http://fonts.gstatic.com/s/roboto/v15/UX6i4JxQDm3fVTc1CPuwqhJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoBold.woff) format('woff');
unicode-range: U+1F00-1FFF; unicode-range: U+1F00-1FFF;
} }
/* greek */ /* greek */
@ -251,7 +251,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 700; font-weight: 700;
src: local('Roboto Bold'), local('Roboto-Bold'), url(http://fonts.gstatic.com/s/roboto/v15/jSN2CGVDbcVyCnfJfjSdfBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoBold.woff) format('woff'); src: local('Roboto Bold'), local('Roboto-Bold'), url(http://fonts.gstatic.com/s/roboto/v15/jSN2CGVDbcVyCnfJfjSdfBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoBold.woff) format('woff');
unicode-range: U+0370-03FF; unicode-range: U+0370-03FF;
} }
/* vietnamese */ /* vietnamese */
@ -259,7 +259,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 700; font-weight: 700;
src: local('Roboto Bold'), local('Roboto-Bold'), url(http://fonts.gstatic.com/s/roboto/v15/PwZc-YbIL414wB9rB1IAPRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoBold.woff) format('woff'); src: local('Roboto Bold'), local('Roboto-Bold'), url(http://fonts.gstatic.com/s/roboto/v15/PwZc-YbIL414wB9rB1IAPRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoBold.woff) format('woff');
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB; unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
} }
/* latin-ext */ /* latin-ext */
@ -267,7 +267,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 700; font-weight: 700;
src: local('Roboto Bold'), local('Roboto-Bold'), url(fonts/roboto/97uahxiqZRoncBaCEI3aWxJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/Roboto/RobotoBold.woff) format('woff'); src: local('Roboto Bold'), local('Roboto-Bold'), url(fonts/roboto/97uahxiqZRoncBaCEI3aWxJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'), url(fonts/roboto/RobotoBold.woff) format('woff');
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
} }
/* latin */ /* latin */
@ -275,7 +275,7 @@
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;
font-weight: 700; font-weight: 700;
src: local('Roboto Bold'), local('Roboto-Bold'), url(fonts/roboto/d-6IYplOFocCacKzxwXSOFtXRa8TVwTICgirnJhmVJw.woff2) format('woff2'), url(fonts/Roboto/RobotoBold.woff) format('woff'); src: local('Roboto Bold'), local('Roboto-Bold'), url(fonts/roboto/d-6IYplOFocCacKzxwXSOFtXRa8TVwTICgirnJhmVJw.woff2) format('woff2'), url(fonts/roboto/RobotoBold.woff) format('woff');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
} }

View file

@ -22,7 +22,7 @@
<form> <form>
<div> <div>
<div> <div>
<paper-input class="txtDevicePath" label="${LabelPath}" required="required"></paper-input> <paper-input class="txtDevicePath" label="${LabelTunerIpAddress}" required="required"></paper-input>
</div> </div>
<div> <div>
<br /> <br />

View file

@ -74,13 +74,9 @@
<div class="detailSectionContent"> <div class="detailSectionContent">
<br /> <br />
<div> <div>
<br /> <div data-role="controlgroup">
<div> <label for="chkSyncToExternalCard">${OptionSyncToSDCard}</label>
<label for="txtSyncPath">${LabelSyncPath}</label> <input type="checkbox" id="chkSyncToExternalCard" />
<div style="display: inline-block; width: 85%;">
<input type="text" id="txtSyncPath" readonly />
</div>
<button class="btnSelectSyncPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true"></button>
</div> </div>
</div> </div>

View file

@ -44,16 +44,19 @@
<paper-fab icon="skip-next" class="btnPlayStateCommand btnNextTrack subdued" title="${ButtonNextTrack}"></paper-fab> <paper-fab icon="skip-next" class="btnPlayStateCommand btnNextTrack subdued" title="${ButtonNextTrack}"></paper-fab>
</div> </div>
<div class="buttonsRow2"> <div class="buttonsRow2">
<paper-fab icon="volume-up" class="btnCommand subdued volumeButton" title="${ButtonVolumeUp}" data-command="VolumeUp"></paper-fab>
<paper-fab icon="volume-off" class="btnCommand subdued volumeButton" title="${ButtonMute}" data-command="ToggleMute"></paper-fab>
<paper-fab icon="info" class="btnCommand videoButton subdued" title="${ButtonOsd}" data-command="ToggleOsdMenu"></paper-fab>
<paper-fab icon="fullscreen" class="btnToggleFullscreen videoButton btnPlayStateCommand subdued" title="${ButtonFullscreen}" data-command="ToggleFullscreen"></paper-fab>
</div>
<div class="buttonsRow3">
<paper-fab icon="volume-down" class="btnCommand subdued volumeButton" title="${ButtonVolumeDown}" data-command="VolumeDown"></paper-fab>
<paper-fab icon="audiotrack" class="btnAudioTracks videoButton btnPlayStateCommand subdued" title="${ButtonAudioTracks}" data-command="GoToSearch"></paper-fab> <paper-fab icon="audiotrack" class="btnAudioTracks videoButton btnPlayStateCommand subdued" title="${ButtonAudioTracks}" data-command="GoToSearch"></paper-fab>
<paper-fab icon="subtitles" class="btnSubtitles videoButton btnPlayStateCommand subdued" title="${ButtonSubtitles}" data-command="GoToSearch"></paper-fab> <paper-fab icon="subtitles" class="btnSubtitles videoButton btnPlayStateCommand subdued" title="${ButtonSubtitles}" data-command="GoToSearch"></paper-fab>
<paper-fab icon="movie" class="btnChapters videoButton btnPlayStateCommand subdued" title="${ButtonScenes}" data-command="GoToSearch"></paper-fab> <paper-fab icon="movie" class="btnChapters videoButton btnPlayStateCommand subdued" title="${ButtonScenes}" data-command="GoToSearch"></paper-fab>
<paper-fab icon="fullscreen" class="btnToggleFullscreen videoButton btnPlayStateCommand subdued" title="${ButtonFullscreen}" data-command="ToggleFullscreen"></paper-fab>
</div>
<div class="buttonsRow3">
<paper-fab icon="info" class="btnCommand videoButton subdued" title="${ButtonOsd}" data-command="ToggleOsdMenu"></paper-fab>
</div>
<div class="nowPlayingPageVolumeControl">
<paper-fab icon="repeat" class="btnCommand subdued repeatToggleButton" title="${ButtonRepeat}" data-command="SetRepeatMode"></paper-fab>
<paper-fab icon="volume-off" class="btnCommand subdued volumeButton" title="${ButtonMute}" data-command="ToggleMute"></paper-fab>
<paper-fab icon="volume-down" class="btnCommand subdued volumeButton" title="${ButtonVolumeDown}" data-command="VolumeDown"></paper-fab>
<paper-fab icon="volume-up" class="btnCommand subdued volumeButton" title="${ButtonVolumeUp}" data-command="VolumeUp"></paper-fab>
</div> </div>
<div class="nowPlayingPageUserDataButtons" style="margin-top:1em;"> <div class="nowPlayingPageUserDataButtons" style="margin-top:1em;">

View file

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

View file

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

View file

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

View file

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

View file

@ -1127,7 +1127,24 @@
self.nextTrack = function () { 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]; var newItem = self.playlist[newIndex];
if (newItem) { if (newItem) {
@ -1498,6 +1515,7 @@
state.PlayState.IsMuted = mediaRenderer.volume() == 0; state.PlayState.IsMuted = mediaRenderer.volume() == 0;
state.PlayState.IsPaused = mediaRenderer.paused(); state.PlayState.IsPaused = mediaRenderer.paused();
state.PlayState.PositionTicks = self.getCurrentTicks(mediaRenderer); state.PlayState.PositionTicks = self.getCurrentTicks(mediaRenderer);
state.PlayState.RepeatMode = self.getRepeatMode();
var currentSrc = mediaRenderer.currentSrc(); var currentSrc = mediaRenderer.currentSrc();
@ -1751,6 +1769,15 @@
return true; return true;
}; };
var repeatMode = 'RepeatNone';
self.getRepeatMode = function () {
return repeatMode;
};
self.setRepeatMode = function (mode) {
repeatMode = mode;
};
function onTimeUpdate() { function onTimeUpdate() {
var currentTicks = self.getCurrentTicks(this); var currentTicks = self.getCurrentTicks(this);

View file

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

View file

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

View file

@ -12,6 +12,7 @@
var unpauseButton; var unpauseButton;
var pauseButton; var pauseButton;
var positionSlider; var positionSlider;
var toggleRepeatButton;
var lastPlayerState; 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-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 class="nowPlayingBarUserDataButtons">';
html += '</div>'; 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 // 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 () { volumeSlider = $('.nowPlayingBarVolumeSlider', elem).on('change', function () {
if (currentPlayer) { if (currentPlayer) {
@ -314,6 +335,24 @@
showUnmuteButton = false; 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) { if (supportedCommands.indexOf('SetVolume') == -1) {
showVolumeSlider = false; 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) { function bindEvents(page) {
$('.tabButton', page).on('click', function () { $('.tabButton', page).on('click', function () {
@ -240,11 +258,16 @@
$('.btnCommand,.btnToggleFullscreen', page).on('click', function () { $('.btnCommand,.btnToggleFullscreen', page).on('click', function () {
if (currentPlayer) { if (currentPlayer) {
if (this.classList.contains('repeatToggleButton')) {
toggleRepeat(currentPlayer);
} else {
MediaController.sendCommand({ MediaController.sendCommand({
Name: this.getAttribute('data-command') Name: this.getAttribute('data-command')
}, currentPlayer); }, currentPlayer);
} }
}
}); });
$('.btnAudioTracks', page).on('click', function () { $('.btnAudioTracks', page).on('click', function () {
@ -490,11 +513,13 @@
if (playerInfo.isLocalPlayer && AppInfo.hasPhysicalVolumeButtons) { if (playerInfo.isLocalPlayer && AppInfo.hasPhysicalVolumeButtons) {
$('.volumeButton', page).css('visibility', 'hidden'); $('.volumeButton', page).css('visibility', 'hidden');
$('.nowPlayingPageVolumeControl', page).hide();
} else { } else {
$('.volumeButton', page).css('visibility', 'visible'); $('.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(); $('.buttonsRow2', page).hide();
$('.buttonsRow3', page).hide(); $('.buttonsRow3', page).hide();
} else { } else {
@ -502,6 +527,20 @@
$('.buttonsRow3', page).show(); $('.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); updateNowPlayingInfo(page, state);
} }

View file

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

View file

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

View file

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

View file

@ -123,6 +123,8 @@ See [iron-iconset](#iron-iconset) and [iron-iconset-svg](#iron-iconset-svg) for
<g id="local-movies"><path d="M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z" /></g> <g id="local-movies"><path d="M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z" /></g>
<g id="music-note"><path d="M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z" /></g> <g id="music-note"><path d="M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z" /></g>
<g id="more-horiz"><path d="M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z" /></g> <g id="more-horiz"><path d="M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z" /></g>
<g id="repeat"><path d="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z" /></g>
<g id="repeat-one"><path d="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z" /></g>
</defs> </defs>
</svg> </svg>
</iron-iconset-svg> </iron-iconset-svg>

View file

@ -6854,7 +6854,6 @@ this.fire('dom-change');
</script> </script>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto+Mono:400,700">
<style is="custom-style"> <style is="custom-style">
:root { :root {
@ -17802,6 +17801,8 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<g id="local-movies"><path d="M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z"></path></g> <g id="local-movies"><path d="M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z"></path></g>
<g id="music-note"><path d="M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"></path></g> <g id="music-note"><path d="M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"></path></g>
<g id="more-horiz"><path d="M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"></path></g> <g id="more-horiz"><path d="M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"></path></g>
<g id="repeat"><path d="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z"></path></g>
<g id="repeat-one"><path d="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z"></path></g>
</defs> </defs>
</svg> </svg>
</iron-iconset-svg> </iron-iconset-svg>