aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/emms-playlist-sort.el15
1 files changed, 15 insertions, 0 deletions
diff --git a/lisp/emms-playlist-sort.el b/lisp/emms-playlist-sort.el
index 0c3b466..d9fc519 100644
--- a/lisp/emms-playlist-sort.el
+++ b/lisp/emms-playlist-sort.el
@@ -118,6 +118,20 @@ With a prefix argument, decreasingly."
(file-name-extension (emms-track-get a 'name))
(file-name-extension (emms-track-get b 'name))))))
+(defun emms-playlist-sort-by-file-mtime ()
+ "Sort emms playlist by file mtime, newest first.
+With a prefix argument, oldest first."
+ (interactive)
+ (emms-playlist-sort
+ '(lambda (a b)
+ (funcall
+ (if current-prefix-arg
+ 'time-less-p
+ (lambda (t1 t2) (not (time-less-p t1 t2))))
+ (emms-info-track-file-mtime a)
+ (emms-info-track-file-mtime b)))))
+
+
(defvar emms-playlist-sort-map nil)
(defun emms-playlist-sort-map-setup ()
@@ -138,6 +152,7 @@ With a prefix argument, decreasingly."
(define-key map (kbd "C") 'emms-playlist-sort-by-info-composer)
(define-key map (kbd "L") 'emms-playlist-sort-by-list)
(define-key map (kbd "N") 'emms-playlist-sort-by-name)
+ (define-key map (kbd "T") 'emms-playlist-sort-by-file-mtime)
map))
(define-key emms-playlist-mode-map