mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 20:32:00 -08:00
Add ability to crossfade between songs in 'mpc'
* lisp/mpc.el (mpc-cmd-crossfade): (mpc-toggle-crossfade): New function. (mpc-crossfade-time): New option. (mpc-mode-menu): Add menu item to toggle crossfade. (Bug#73891)
This commit is contained in:
parent
de0800c511
commit
08f3bc1b8e
2 changed files with 23 additions and 0 deletions
5
etc/NEWS
5
etc/NEWS
|
|
@ -582,6 +582,11 @@ a desktop notification when the song changes, using
|
|||
customized using the new user options 'mpc-notifications-title' and
|
||||
'mpc-notifications-body'.
|
||||
|
||||
*** New user option 'mpc-crossfade-time'.
|
||||
When non-nil, MPC will crossfade between songs for the specified number
|
||||
of seconds. Crossfading can be toggled using the command
|
||||
'mpc-toggle-crossfade' or from the MPC menu.
|
||||
|
||||
|
||||
* New Modes and Packages in Emacs 31.1
|
||||
|
||||
|
|
|
|||
18
lisp/mpc.el
18
lisp/mpc.el
|
|
@ -883,6 +883,11 @@ If PLAYLIST is t or nil or missing, use the main playlist."
|
|||
(defun mpc-cmd-tagtypes ()
|
||||
(mapcar #'cdr (mpc-proc-cmd-to-alist "tagtypes")))
|
||||
|
||||
(defun mpc-cmd-crossfade (&optional arg)
|
||||
"Set duration of crossfade to `mpc-crossfade-time' or ARG seconds."
|
||||
(mpc-proc-cmd (list "crossfade" (or arg mpc-crossfade-time))
|
||||
#'mpc-status-refresh))
|
||||
|
||||
;; This was never integrated into MPD.
|
||||
;; (defun mpc-cmd-download (file)
|
||||
;; (with-current-buffer (generate-new-buffer " *mpc download*")
|
||||
|
|
@ -918,6 +923,11 @@ If PLAYLIST is t or nil or missing, use the main playlist."
|
|||
"Directory where MPC.el stores auxiliary data."
|
||||
:type 'directory)
|
||||
|
||||
(defcustom mpc-crossfade-time 3
|
||||
"Number of seconds to crossfade between songs."
|
||||
:version "31.1"
|
||||
:type 'natnum)
|
||||
|
||||
(defun mpc-data-directory ()
|
||||
(unless (file-directory-p mpc-data-directory)
|
||||
(make-directory mpc-data-directory))
|
||||
|
|
@ -1188,6 +1198,8 @@ string POST."
|
|||
:selected (member '(single . "1") mpc-status)]
|
||||
["Consume Mode" mpc-toggle-consume :style toggle
|
||||
:selected (member '(consume . "1") mpc-status)]
|
||||
["Crossfade Songs" mpc-toggle-crossfade :style toggle
|
||||
:selected (alist-get 'xfade mpc-status)]
|
||||
"--"
|
||||
["Add new browser" mpc-tagbrowser]
|
||||
["Update DB" mpc-update]
|
||||
|
|
@ -2428,6 +2440,12 @@ This is used so that they can be compared with `eq', which is needed for
|
|||
(mpc-cmd-random
|
||||
(if (string= "0" (cdr (assq 'random (mpc-cmd-status)))) "1" "0")))
|
||||
|
||||
(defun mpc-toggle-crossfade ()
|
||||
"Toggle crossfading between songs."
|
||||
(interactive)
|
||||
(mpc-cmd-crossfade
|
||||
(if (alist-get 'xfade mpc-status) "0" mpc-crossfade-time)))
|
||||
|
||||
(defun mpc-stop ()
|
||||
"Stop playing the current queue of songs."
|
||||
(interactive)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue