diff --git a/index.css b/index.css index f881f3b..016d3a2 100644 --- a/index.css +++ b/index.css @@ -40,7 +40,8 @@ body, html { background-size: 100%; background-position: -50%; background-repeat: no-repeat; - -webkit-filter: grayscale(100%); + /*-webkit-filter: grayscale(100%);*/ + /*-webkit-filter: blur(13px);*/ } #overlay { @@ -77,6 +78,10 @@ body, html { display: none; } +#popup.chromecast #settings-popup { + display: none; +} + #popup.playlist #playlist-popup { display: block; } @@ -85,6 +90,22 @@ body, html { display: none; } +#popup.playlist #settings-popup { + display: none; +} + +#popup.settings #settings-popup { + display: block; +} + +#popup.settings #chromecast-popup { + display: none; +} + +#popup.settings #playlist-popup { + display: none; +} + #playlist-entries, #chromecast-entries { position: absolute; top: 46px; @@ -103,6 +124,15 @@ body, html { white-space: nowrap; } +/*.brightness { + color: #fff; + font-size: 13px; + padding: 10px 15px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +}*/ + @-webkit-keyframes spin { to { -webkit-transform: rotate(360deg); } } @@ -277,10 +307,11 @@ body:hover #overlay, body:hover .titlebar { #controls-play span:hover .mega-octicon, #player-downloadspeed span:hover .mega-octicon, #controls-fullscreen span:hover .mega-octicon, #controls-playlist span:hover .mega-octicon, -#controls-chromecast span:hover .mega-octicon { +#controls-chromecast span:hover .mega-octicon, #controls-settings span:hover .mega-octicon { color: #31A357; } + #controls-chromecast .chromecast { background-image: url('chromecast.png'); background-size: 26px 72px; @@ -368,3 +399,45 @@ body:hover #overlay, body:hover .titlebar { float: left; margin-left: 20px; } + + +#controls-settings { + float: right; + margin-right: 10px; + margin-top: 10px !important; +} + +.brightness { + margin-top: 20px; + margin-left: 10px; + +} + +#controls-brightness-slider { + -webkit-appearance: none; + background: #727374; + width: 50px; + height: 4px; + border-radius: 0px; + float: right; + margin-top: 12px; + margin-left: 5px; +} + +#controls-brightness-slider::-webkit-slider-thumb { + -webkit-appearance: none; + background-color: #31A357; + opacity: 1.0; + width: 9px; + height: 9px; + border-radius: 4.5px; +} + +#controls-brightness-slider:focus { + outline: none; +} + +#settings-popup span label { + font-size: 15px; +} + diff --git a/index.html b/index.html index 7cab713..6416eb0 100644 --- a/index.html +++ b/index.html @@ -21,6 +21,14 @@
Chromecasts
+
+
Settings
+ + + +
@@ -42,6 +50,9 @@ ‒‒:‒‒
+
+ +
diff --git a/index.js b/index.js index c359540..0a02489 100644 --- a/index.js +++ b/index.js @@ -28,6 +28,27 @@ var argv = minimist(JSON.parse(window.location.toString().split('#')[1]), { boolean: ['follow'] }) + +var FILTER_VALS = {}; +var el = document.querySelector('video'); + +var set = function (filter, value) { + FILTER_VALS[filter] = typeof value == 'number' ? Math.round(value * 10) / 10 : value; + if (value == 0 || (typeof value == 'string' && value.indexOf('0') == 0)) { + delete FILTER_VALS[filter]; + } + render(); +} + +var render = function () { + var vals = []; + Object.keys(FILTER_VALS).sort().forEach(function(key, i) { + vals.push(key + '(' + FILTER_VALS[key] + ')'); + }); + var val = vals.join(' '); + el.style.webkitFilter = val; +} + var printError = function (err) { if (err) console.log(err) } @@ -190,6 +211,7 @@ $('#controls-timeline').on('mouseout', function (e) { }) var isVolumeSliderClicked = false +var isBrightnessSliderClicked = false function updateAudioVolume(value) { media.volume(value) @@ -219,6 +241,28 @@ $('#controls-volume-slider').on('mouseup', function (e) { isVolumeSliderClicked = false }) +function updateBrightnessSlider(brightness) { + var val = brightness.value * 10; + brightness.style.background = '-webkit-gradient(linear, left top, right top, color-stop(' + val.toString() + '%, #31A357), color-stop(' + val.toString() + '%, #727374))' +} + +$('#controls-brightness-slider').on('mousemove', function (e) { + if (isBrightnessSliderClicked) { + var brightness = $('#controls-brightness-slider')[0] + updateBrightnessSlider(brightness) + } +}) + +$('#controls-brightness-slider').on('mousedown', function (e) { + isBrightnessSliderClicked = true +}) + +$('#controls-brightness-slider').on('mouseup', function (e) { + var brightness = $('#controls-brightness-slider')[0] + updateBrightnessSlider(brightness) + isBrightnessSliderClicked = false +}) + $(document).on('keydown', function (e) { if (e.keyCode === 27 && isFullscreen) return onfullscreentoggle(e) if (e.keyCode === 13 && e.metaKey) return onfullscreentoggle(e) @@ -227,6 +271,7 @@ $(document).on('keydown', function (e) { if ($('#controls-playlist').hasClass('selected')) $('#controls-playlist').trigger('click') if ($('#controls-chromecast').hasClass('selected')) $('#controls-chromecast').trigger('click') + if ($('#controls-settings').hasClass('selected')) $('#controls-settings').trigger('click') }) mouseidle($('#idle')[0], 3000, 'hide-cursor') @@ -285,14 +330,15 @@ list.once('update', function () { }) var popupSelected = function () { - return $('#controls-playlist').hasClass('selected') || $('#controls-chromecast').hasClass('selected') + return $('#controls-playlist').hasClass('selected') || $('#controls-chromecast').hasClass('selected') || $('#controls-settings').hasClass('selected') } var closePopup = function (e) { - if (e && (e.target === $('#controls-playlist .mega-octicon')[0] || e.target === $('#controls-chromecast .chromecast')[0])) return + if (e && (e.target === $('#controls-playlist .mega-octicon')[0] || e.target === $('#controls-chromecast .chromecast')[0] || e.target === $('#controls-settings .mega-octicon')[0])) return $('#popup')[0].style.opacity = 0 $('#controls-playlist').removeClass('selected') $('#controls-chromecast').removeClass('selected') + $('#controls-settings').removeClass('selected') } $('#controls').on('click', closePopup) @@ -327,6 +373,19 @@ var updatePopup = function () { } } +$('#controls-settings').on('click', function (e) { + if ($('#controls-settings').hasClass('selected')) { + closePopup() + return + } + + $('#popup')[0].className = 'settings' + $('#controls .controls-main .selected').removeClass('selected') + $('#controls-settings').addClass('selected') + chromecasts.update() + updatePopup() +}) + $('#controls-chromecast').on('click', function (e) { if ($('#controls-chromecast').hasClass('selected')) { closePopup()