From 1434849142bb3834f47d83c5e8c79cacfc764743 Mon Sep 17 00:00:00 2001 From: Araxeus <78568641+Araxeus@users.noreply.github.com> Date: Sat, 30 Oct 2021 15:38:40 +0300 Subject: [PATCH] simplify playback rate steps --- plugins/playback-speed/front.js | 25 +++++++------------- plugins/playback-speed/templates/slider.html | 18 +++++++------- 2 files changed, 17 insertions(+), 26 deletions(-) diff --git a/plugins/playback-speed/front.js b/plugins/playback-speed/front.js index f88cd7d6..d56c31df 100644 --- a/plugins/playback-speed/front.js +++ b/plugins/playback-speed/front.js @@ -7,23 +7,11 @@ const slider = ElementFromFile(templatePath(__dirname, "slider.html")); const roundToTwo = (n) => Math.round( n * 1e2 ) / 1e2; -const MIN_PLAYBACK_SPEED = 0.25; -const MAX_PLAYBACK_SPEED = 2; +const MIN_PLAYBACK_SPEED = 0.07; let playbackSpeed = 1; -const computePlayBackSpeed = (playbackSpeedPercentage) => { - if (playbackSpeedPercentage <= 50) { // = Playback speed <= 1 - // Slow down video by setting a playback speed between MIN_PLAYBACK_SPEED and 1 - return ( - MIN_PLAYBACK_SPEED + - ((1 - MIN_PLAYBACK_SPEED) / 50) * playbackSpeedPercentage - ).toFixed(2); - } - - // Accelerate video by setting a playback speed between 1 and MAX_PLAYBACK_SPEED - return roundToTwo(1 + ((MAX_PLAYBACK_SPEED - 1) / 50) * (playbackSpeedPercentage - 50)); -}; +const computePlayBackSpeed = (playbackSpeedPercentage) => playbackSpeedPercentage || MIN_PLAYBACK_SPEED; const updatePlayBackSpeed = () => { $('video').playbackRate = playbackSpeed; @@ -67,15 +55,18 @@ const setupSliderListeners = () => { updatePlayBackSpeed(); }) slider.addEventListener('wheel', e => { - if (playbackSpeed <= 0.07) return; // lowest possible speed e.preventDefault(); if (isNaN(playbackSpeed)) { playbackSpeed = 1; } // e.deltaY < 0 means wheel-up - playbackSpeed = roundToTwo(e.deltaY < 0 ? playbackSpeed + 0.01 : playbackSpeed - 0.01); + playbackSpeed = roundToTwo(e.deltaY < 0 ? + playbackSpeed + 0.01 : + Math.max(playbackSpeed - 0.01, MIN_PLAYBACK_SPEED)); + updatePlayBackSpeed(); - $('#playback-speed-slider').value = playbackSpeed * 50; + // update slider position + $('#playback-speed-slider').value = playbackSpeed; }) } diff --git a/plugins/playback-speed/templates/slider.html b/plugins/playback-speed/templates/slider.html index d12e00e9..ebd98537 100644 --- a/plugins/playback-speed/templates/slider.html +++ b/plugins/playback-speed/templates/slider.html @@ -14,19 +14,19 @@ id="playback-speed-slider" class="volume-slider style-scope ytmusic-player-bar on-hover" style="display: inherit !important" - max="100" + max="2" min="0" - step="5" + step="0.125" dir="ltr" title="Playback speed" aria-label="Playback speed" role="slider" tabindex="0" aria-valuemin="0" - aria-valuemax="100" - aria-valuenow="50" + aria-valuemax="2" + aria-valuenow="1" aria-disabled="false" - value="50" + value="1" >