From 4ab7c61701b9eb1bac0d75207fdcf8bbe17dbec2 Mon Sep 17 00:00:00 2001 From: lucas Date: Mon, 12 Sep 2005 17:23:00 +0000 Subject: First attempt at reading playing time for .ogg Problem : it's a bit long to read the info now. We need to optimize that. darcs-hash:20050912172312-4f952-73cffb3445ed251fd8cb7e5d691f7c95a676bda0.gz --- emms-info-ogg.el | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'emms-info-ogg.el') diff --git a/emms-info-ogg.el b/emms-info-ogg.el index b284df6..ca3059f 100644 --- a/emms-info-ogg.el +++ b/emms-info-ogg.el @@ -56,25 +56,40 @@ ogg-comments.el" (defun emms-info-ogg-comment-providep (track) "Return non-nil if this info-method provides info for the track." (if (and track (emms-track-name track) - (string-match "\\.ogg$" (emms-track-name track))) + (string-match "\\.ogg$" (emms-track-name track))) t nil)) (defun emms-info-ogg-get-comment (field info) (let ((comment (cadr (assoc field (cadr info))))) (if comment - comment + comment ""))) + (defun emms-info-ogg-comment-get (track) "Retrieve an emms-info strucutre as an ogg-comment" - (let ((info (oggc-read-header (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))) + (make-emms-info :title (emms-info-ogg-get-comment "title" info) :artist (emms-info-ogg-get-comment "artist" info) :album (emms-info-ogg-get-comment "album" info) :note (emms-info-ogg-get-comment "comment" info) :year (emms-info-ogg-get-comment "date" info) :genre (emms-info-ogg-get-comment "genre" info) + :playing-time ptime-total + :playing-time-min ptime-min + :playing-time-sec ptime-sec :file (emms-track-name track)))) (provide 'emms-info-ogg) -- cgit v1.2.3