From 3eefe937d947d74c55bfa209c77395a400422792 Mon Sep 17 00:00:00 2001 From: Greg Lorenzen Date: Sat, 25 Jan 2025 01:57:41 +0000 Subject: [PATCH 1/5] Add user setting value for playbackRateIncrementDecrement --- client/store/user.js | 1 + 1 file changed, 1 insertion(+) diff --git a/client/store/user.js b/client/store/user.js index 0e4cc0cc..d5aad19b 100644 --- a/client/store/user.js +++ b/client/store/user.js @@ -5,6 +5,7 @@ export const state = () => ({ orderDesc: false, filterBy: 'all', playbackRate: 1, + playbackRateIncrementDecrement: 0.1, bookshelfCoverSize: 120, collapseSeries: false, collapseBookSeries: false, From 7c4bcfb4f965f88e862c7c8d0da15c1f3b44f439 Mon Sep 17 00:00:00 2001 From: Greg Lorenzen Date: Sat, 25 Jan 2025 01:58:13 +0000 Subject: [PATCH 2/5] Add dropdown to player settings modal to set the playbackRateIncrementDecrement amount --- client/components/modals/PlayerSettingsModal.vue | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/client/components/modals/PlayerSettingsModal.vue b/client/components/modals/PlayerSettingsModal.vue index 88cb91e1..dfac28cf 100644 --- a/client/components/modals/PlayerSettingsModal.vue +++ b/client/components/modals/PlayerSettingsModal.vue @@ -11,9 +11,12 @@
-
+
+
+ +
@@ -35,7 +38,9 @@ export default { { text: this.$getString('LabelTimeDurationXMinutes', ['5']), value: 300 } ], jumpForwardAmount: 10, - jumpBackwardAmount: 10 + jumpBackwardAmount: 10, + playbackRateIncrementDecrementValues: [0.1, 0.05], + playbackRateIncrementDecrement: 0.1 } }, computed: { @@ -60,10 +65,15 @@ export default { this.jumpBackwardAmount = val this.$store.dispatch('user/updateUserSettings', { jumpBackwardAmount: val }) }, + setPlaybackRateIncrementDecrementAmount(val) { + this.playbackRateIncrementDecrement = val + this.$store.dispatch('user/updateUserSettings', { playbackRateIncrementDecrement: val }) + }, settingsUpdated() { this.useChapterTrack = this.$store.getters['user/getUserSetting']('useChapterTrack') this.jumpForwardAmount = this.$store.getters['user/getUserSetting']('jumpForwardAmount') this.jumpBackwardAmount = this.$store.getters['user/getUserSetting']('jumpBackwardAmount') + this.playbackRateIncrementDecrement = this.$store.getters['user/getUserSetting']('playbackRateIncrementDecrement') } }, mounted() { From 1ea1e60d4bcb088279eb5a2e762d1ca804605c13 Mon Sep 17 00:00:00 2001 From: Greg Lorenzen Date: Sat, 25 Jan 2025 01:58:48 +0000 Subject: [PATCH 3/5] Add string for LabelPlaybackRateIncrementDecrement --- client/strings/en-us.json | 1 + 1 file changed, 1 insertion(+) diff --git a/client/strings/en-us.json b/client/strings/en-us.json index b4ac1389..01d94ac6 100644 --- a/client/strings/en-us.json +++ b/client/strings/en-us.json @@ -485,6 +485,7 @@ "LabelPermissionsUpload": "Can Upload", "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Photo Path/URL", + "LabelPlaybackRateIncrementDecrement": "Playback Rate Increment/Decrement Amount", "LabelPlayMethod": "Play Method", "LabelPlayerChapterNumberMarker": "{0} of {1}", "LabelPlaylists": "Playlists", From f258782e2e00fc8c68a901bb93d0ffab37f3c7eb Mon Sep 17 00:00:00 2001 From: Greg Lorenzen Date: Sat, 25 Jan 2025 01:59:24 +0000 Subject: [PATCH 4/5] Handle playback rate increment and decrmenet value in UI --- .../controls/PlaybackSpeedControl.vue | 20 +++++++++++-------- client/components/player/PlayerUi.vue | 9 ++++++--- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/client/components/controls/PlaybackSpeedControl.vue b/client/components/controls/PlaybackSpeedControl.vue index 9e9f0d54..2c910547 100644 --- a/client/components/controls/PlaybackSpeedControl.vue +++ b/client/components/controls/PlaybackSpeedControl.vue @@ -33,6 +33,10 @@ export default { value: { type: [String, Number], default: 1 + }, + playbackRateIncrementDecrement: { + type: Number, + default: 0.1 } }, data() { @@ -58,10 +62,10 @@ export default { return [0.5, 1, 1.2, 1.5, 2] }, canIncrement() { - return this.playbackRate + 0.1 <= this.MAX_SPEED + return this.playbackRate + this.playbackRateIncrementDecrement <= this.MAX_SPEED }, canDecrement() { - return this.playbackRate - 0.1 >= this.MIN_SPEED + return this.playbackRate - this.playbackRateIncrementDecrement >= this.MIN_SPEED } }, methods: { @@ -73,14 +77,14 @@ export default { this.$nextTick(() => this.setShowMenu(false)) }, increment() { - if (this.playbackRate + 0.1 > this.MAX_SPEED) return - var newPlaybackRate = this.playbackRate + 0.1 - this.playbackRate = Number(newPlaybackRate.toFixed(1)) + if (this.playbackRate + this.playbackRateIncrementDecrement > this.MAX_SPEED) return + var newPlaybackRate = this.playbackRate + this.playbackRateIncrementDecrement + this.playbackRate = Number(newPlaybackRate.toFixed(2)) }, decrement() { - if (this.playbackRate - 0.1 < this.MIN_SPEED) return - var newPlaybackRate = this.playbackRate - 0.1 - this.playbackRate = Number(newPlaybackRate.toFixed(1)) + if (this.playbackRate - this.playbackRateIncrementDecrement < this.MIN_SPEED) return + var newPlaybackRate = this.playbackRate - this.playbackRateIncrementDecrement + this.playbackRate = Number(newPlaybackRate.toFixed(2)) }, updateMenuPositions() { if (!this.$refs.wrapper) return diff --git a/client/components/player/PlayerUi.vue b/client/components/player/PlayerUi.vue index 31267c7a..f4ad59d1 100644 --- a/client/components/player/PlayerUi.vue +++ b/client/components/player/PlayerUi.vue @@ -2,7 +2,7 @@
- +