Emms: Fix ambrevar/emms-tracks-duration for playlist-mode.
parent
16bcca9973
commit
831af6f20a
|
@ -144,9 +144,13 @@ character."
|
||||||
(defun ambrevar/emms-tracks-duration (begin end)
|
(defun ambrevar/emms-tracks-duration (begin end)
|
||||||
"Display play time of tracks in region."
|
"Display play time of tracks in region."
|
||||||
(interactive "r")
|
(interactive "r")
|
||||||
|
(cl-flet ((track-at-point ()
|
||||||
|
(if (eq major-mode 'emms-playlist-mode)
|
||||||
|
(emms-playlist-track-at)
|
||||||
|
(car (emms-browser-tracks-at-point)))))
|
||||||
(if (not (use-region-p))
|
(if (not (use-region-p))
|
||||||
(message "%s" (emms-browser-track-duration
|
(message "%s" (emms-browser-track-duration
|
||||||
(car (emms-browser-tracks-at-point))))
|
(track-at-point)))
|
||||||
(let* ((total-time)
|
(let* ((total-time)
|
||||||
(first-line (line-number-at-pos begin))
|
(first-line (line-number-at-pos begin))
|
||||||
(last-line (line-number-at-pos end))
|
(last-line (line-number-at-pos end))
|
||||||
|
@ -155,13 +159,13 @@ character."
|
||||||
(save-mark-and-excursion
|
(save-mark-and-excursion
|
||||||
(cl-loop for line from first-line to last-line
|
(cl-loop for line from first-line to last-line
|
||||||
do (goto-line line)
|
do (goto-line line)
|
||||||
for time = (emms-track-get (car (emms-browser-tracks-at-point))
|
for time = (emms-track-get (track-at-point)
|
||||||
'info-playing-time)
|
'info-playing-time)
|
||||||
when time
|
when time
|
||||||
do (cl-incf count)
|
do (cl-incf count)
|
||||||
when time
|
when time
|
||||||
sum time)))
|
sum time)))
|
||||||
(message "%02d:%02d for %d tracks" (/ total-time 60) (% total-time 60)
|
(message "%02d:%02d for %d tracks" (/ total-time 60) (% total-time 60)
|
||||||
count))))
|
count)))))
|
||||||
|
|
||||||
(provide 'init-emms)
|
(provide 'init-emms)
|
||||||
|
|
Loading…
Reference in New Issue