;ELC ;;; Compiled by heimdall@baldur on Fri Feb 1 18:34:55 2008 ;;; from file /home/heimdall/repos/emms/emms-playlist-limit.el ;;; in Emacs version 23.0.60.1 ;;; 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-limit.el' was compiled for Emacs 19.29 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\302\303\304\305\306\307%\207" [require emms-playlist-mode custom-declare-group emms-playlist-limit nil "Playlist limit module for EMMS." :group emms] 6) #@43 Hooks to run after each limit operations. (custom-declare-variable 'emms-playlist-limit-hook 'nil '(#$ . 780) :type 'symbol :group 'emms-playing-limit) #@45 If non-nil, emms playlist limit is enabled. (defvar emms-playlist-limit-enabled-p nil (#$ . 938)) #@64 Turn on emms playlist limit if ARG is positive, off otherwise. (defalias 'emms-playlist-limit #[(arg) "\203\302V\203\303\304\305\306\"\207\307\310\305\306\"\207" [arg emms-playlist-limit-enabled-p 0 t add-hook emms-playlist-source-inserted-hook emms-playlist-limit-insert nil remove-hook] 3 (#$ . 1042) "p"]) #@30 Turn on emms playlist limit. (defalias 'emms-playlist-limit-enable #[nil "\300\301!\210\302\303!\207" [emms-playlist-limit 1 message "emms playlist limit enabled"] 2 (#$ . 1365) nil]) #@31 Turn off emms playlist limit. (defalias 'emms-playlist-limit-disable #[nil "\300\301!\210\302\303!\207" [emms-playlist-limit -1 message "emms playlist limit disabled"] 2 (#$ . 1555) nil]) #@29 Toggle emms playlist limit. (defalias 'emms-playlist-limit-toggle #[nil "\203\301 \207\302 \207" [emms-playlist-limit-enabled-p emms-playlist-limit-disable emms-playlist-limit-enable] 1 (#$ . 1749) nil]) #@51 Macro for defining emms playlist limit functions. (defalias 'define-emms-playlist-limit '(macro . #[(attribute) "\301\302\303\304\"!\305\303\306\"\307\310\311\312\313\314\315\316DE\314\317\316DEED\320\321\322\323\324!#D\325BB\326BBDD\327\330\331\332\314\333\316DEEE\334\316D\335BB\257\207" [attribute defun intern format "emms-playlist-limit-to-%s" (regexp) "Limit to playlists that have %s that matches REGEXP." interactive list let* curr or emms-track-get (emms-playlist-track-at) quote (emms-playlist-selected-track) attr-name emms-replace-regexp-in-string "info-" #1="" symbol-name ((fmt (if curr (format "Limit to %s (regexp = %s): " attr-name curr) (format "Limit to %s (regexp): " attr-name)))) ((read-string fmt)) when (string= regexp #1#) setq regexp (emms-playlist-track-at) emms-playlist-limit-do (regexp)] 14 (#$ . 1962)])) #@63 Limit to playlists that have info-artist that matches REGEXP. (defalias 'emms-playlist-limit-to-info-artist #[(regexp) "\301\230\203\f\302\303 \304\"\305\304\"\207" [regexp "" emms-track-get emms-playlist-track-at info-artist emms-playlist-limit-do] 3 (#$ . 2812) (list (let* ((curr (or (emms-track-get (emms-playlist-track-at) 'info-artist) (emms-track-get (emms-playlist-selected-track) 'info-artist))) (attr-name "artist") (fmt (if curr (format "Limit to %s (regexp = %s): " attr-name curr) (format "Limit to %s (regexp): " attr-name)))) (read-string fmt)))]) #@65 Limit to playlists that have info-composer that matches REGEXP. (defalias 'emms-playlist-limit-to-info-composer #[(regexp) "\301\230\203\f\302\303 \304\"\305\304\"\207" [regexp "" emms-track-get emms-playlist-track-at info-composer emms-playlist-limit-do] 3 (#$ . 3385) (list (let* ((curr (or (emms-track-get (emms-playlist-track-at) 'info-composer) (emms-track-get (emms-playlist-selected-track) 'info-composer))) (attr-name "composer") (fmt (if curr (format "Limit to %s (regexp = %s): " attr-name curr) (format "Limit to %s (regexp): " attr-name)))) (read-string fmt)))]) #@66 Limit to playlists that have info-performer that matches REGEXP. (defalias 'emms-playlist-limit-to-info-performer #[(regexp) "\301\230\203\f\302\303 \304\"\305\304\"\207" [regexp "" emms-track-get emms-playlist-track-at info-performer emms-playlist-limit-do] 3 (#$ . 3970) (list (let* ((curr (or (emms-track-get (emms-playlist-track-at) 'info-performer) (emms-track-get (emms-playlist-selected-track) 'info-performer))) (attr-name "performer") (fmt (if curr (format "Limit to %s (regexp = %s): " attr-name curr) (format "Limit to %s (regexp): " attr-name)))) (read-string fmt)))]) #@62 Limit to playlists that have info-title that matches REGEXP. (defalias 'emms-playlist-limit-to-info-title #[(regexp) "\301\230\203\f\302\303 \304\"\305\304\"\207" [regexp "" emms-track-get emms-playlist-track-at info-title emms-playlist-limit-do] 3 (#$ . 4561) (list (let* ((curr (or (emms-track-get (emms-playlist-track-at) 'info-title) (emms-track-get (emms-playlist-selected-track) 'info-title))) (attr-name "title") (fmt (if curr (format "Limit to %s (regexp = %s): " attr-name curr) (format "Limit to %s (regexp): " attr-name)))) (read-string fmt)))]) #@62 Limit to playlists that have info-album that matches REGEXP. (defalias 'emms-playlist-limit-to-info-album #[(regexp) "\301\230\203\f\302\303 \304\"\305\304\"\207" [regexp "" emms-track-get emms-playlist-track-at info-album emms-playlist-limit-do] 3 (#$ . 5128) (list (let* ((curr (or (emms-track-get (emms-playlist-track-at) 'info-album) (emms-track-get (emms-playlist-selected-track) 'info-album))) (attr-name "album") (fmt (if curr (format "Limit to %s (regexp = %s): " attr-name curr) (format "Limit to %s (regexp): " attr-name)))) (read-string fmt)))]) #@61 Limit to playlists that have info-year that matches REGEXP. (defalias 'emms-playlist-limit-to-info-year #[(regexp) "\301\230\203\f\302\303 \304\"\305\304\"\207" [regexp "" emms-track-get emms-playlist-track-at info-year emms-playlist-limit-do] 3 (#$ . 5695) (list (let* ((curr (or (emms-track-get (emms-playlist-track-at) 'info-year) (emms-track-get (emms-playlist-selected-track) 'info-year))) (attr-name "year") (fmt (if curr (format "Limit to %s (regexp = %s): " attr-name curr) (format "Limit to %s (regexp): " attr-name)))) (read-string fmt)))]) #@62 Limit to playlists that have info-genre that matches REGEXP. (defalias 'emms-playlist-limit-to-info-genre #[(regexp) "\301\230\203\f\302\303 \304\"\305\304\"\207" [regexp "" emms-track-get emms-playlist-track-at info-genre emms-playlist-limit-do] 3 (#$ . 6256) (list (let* ((curr (or (emms-track-get (emms-playlist-track-at) 'info-genre) (emms-track-get (emms-playlist-selected-track) 'info-genre))) (attr-name "genre") (fmt (if curr (format "Limit to %s (regexp = %s): " attr-name curr) (format "Limit to %s (regexp): " attr-name)))) (read-string fmt)))]) #@56 Limit to playlists that have name that matches REGEXP. (defalias 'emms-playlist-limit-to-name #[(regexp) "\301\230\203\f\302\303 \304\"\305\304\"\207" [regexp "" emms-track-get emms-playlist-track-at name emms-playlist-limit-do] 3 (#$ . 6823) (list (let* ((curr (or (emms-track-get (emms-playlist-track-at) 'name) (emms-track-get (emms-playlist-selected-track) 'name))) (attr-name "name") (fmt (if curr (format "Limit to %s (regexp = %s): " attr-name curr) (format "Limit to %s (regexp): " attr-name)))) (read-string fmt)))]) #@24 Show all tracks again. (defalias 'emms-playlist-limit-to-all #[nil "\300\301\211\"\207" [emms-playlist-limit-do nil] 3 (#$ . 7359) nil]) (byte-code "\301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\210\301\320\321#\210\301\322\323#\207" [emms-playlist-mode-map define-key "/n" emms-playlist-limit-to-name "/a" emms-playlist-limit-to-info-artist "/c" emms-playlist-limit-to-info-composer "/p" emms-playlist-limit-to-info-performer "/t" emms-playlist-limit-to-info-title "/b" emms-playlist-limit-to-info-album "/y" emms-playlist-limit-to-info-year "/g" emms-playlist-limit-to-info-genre "//" emms-playlist-limit-to-all] 4) #@43 All tracks in playlist buffer(unlimited). (defvar emms-playlist-limit-tracks nil (#$ . 8062)) #@46 Run in `emms-playlist-source-inserted-hook'. (defalias 'emms-playlist-limit-insert #[nil "\203\n\304!\204 \305 \210 \206prq\210\306\307 \210\214~\210\310ed\")\211+\207" [emms-playlist-buffer emms-source-old-buffer inhibit-read-only emms-playlist-limit-tracks buffer-live-p emms-playlist-current-clear t emms-playlist-ensure-playlist-buffer emms-playlist-tracks-in-region] 3 (#$ . 8162)]) #@196 Limit by NAME with VALUE. e.g., (emms-playlist-limit-do 'info-artist "Jane Zhang") When NAME is nil, show all tracks again. See `emms-info-mp3find-arguments' for possible options for NAME. (defalias 'emms-playlist-limit-do #[(name value) "\203\n\306!\204 \307 \210 \206prq\210\310\311 \210\312 \313ed\"\314 \210\315\316!\210 \2037\317\320 \"\210\202=\317\321\"\210\322ed\323\f$\211\203Q\324!\210\202T\325 \210)\315\326!\210\327 -\207" [emms-playlist-buffer emms-source-old-buffer inhibit-read-only tracks curr name buffer-live-p emms-playlist-current-clear t emms-playlist-ensure-playlist-buffer emms-playlist-current-selected-track emms-playlist-tracks-in-region erase-buffer run-hooks emms-playlist-cleared-hook mapc #[(track) "\304 \"\211\205\305 \n\"\205\306!)\207" [track name track-value value emms-track-get string-match emms-playlist-insert-track] 4] #[(track) "\301!\207" [track emms-playlist-insert-track] 2] text-property-any emms-track emms-playlist-select emms-playlist-first emms-playlist-limit-hook emms-playlist-mode-center-current emms-playlist-limit-tracks pos] 6 (#$ . 8567)]) (provide 'emms-playlist-limit)