;ELC ;;; Compiled by heimdall@baldur.tsdh.de on Thu May 15 09:56:14 2008 ;;; from file /home/heimdall/repos/emms/emms-playlist-sort.el ;;; in Emacs version 23.0.60.2 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. (if (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`emms-playlist-sort.el' was compiled for Emacs 19.29 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\303\304\305\306\307\310\311\312&\207" [require emms-last-played emms-playlist-mode custom-declare-group emms-playlist-sort nil "Sorting Emacs Multimedia System playlists." :prefix "emms-playlist-sort-" :group emms] 8) #@214 Sorting list used by `emms-playlist-sort-by-list'. Currently it understands the following fields: name info-artist imfo-composer info-performer info-title info-album info-genre info-playing-time info-tracknumber. (custom-declare-variable 'emms-playlist-sort-list ''(info-artist info-album) '(#$ . 866) :type 'symbol :group 'emms-playlist-sort) #@117 Prefix key sequence for `emms-playlist-sort-map'. Remember to call `emms-playlist-sort-map-setup' if you modify it. (custom-declare-variable 'emms-playlist-sort-prefix '"S" '(#$ . 1217) :type 'string :group 'emms-playlist-sort) #@62 Macro for defining emms playlist sort functions on strings . (defalias 'define-emms-playlist-sort '(macro . #[(attribute) "\301\302\303\304\"!\305\303\306\"\307\310\311\312\313\314\315\316\317\320DE\316\321\320DEE\322\316\317\320DE\316\321\320DEEFED\257\207" [attribute defun intern format "emms-playlist-sort-by-%s" nil "Sort emms playlist by %s, increasingly.\nWith a prefix argument, decreasingly." (interactive) emms-playlist-sort lambda (a b) if current-prefix-arg emms-string> emms-track-get a quote b emms-string<] 17 (#$ . 1451)])) #@81 Sort emms playlist by name, increasingly. With a prefix argument, decreasingly. (defalias 'emms-playlist-sort-by-name #[nil "\300\301!\207" [emms-playlist-sort #[(a b) "\203\303\304 \305\"\304\n\305\"\"\207\306\304 \305\"\304\n\305\"\"\207" [current-prefix-arg a b emms-string> emms-track-get name emms-string<] 5]] 2 (#$ . 2004) nil]) #@88 Sort emms playlist by info-artist, increasingly. With a prefix argument, decreasingly. (defalias 'emms-playlist-sort-by-info-artist #[nil "\300\301!\207" [emms-playlist-sort #[(a b) "\203\303\304 \305\"\304\n\305\"\"\207\306\304 \305\"\304\n\305\"\"\207" [current-prefix-arg a b emms-string> emms-track-get info-artist emms-string<] 5]] 2 (#$ . 2349) nil]) #@90 Sort emms playlist by info-composer, increasingly. With a prefix argument, decreasingly. (defalias 'emms-playlist-sort-by-info-composer #[nil "\300\301!\207" [emms-playlist-sort #[(a b) "\203\303\304 \305\"\304\n\305\"\"\207\306\304 \305\"\304\n\305\"\"\207" [current-prefix-arg a b emms-string> emms-track-get info-composer emms-string<] 5]] 2 (#$ . 2715) nil]) #@91 Sort emms playlist by info-performer, increasingly. With a prefix argument, decreasingly. (defalias 'emms-playlist-sort-by-info-performer #[nil "\300\301!\207" [emms-playlist-sort #[(a b) "\203\303\304 \305\"\304\n\305\"\"\207\306\304 \305\"\304\n\305\"\"\207" [current-prefix-arg a b emms-string> emms-track-get info-performer emms-string<] 5]] 2 (#$ . 3087) nil]) #@87 Sort emms playlist by info-title, increasingly. With a prefix argument, decreasingly. (defalias 'emms-playlist-sort-by-info-title #[nil "\300\301!\207" [emms-playlist-sort #[(a b) "\203\303\304 \305\"\304\n\305\"\"\207\306\304 \305\"\304\n\305\"\"\207" [current-prefix-arg a b emms-string> emms-track-get info-title emms-string<] 5]] 2 (#$ . 3462) nil]) #@87 Sort emms playlist by info-album, increasingly. With a prefix argument, decreasingly. (defalias 'emms-playlist-sort-by-info-album #[nil "\300\301!\207" [emms-playlist-sort #[(a b) "\203\303\304 \305\"\304\n\305\"\"\207\306\304 \305\"\304\n\305\"\"\207" [current-prefix-arg a b emms-string> emms-track-get info-album emms-string<] 5]] 2 (#$ . 3825) nil]) #@86 Sort emms playlist by info-year, increasingly. With a prefix argument, decreasingly. (defalias 'emms-playlist-sort-by-info-year #[nil "\300\301!\207" [emms-playlist-sort #[(a b) "\203\303\304 \305\"\304\n\305\"\"\207\306\304 \305\"\304\n\305\"\"\207" [current-prefix-arg a b emms-string> emms-track-get info-year emms-string<] 5]] 2 (#$ . 4188) nil]) #@86 Sort emms playlist by info-note, increasingly. With a prefix argument, decreasingly. (defalias 'emms-playlist-sort-by-info-note #[nil "\300\301!\207" [emms-playlist-sort #[(a b) "\203\303\304 \305\"\304\n\305\"\"\207\306\304 \305\"\304\n\305\"\"\207" [current-prefix-arg a b emms-string> emms-track-get info-note emms-string<] 5]] 2 (#$ . 4548) nil]) #@76 Sort emms playlist by natural order. See `emms-sort-natural-order-less-p'. (defalias 'emms-playlist-sort-by-natural-order #[nil "\300\301!\207" [emms-playlist-sort emms-sort-natural-order-less-p] 2 (#$ . 4908) nil]) #@120 Sort emms playlist by `emms-playlist-sort-list'. The sort will be carried out until comparsion succeeds, increasingly. (defalias 'emms-playlist-sort-by-list #[nil "\300\301!\207" [emms-playlist-sort emms-playlist-sort-by-list-p] 2 (#$ . 5131) nil]) #@93 Sort emms playlist by last played time, increasingly. With a prefix argument, decreasingly. (defalias 'emms-playlist-sort-by-last-played #[nil "\300\301!\207" [emms-playlist-sort (lambda (a b) (let ((ret (time-less-p (or (emms-track-get a 'last-played) '(0 0 0)) (or (emms-track-get b 'last-played) '(0 0 0))))) (if current-prefix-arg (not ret) ret)))] 2 (#$ . 5386) nil]) #@87 Sort emms playlist by play-count, increasingly. With a prefix argument, decreasingly. (defalias 'emms-playlist-sort-by-play-count #[nil "\300\301!\207" [emms-playlist-sort (lambda (a b) (let ((ret (< (or (emms-track-get a 'play-count) 0) (or (emms-track-get b 'play-count) 0)))) (if current-prefix-arg (not ret) ret)))] 2 (#$ . 5765) nil]) (byte-code "\301B\302\301!\204\303\301\304\"\210\304\207" [current-load-list emms-playlist-sort-map default-boundp set-default nil] 3) #@57 Setup sort map with latest `emms-playlist-sort-prefix'. (defalias 'emms-playlist-sort-map-setup #[nil "\304 \305\306\307#\210\305\310\311#\210\305\312\313#\210\305\314\315#\210\305\316\317#\210\305\320\321#\210\305\322\323#\210\305\324\325#\210\305\326\327#\210\305\330\331#\210\305\332\333#\210\305\334\335#\210)\305\n #\207" [map emms-playlist-sort-map emms-playlist-mode-map emms-playlist-sort-prefix make-sparse-keymap define-key "n" emms-playlist-sort-by-natural-order "a" emms-playlist-sort-by-info-artist "c" emms-playlist-sort-by-play-count "b" emms-playlist-sort-by-info-album "l" emms-playlist-sort-by-last-played "t" emms-playlist-sort-by-info-title "p" emms-playlist-sort-by-info-performer "y" emms-playlist-sort-by-info-year "o" emms-playlist-sort-by-info-note "C" emms-playlist-sort-by-info-composer "L" emms-playlist-sort-by-list "N" emms-playlist-sort-by-name] 4 (#$ . 6250)]) (byte-code "\301 \301\207" [emms-playlist-sort-map emms-playlist-sort-map-setup] 1) #@40 Sort the playlist buffer by PREDICATE. (defalias 'emms-playlist-sort #[(predicate) "\203\n\306!\204 \307 \210 \206prq\210\310\311 \210\312 \313ed\"\237ed|\210\314\315!\210\316\317\320 \"\"\210\321ed\322\f$\211\203I\323!\210\202L\324 \210eb.\207" [emms-playlist-buffer emms-source-old-buffer inhibit-read-only tracks current predicate buffer-live-p emms-playlist-current-clear t emms-playlist-ensure-playlist-buffer emms-playlist-selected-track emms-playlist-tracks-in-region run-hooks emms-playlist-cleared-hook mapc emms-playlist-insert-track sort text-property-any emms-track emms-playlist-select emms-playlist-first pos] 6 (#$ . 7250)]) #@142 Sort two tracks by natural order. This is the order in which albums where intended to be played. ie. by album name and then by track number. (defalias 'emms-sort-natural-order-less-p #[(a b) "\304\305\"\304 \305\"\306 \n\"\2064 \2054\n\2054 \n\230\2054\307\304\310\"\206(\311!\307\304 \310\"\2062\311!W*\207" [a b album-b album-a emms-track-get info-album emms-string< string-to-number info-tracknumber "0"] 5 (#$ . 7916)]) (defalias 'emms-playlist-sort-by-list-p #[(a b) "\300\301\215\207" [return (byte-code "\305\211\203m\n@\306 \307\"\203'\310\311 \"\311\f \"\"\203f\312\313\314\"\210\202f\306 \315\"\203B\311 \"\311\f \"W\203f\312\313\314\"\210\202f\306 \316\"\203f\317\311 \"\206R\320!\317\311\f \"\206\\\320!W\203f\312\313\314\"\210\nA\211\204*\305\207" [emms-playlist-sort-list info #1=#:--cl-dolist-temp-- a b nil memql (name info-artist info-composer info-performer info-title info-album info-genre) emms-string< emms-track-get throw return t (info-playing-time) (info-tracknumber) string-to-number "0"] 6)] 2]) (defalias 'emms-string< #[(s1 s2) "\206\302\227 \206 \302\227\231\207" [s1 s2 ""] 2]) (defalias 'emms-string> #[(s1 s2) "\206\304\227 \206 \304\227\211\n\230\206 \n\231*?\207" [s1 s2 b a ""] 3]) (provide 'emms-playlist-sort)