mirror of
https://github.com/heyarne/airsonic-ui.git
synced 2026-05-06 18:33:38 +02:00
Add volume control keyboard shortcuts
This commit is contained in:
parent
6e1664327f
commit
49631ff7d7
3 changed files with 36 additions and 5 deletions
|
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
(defn attach-listeners! [el]
|
(defn attach-listeners! [el]
|
||||||
(let [emit-audio-update (throttle #(rf/dispatch [:audio/update (->status el)]) 16)]
|
(let [emit-audio-update (throttle #(rf/dispatch [:audio/update (->status el)]) 16)]
|
||||||
(doseq [event ["loadstart" "progress" "play" "timeupdate" "pause"]]
|
(doseq [event ["loadstart" "progress" "play" "timeupdate" "pause" "volumechange"]]
|
||||||
(.addEventListener el event emit-audio-update))))
|
(.addEventListener el event emit-audio-update))))
|
||||||
|
|
||||||
;; effects to be fired from event handlers
|
;; effects to be fired from event handlers
|
||||||
|
|
@ -72,10 +72,26 @@
|
||||||
(set! (. @audio -currentTime)
|
(set! (. @audio -currentTime)
|
||||||
(* percentage duration))))
|
(* percentage duration))))
|
||||||
|
|
||||||
|
(defn- set-volume! [volume]
|
||||||
|
(set! (.-volume @audio) volume))
|
||||||
|
|
||||||
(rf/reg-fx
|
(rf/reg-fx
|
||||||
:audio/set-volume
|
:audio/set-volume
|
||||||
(fn [percentage]
|
(fn [percentage]
|
||||||
(set! (. @audio -volume) percentage)))
|
(when @audio
|
||||||
|
(set-volume! percentage))))
|
||||||
|
|
||||||
|
(rf/reg-fx
|
||||||
|
:audio/increase-volume
|
||||||
|
(fn [_]
|
||||||
|
(when-let [vol (some-> @audio .-volume)]
|
||||||
|
(set-volume! (min 1 (+ vol 0.05))))))
|
||||||
|
|
||||||
|
(rf/reg-fx
|
||||||
|
:audio/decrease-volume
|
||||||
|
(fn [_]
|
||||||
|
(when-let [vol (some-> @audio .-volume)]
|
||||||
|
(set-volume! (max 0 (- vol 0.05))))))
|
||||||
|
|
||||||
;; subscriptions
|
;; subscriptions
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,15 @@
|
||||||
|
|
||||||
(rf/reg-event-fx
|
(rf/reg-event-fx
|
||||||
:audio-player/set-volume
|
:audio-player/set-volume
|
||||||
(fn [{:keys [db]} [_ percentage]]
|
(fn [_ [_ percentage]]
|
||||||
{:db (assoc-in db [:audio :playback-status :volume] percentage)
|
{:audio/set-volume percentage}))
|
||||||
:audio/set-volume percentage}))
|
|
||||||
|
(rf/reg-event-fx
|
||||||
|
:audio-player/increase-volume
|
||||||
|
(fn [_ _]
|
||||||
|
{:audio/increase-volume nil}))
|
||||||
|
|
||||||
|
(rf/reg-event-fx
|
||||||
|
:audio-player/decrease-volume
|
||||||
|
(fn [_ _]
|
||||||
|
{:audio/decrease-volume nil}))
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,12 @@
|
||||||
["→" "Next song"
|
["→" "Next song"
|
||||||
[:audio-player/next-song]
|
[:audio-player/next-song]
|
||||||
[{:keyCode 39}]]
|
[{:keyCode 39}]]
|
||||||
|
["+" "Increase volume"
|
||||||
|
[:audio-player/increase-volume]
|
||||||
|
[{:keyCode 171}]]
|
||||||
|
["-" "Decrease volume"
|
||||||
|
[:audio-player/decrease-volume]
|
||||||
|
[{:keyCode 173}]]
|
||||||
["?" "Show / hide keyboard shortcut help"
|
["?" "Show / hide keyboard shortcut help"
|
||||||
[:bulma.modal.events/toggle :keyboard-shortcuts-help]
|
[:bulma.modal.events/toggle :keyboard-shortcuts-help]
|
||||||
[{:keyCode 63}]]])
|
[{:keyCode 63}]]])
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue