;ELC ;;; Compiled by heimdall@baldur on Fri Feb 1 18:34:58 2008 ;;; from file /home/heimdall/repos/emms/emms-source-file.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-source-file.el' was compiled for Emacs 19.29 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #@36 emms-source-file.el version string (defvar emms-source-file-version "0.2 $Revision: 1.30 $" (#$ . 595)) (byte-code "\300\301!\210\300\302!\210\303\304\305\306\307\310\311\312&\207" [require emms dired custom-declare-group emms-source-file nil "*Sources for EMMS that use the file system." :prefix "emms-source-file-" :group emms-source] 8) #@49 *The default directory to look for media files. (custom-declare-variable 'emms-source-file-default-directory 'nil '(#$ . -942) :type 'string :group 'emms-source-file) #@358 *A function to call that searches in a given directory all files that match a given regex. DIR and REGEX are the only arguments passed to this function. You have two build-in options: `emms-source-file-directory-tree-internal' will work always, but might be slow. `emms-source-file-directory-tree-find' will work only if you have GNU find, but it's faster. (custom-declare-variable 'emms-source-file-directory-tree-function ''emms-source-file-directory-tree-internal '(#$ . -1116) :type 'function :options '(emms-source-file-directory-tree-internal emms-source-file-directory-tree-find) :group 'emms-source-file) #@138 A regexp matching files to be ignored when adding directories. You should set case-fold-search to nil before using this regexp in code. (custom-declare-variable 'emms-source-file-exclude-regexp '(concat "\\`\\(#.*#\\|.*,v\\|.*~\\|\\.\\.?\\|\\.#.*\\|,.*\\)\\'\\|" "/\\(CVS\\|RCS\\|\\.arch-ids\\|{arch}\\|,.*\\|\\.svn\\|" "_darcs\\)\\(/\\|\\'\\)") '(#$ . 1736) :type 'regexp :group 'emms-source-file) #@33 *The program name for GNU find. (custom-declare-variable 'emms-source-file-gnu-find '"find" '(#$ . -2142) :type 'string :group 'emms-source-file) (byte-code "\300\301\302\303!\203\f\303\202 \304\"\207" [defalias emms-read-directory-name fboundp read-directory-name read-file-name] 4) #@75 An EMMS source for a single file - either FILE, or queried from the user. (defalias 'emms-source-file #[(file) "\301!\203\n\302!\207\303\304\300\305!\"!\207" [file file-directory-p emms-source-directory emms-playlist-insert-track emms-track expand-file-name] 5 (#$ . 2434)]) #@75 An EMMS source for a single file - either FILE, or queried from the user. (defalias 'emms-play-file #[(file) "\203\f\302\303\304 \")\207\305\304 \"\207" [current-prefix-arg file nil emms-source-add emms-source-file emms-source-play] 3 (#$ . 2719) (list (read-file-name "Play file: " emms-source-file-default-directory emms-source-file-default-directory t))]) #@75 An EMMS source for a single file - either FILE, or queried from the user. (defalias 'emms-add-file #[(file) "\203\f\302\303\304 \")\207\305\304 \"\207" [current-prefix-arg file nil emms-source-play emms-source-file emms-source-add] 3 (#$ . 3087) (list (read-file-name "Play file: " emms-source-file-default-directory emms-source-file-default-directory t))]) #@75 An EMMS source for a single file - either FILE, or queried from the user. (defalias 'emms-insert-file #[(file) "\301\302\"\207" [file emms-source-insert emms-source-file] 3 (#$ . 3454) (list (read-file-name "Play file: " emms-source-file-default-directory emms-source-file-default-directory t))]) #@83 An EMMS source for a whole directory tree - either DIR, or queried from the user. (defalias 'emms-source-directory #[(dir) "\301\302\303\304\305 #\"\207" [dir mapc #[(file) "\303\304 \n\")\206 \305\n!?\205\306\307\302\310\n!\"!\207" [case-fold-search emms-source-file-exclude-regexp file nil string-match file-directory-p emms-playlist-insert-track emms-track expand-file-name] 5] directory-files t emms-source-file-regex] 6 (#$ . 3758)]) #@83 An EMMS source for a whole directory tree - either DIR, or queried from the user. (defalias 'emms-play-directory #[(dir) "\203\f\302\303\304 \")\207\305\304 \"\207" [current-prefix-arg dir nil emms-source-add emms-source-directory emms-source-play] 3 (#$ . 4208) (list (emms-read-directory-name "Play directory: " emms-source-file-default-directory emms-source-file-default-directory t))]) #@83 An EMMS source for a whole directory tree - either DIR, or queried from the user. (defalias 'emms-add-directory #[(dir) "\203\f\302\303\304 \")\207\305\304 \"\207" [current-prefix-arg dir nil emms-source-play emms-source-directory emms-source-add] 3 (#$ . 4607) (list (emms-read-directory-name "Play directory: " emms-source-file-default-directory emms-source-file-default-directory t))]) #@83 An EMMS source for a whole directory tree - either DIR, or queried from the user. (defalias 'emms-insert-directory #[(dir) "\301\302\"\207" [dir emms-source-insert emms-source-directory] 3 (#$ . 5005) (list (emms-read-directory-name "Play directory: " emms-source-file-default-directory emms-source-file-default-directory t))]) #@113 An EMMS source for multiple directory trees - either DIR, or the value of `emms-source-file-default-directory'. (defalias 'emms-source-directory-tree #[(dir) "\303\304!\305 \"\306\307 \210\310\311\n\"*\207" [dir case-fold-search files emms-source-file-directory-tree expand-file-name emms-source-file-regex nil emms-playlist-ensure-playlist-buffer mapc #[(file) "\303 \"?\205\n\304\301 \"!\207" [emms-source-file-exclude-regexp file emms-playlist-insert-track-function string-match emms-track] 4]] 3 (#$ . 5341)]) #@113 An EMMS source for multiple directory trees - either DIR, or the value of `emms-source-file-default-directory'. (defalias 'emms-play-directory-tree #[(dir) "\203\f\302\303\304 \")\207\305\304 \"\207" [current-prefix-arg dir nil emms-source-add emms-source-directory-tree emms-source-play] 3 (#$ . 5868) (list (emms-read-directory-name "Play directory tree: " emms-source-file-default-directory emms-source-file-default-directory t))]) #@113 An EMMS source for multiple directory trees - either DIR, or the value of `emms-source-file-default-directory'. (defalias 'emms-add-directory-tree #[(dir) "\203\f\302\303\304 \")\207\305\304 \"\207" [current-prefix-arg dir nil emms-source-play emms-source-directory-tree emms-source-add] 3 (#$ . 6313) (list (emms-read-directory-name "Play directory tree: " emms-source-file-default-directory emms-source-file-default-directory t))]) #@113 An EMMS source for multiple directory trees - either DIR, or the value of `emms-source-file-default-directory'. (defalias 'emms-insert-directory-tree #[(dir) "\301\302\"\207" [dir emms-source-insert emms-source-directory-tree] 3 (#$ . 6757) (list (emms-read-directory-name "Play directory tree: " emms-source-file-default-directory emms-source-file-default-directory t))]) #@102 An EMMS source that will find files in DIR or `emms-source-file-default-directory' that match REGEX. (defalias 'emms-source-find #[(dir regex) "\302\303\304 \"\"\207" [dir regex mapc #[(file) "\303\304 \n\")?\205\305\306\302\n\"!\207" [case-fold-search emms-source-file-exclude-regexp file nil string-match emms-playlist-insert-track emms-track] 4] emms-source-file-directory-tree] 5 (#$ . 7138)]) #@102 An EMMS source that will find files in DIR or `emms-source-file-default-directory' that match REGEX. (defalias 'emms-play-find #[(dir regex) "\203 \303\304\305 \n#)\207\306\305 \n#\207" [current-prefix-arg dir regex nil emms-source-add emms-source-find emms-source-play] 4 (#$ . 7547) (list (emms-read-directory-name "Find in directory: " emms-source-file-default-directory emms-source-file-default-directory t) (read-from-minibuffer "Find files matching: "))]) #@102 An EMMS source that will find files in DIR or `emms-source-file-default-directory' that match REGEX. (defalias 'emms-add-find #[(dir regex) "\203 \303\304\305 \n#)\207\306\305 \n#\207" [current-prefix-arg dir regex nil emms-source-play emms-source-find emms-source-add] 4 (#$ . 8019) (list (emms-read-directory-name "Find in directory: " emms-source-file-default-directory emms-source-file-default-directory t) (read-from-minibuffer "Find files matching: "))]) #@102 An EMMS source that will find files in DIR or `emms-source-file-default-directory' that match REGEX. (defalias 'emms-insert-find #[(dir regex) "\302\303 #\207" [dir regex emms-source-insert emms-source-find] 4 (#$ . 8490) (list (emms-read-directory-name "Find in directory: " emms-source-file-default-directory emms-source-file-default-directory t) (read-from-minibuffer "Find files matching: "))]) #@43 Return all marked files of a dired buffer (defalias 'emms-source-dired #[nil "\301\302rq\210\303 )\"\207" [emms-source-old-buffer mapc #[(file) "\301!\203\n\302!\207\303!\207" [file file-directory-p emms-source-directory-tree emms-source-file] 2] dired-get-marked-files] 3 (#$ . 8896)]) #@43 Return all marked files of a dired buffer (defalias 'emms-play-dired #[nil "\203 \301\302\303!)\207\304\303!\207" [current-prefix-arg nil emms-source-add emms-source-dired emms-source-play] 2 (#$ . 9194) nil]) #@43 Return all marked files of a dired buffer (defalias 'emms-add-dired #[nil "\203 \301\302\303!)\207\304\303!\207" [current-prefix-arg nil emms-source-play emms-source-dired emms-source-add] 2 (#$ . 9413) nil]) #@43 Return all marked files of a dired buffer (defalias 'emms-insert-dired #[nil "\300\301!\207" [emms-source-insert emms-source-dired] 2 (#$ . 9631) nil]) #@119 Return a list of all files under DIR that match REGEX. This function uses `emms-source-file-directory-tree-function'. (defalias 'emms-source-file-directory-tree #[(dir regex) "\304\305!\210\306 \n\"\307\"\304\310!\210 )\207" [emms-source-file-directory-tree-function dir regex pl message "Building playlist..." sort string< "Building playlist...done"] 4 (#$ . 9790)]) #@124 Return a list of all files under DIR that match REGEX. This function uses only emacs functions, so it might be a bit slow. (defalias 'emms-source-file-directory-tree-internal #[(dir regex) "\304C \203C\305 @!\203(\306\307 @\"\203 A\211\202\304\310\311\217\211\202\306 @\"\203< @\nB A\211\202 A\211\204 \n*\207" [dir dirs files regex nil file-directory-p string-match "/\\.\\.?$" (byte-code "\301A\302@\303\304\303$\"\207" [dirs append directory-files t nil] 7) ((error (cdr dirs)))] 4 (#$ . 10167)]) #@175 Return a list of all files under DIR that match REGEX. This function uses the external find utility. The name for GNU find may be supplied using `emms-source-file-gnu-find'. (defalias 'emms-source-file-directory-tree-find #[(dir regex) "\304\305!\306\216rq\210\307 \310\311\310\312\n!\313\314\315\316 \317Q& \210\320\321\322ed{\323\"\"+\207" [#1=#:temp-buffer emms-source-file-gnu-find dir regex generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) call-process nil t expand-file-name "-type" "f" "-iregex" ".*\\(" "\\).*" delete "" split-string "\n"] 12 (#$ . 10697)]) #@42 Run BODY while excluding DIRECTORY-LIST. (defalias 'emms-with-excluded-directories '(macro . #[(directory-list &rest body) "\303\300\304\305\306BB\307\305\310 D\311BB\312BBBBDC\nBB\207" [emms-source-file-exclude-regexp directory-list body let concat or (#1="") "\\|\\(" regexp-opt (#1#) ("\\)")] 8 (#$ . 11332)])) #@84 Return a regexp that matches everything any player (that supports files) can play. (defalias 'emms-source-file-regex #[nil "\301\302\303#\207" [emms-player-list mapconcat #[(player) "\301\302\"\206\303\207" [player emms-player-get regex ""] 3] "\\|"] 4 (#$ . 11653)]) #@62 Search for REGEXP and display the results in a locate buffer (defalias 'emms-locate #[(regexp) "\300\301!\210\302\213\210\303 \304\230\204\305\304!\210\306\307!\210\310\311!\207" [require locate ((byte-code "\302\303!q\210\304 \210\305 \210\306\307\310 \"\"\210\311 !\207" [emms-source-file-default-directory regexp get-buffer-create "*EMMS Find*" locate-mode erase-buffer mapc #[(elt) "\301\302\"A\303\261\207" [elt assoc name "\n"] 3] emms-source-find locate-do-setup] 5)) buffer-name "*EMMS Find*" switch-to-buffer-other-window run-hooks dired-mode-hook dired-next-line 2] 2 (#$ . 11931) "sRegexp to search for: "]) #@57 An EMMS source for an URL - for example, for streaming. (defalias 'emms-source-url #[(url) "\301\302\300\"!\207" [url emms-playlist-insert-track emms-track] 4 (#$ . 12561)]) #@57 An EMMS source for an URL - for example, for streaming. (defalias 'emms-play-url #[(url) "\203\f\302\303\304 \")\207\305\304 \"\207" [current-prefix-arg url nil emms-source-add emms-source-url emms-source-play] 3 (#$ . 12742) "sPlay URL: "]) #@57 An EMMS source for an URL - for example, for streaming. (defalias 'emms-add-url #[(url) "\203\f\302\303\304 \")\207\305\304 \"\207" [current-prefix-arg url nil emms-source-play emms-source-url emms-source-add] 3 (#$ . 12993) "sPlay URL: "]) #@57 An EMMS source for an URL - for example, for streaming. (defalias 'emms-insert-url #[(url) "\301\302\"\207" [url emms-source-insert emms-source-url] 3 (#$ . 13243) "sPlay URL: "]) #@71 An EMMS source for streaming playlists (usually URLs ending in .pls). (defalias 'emms-source-streamlist #[(streamlist) "\301\302\300\"!\207" [streamlist emms-playlist-insert-track emms-track] 4 (#$ . 13430)]) #@71 An EMMS source for streaming playlists (usually URLs ending in .pls). (defalias 'emms-play-streamlist #[(streamlist) "\203\f\302\303\304 \")\207\305\304 \"\207" [current-prefix-arg streamlist nil emms-source-add emms-source-streamlist emms-source-play] 3 (#$ . 13646) "sPlay streamlist URL: "]) #@71 An EMMS source for streaming playlists (usually URLs ending in .pls). (defalias 'emms-add-streamlist #[(streamlist) "\203\f\302\303\304 \")\207\305\304 \"\207" [current-prefix-arg streamlist nil emms-source-play emms-source-streamlist emms-source-add] 3 (#$ . 13950) "sPlay streamlist URL: "]) #@71 An EMMS source for streaming playlists (usually URLs ending in .pls). (defalias 'emms-insert-streamlist #[(streamlist) "\301\302\"\207" [streamlist emms-source-insert emms-source-streamlist] 3 (#$ . 14253) "sPlay streamlist URL: "]) #@62 An EMMS source for Last.fm URLs, which begin with lastfm://. (defalias 'emms-source-lastfm #[(lastfm-url) "\301\302\303\"!\207" [lastfm-url emms-playlist-insert-track emms-track lastfm] 4 (#$ . 14493)]) #@62 An EMMS source for Last.fm URLs, which begin with lastfm://. (defalias 'emms-play-lastfm #[(lastfm-url) "\203\f\302\303\304 \")\207\305\304 \"\207" [current-prefix-arg lastfm-url nil emms-source-add emms-source-lastfm emms-source-play] 3 (#$ . 14703) "sPlay Last.fm URL: "]) #@62 An EMMS source for Last.fm URLs, which begin with lastfm://. (defalias 'emms-add-lastfm #[(lastfm-url) "\203\f\302\303\304 \")\207\305\304 \"\207" [current-prefix-arg lastfm-url nil emms-source-play emms-source-lastfm emms-source-add] 3 (#$ . 14987) "sPlay Last.fm URL: "]) #@62 An EMMS source for Last.fm URLs, which begin with lastfm://. (defalias 'emms-insert-lastfm #[(lastfm-url) "\301\302\"\207" [lastfm-url emms-source-insert emms-source-lastfm] 3 (#$ . 15270) "sPlay Last.fm URL: "]) (provide 'emms-source-file)