Function: mpc-volume-mouse-set

mpc-volume-mouse-set is an interactive and byte-compiled function defined in mpc.el.gz.

Signature

(mpc-volume-mouse-set &optional EVENT)

Documentation

Change volume setting.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/mpc.el.gz
(defun mpc-volume-mouse-set (&optional event)
  "Change volume setting."
  (interactive (list last-nonmenu-event))
  (let* ((posn (event-start event))
         (diff
          (if (memq (if (stringp (car-safe (posn-object posn)))
                        (aref (car (posn-object posn)) (cdr (posn-object posn)))
                      (with-current-buffer (window-buffer (posn-window posn))
                        (char-after (posn-point posn))))
                    '(?◁ ?<))
              (- mpc-volume-step) mpc-volume-step))
         (curvol (string-to-number (cdr (assq 'volume mpc-status))))
         (newvol (max 0 (min 100 (+ (- curvol (mod curvol diff)) diff)))))
    (if (= newvol curvol)
        (progn
          (message "MPD volume already at %s%%" newvol)
          (ding))
      (mpc-proc-cmd (list "setvol" newvol) #'mpc-status-refresh)
      (message "Set MPD volume to %s%%" newvol))))