aboutsummaryrefslogtreecommitdiff
path: root/emms-info-ogg.el
diff options
context:
space:
mode:
authoryonirabkin <yonirabkin>2005-09-21 15:10:00 +0000
committeryonirabkin <mwolson@gnu.org>2005-09-21 15:10:00 +0000
commitec90d94d50cdfb49d5474190365b71cd6f6267ae (patch)
tree47aa90c7310e426a6543fd9200ab3374fcd39d3d /emms-info-ogg.el
parentcd1f64f873331c5a12fcd0146b0edd6ebfe0b2d9 (diff)
fix emms-score.el and emms-info-ogg.el borkage
darcs-hash:20050921151000-be80e-f0f52d81156347ffd2469b1cc3fc0f019a1cd597.gz
Diffstat (limited to 'emms-info-ogg.el')
-rw-r--r--emms-info-ogg.el53
1 files changed, 25 insertions, 28 deletions
diff --git a/emms-info-ogg.el b/emms-info-ogg.el
index 07b5e59..d0c4899 100644
--- a/emms-info-ogg.el
+++ b/emms-info-ogg.el
@@ -44,17 +44,12 @@
"EMMS info ogg version string.")
;; $Id: emms-info-ogg.el,v 1.14 2005/07/09 11:56:00 forcer Exp $
-(defgroup emms-info-ogg-comments nil
+(defgroup emms-info-ogg nil
"An EMMS-info method for getting/setting ogg-comments, using
ogg-comments.el"
:group 'emms-info-methods
:prefix "emms-info-ogg-")
-(defcustom emms-info-ogginfo-program-name "ogginfo"
- "*The name/path of the ogginfo tag program."
- :type 'string
- :group 'emms-info-ogginfo)
-
(defun emms-info-ogg-get-comment (field info)
(let ((comment (cadr (assoc field (cadr info)))))
(if comment
@@ -63,28 +58,30 @@ ogg-comments.el"
(defun emms-info-ogg (track)
"Retrieve an emms-info structure as an ogg-comment"
- (let ((info (oggc-read-header (emms-track-name track)))
- (file (emms-track-get track 'name)))
- (with-temp-buffer
- (call-process "ogginfo" nil t nil file)
- (goto-char (point-min))
- (re-search-forward "Playback length: \\([0-9]*\\)m:\\([0-9]*\\)")
- (let ((minutes (string-to-int (match-string 1)))
- (seconds (string-to-int (match-string 2))))
- (setq ptime-total (+ (* minutes 60) seconds)
- ptime-min minutes
- ptime-sec seconds)))
-
- (emms-track-set track 'info-title (emms-info-ogg-get-comment "title" info))
- (emms-track-set track 'info-artist (emms-info-ogg-get-comment "artist" info))
- (emms-track-set track 'info-album (emms-info-ogg-get-comment "album" info))
- (emms-track-set track 'info-note (emms-info-ogg-get-comment "comment" info))
- (emms-track-set track 'info-year (emms-info-ogg-get-comment "date" info))
- (emms-track-set track 'info-genre (emms-info-ogg-get-comment "genre" info))
- (emms-track-set track 'info-playing-time ptime-total)
- (emms-track-set track 'info-playing-time-min ptime-min)
- (emms-track-set track 'info-playing-time-sec ptime-sec)
- (emms-track-set track 'info-file (emms-track-name track))))
+ (when (and (eq 'file (emms-track-type track))
+ (string-match "\\.[Oo][Gg][Gg]\\'" (emms-track-name track)))
+ (let ((info (oggc-read-header (emms-track-name track)))
+ (file (emms-track-get track 'name)))
+ (with-temp-buffer
+ (call-process "ogginfo" nil t nil file)
+ (goto-char (point-min))
+ (re-search-forward "Playback length: \\([0-9]*\\)m:\\([0-9]*\\)")
+ (let ((minutes (string-to-int (match-string 1)))
+ (seconds (string-to-int (match-string 2))))
+ (setq ptime-total (+ (* minutes 60) seconds)
+ ptime-min minutes
+ ptime-sec seconds)))
+
+ (emms-track-set track 'info-title (emms-info-ogg-get-comment "title" info))
+ (emms-track-set track 'info-artist (emms-info-ogg-get-comment "artist" info))
+ (emms-track-set track 'info-album (emms-info-ogg-get-comment "album" info))
+ (emms-track-set track 'info-note (emms-info-ogg-get-comment "comment" info))
+ (emms-track-set track 'info-year (emms-info-ogg-get-comment "date" info))
+ (emms-track-set track 'info-genre (emms-info-ogg-get-comment "genre" info))
+ (emms-track-set track 'info-playing-time ptime-total)
+ (emms-track-set track 'info-playing-time-min ptime-min)
+ (emms-track-set track 'info-playing-time-sec ptime-sec)
+ (emms-track-set track 'info-file (emms-track-name track)))))
(provide 'emms-info-ogg)
;;; emms-info-ogg.el ends here