diff options
| author | David Engster <deng@randomsample.de> | 2010-03-02 22:00:36 +0100 | 
|---|---|---|
| committer | Lucas Bonnet <lucas@rincevent.net> | 2010-03-04 22:11:00 +0100 | 
| commit | 5e6e1f3181550c0c1794acd8ba8f63871d0bcb9b (patch) | |
| tree | 450fac0d7c2ab6ff10b9255a89f47048cf165036 /lisp | |
| parent | 692d1841d1f088dac00737f44ecbf7aca3781317 (diff) | |
emms-player-mpd.el: Parsing of supported formats for newer versions of mpd.
* emms-player-mpd: (emms-player-mpd-get-supported-regexp): Added code
  to parse the output of newer versions of mpd.
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/emms-player-mpd.el | 25 | 
1 files changed, 15 insertions, 10 deletions
diff --git a/lisp/emms-player-mpd.el b/lisp/emms-player-mpd.el index 4b37cee..ae43aa1 100644 --- a/lisp/emms-player-mpd.el +++ b/lisp/emms-player-mpd.el @@ -140,19 +140,24 @@ leave it set to nil."  (defun emms-player-mpd-get-supported-regexp ()    "Returns a regexp of file extensions that MusicPD supports,  or nil if we cannot figure it out." -  (let ((out (split-string (shell-command-to-string "mpd --version") -                           "\n")) +  (let ((out (shell-command-to-string "mpd --version"))          (found-start nil)          (supported nil))      ;; Get supported formats -    (while (car out) -      (cond ((string= (car out) "Supported formats:") -             (setq found-start t)) -            ((string= (car out) "") -             (setq found-start nil)) -            (found-start -             (setq supported (concat supported (car out))))) -      (setq out (cdr out))) +    ;; New version (0.15.x) +    (if (string-match "Supported decoders:\\([^0]+?\\)Supported outputs:" out) +	(setq supported (replace-regexp-in-string "\\[.+?\\]" "" +						  (match-string 1 out))) +      ;; Older versions +      (setq out (split-string out "\n")) +      (while (car out) +	(cond ((string= (car out) "Supported formats:") +	       (setq found-start t)) +	      ((string= (car out) "") +	       (setq found-start nil)) +	      (found-start +	       (setq supported (concat supported (car out))))) +	(setq out (cdr out))))      ;; Create regexp      (when (and (stringp supported)                 (not (string= supported "")))  | 
