branch: elpa/mpv commit a5c6eed9acf2faf31e56b3ebe86b1b0405636d45 Author: c1-g <char1iegor...@protonmail.com> Commit: Johann Klähn <joh...@jklaehn.de>
Add volume control commands --- README.md | 1 + mpv.el | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/README.md b/README.md index e9f581df94..cecebce604 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ Among others, mpv.el provides - `mpv-kill` - `mpv-seek-forward` / `mpv-seek-backward` - `mpv-speed-increase` / `mpv-speed-decrease` +- `mpv-volume-increase` / `mpv-speed-volume` - `mpv-insert-playback-position` - `mpv-seek-to-position-at-point` diff --git a/mpv.el b/mpv.el index 5348c92c83..d99d9ff206 100644 --- a/mpv.el +++ b/mpv.el @@ -63,6 +63,11 @@ :type 'number :group 'mpv) +(defcustom mpv-volume-step 1.50 + "Scale factor used when adjusting volume." + :type 'number + :group 'mpv) + (defcustom mpv-seek-step 5 "Step size in seconds used when seeking." :type 'number @@ -323,6 +328,28 @@ This can be used with the `org-open-at-point-functions' hook." (interactive "p") (mpv-speed-increase (- steps))) +;;;###autoload +(defun mpv-volume-set (factor) + "Set playback volume to FACTOR." + (interactive "nFactor: ") + (mpv--enqueue `("set" "volume" ,(abs factor)) #'ignore)) + +;;;###autoload +(defun mpv-volume-increase (steps) + "Increase playback volume by STEPS factors of `mpv-volume-step'." + (interactive "p") + (let ((factor (* (abs steps) + (if (> steps 0) + mpv-volume-step + (/ 1 mpv-volume-step))))) + (mpv--enqueue `("multiply" "volume" ,factor) #'ignore))) + +;;;###autoload +(defun mpv-volume-decrease (steps) + "Decrease playback volume by STEPS factors of `mpv-volume-step'." + (interactive "p") + (mpv-volume-increase (- steps))) + (defun mpv--raw-prefix-to-seconds (arg) "Convert raw prefix argument ARG to seconds using `mpv-seek-step'. Numeric arguments will be treated as seconds, repeated use