1
0
Fork 0
mirror of https://github.com/heyarne/airsonic-ui.git synced 2026-05-07 02:33:39 +02:00

Add volume control keyboard shortcuts

This commit is contained in:
heyarne 2019-02-20 19:11:14 +01:00
commit 49631ff7d7
3 changed files with 36 additions and 5 deletions

View file

@ -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

View file

@ -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}))

View file

@ -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}]]])