From fdf11ef9e071f2743f7417d3da91cb4cf33d39d3 Mon Sep 17 00:00:00 2001 From: William Xu Date: Tue, 15 May 2007 05:35:00 +0000 Subject: emms-player-mplayer.el: (emms-player-mplayer-start-with-subscript-checker): New function. Now mplayer could prompt you to select subscripts when possible. To use, just make it override `emms-player-mplayer-start'. darcs-hash:20070515053552-cfa61-8cc4323446da6396b77eae6f3a5bbbecdd23e143.gz --- emms-player-mplayer.el | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/emms-player-mplayer.el b/emms-player-mplayer.el index 1752ea5..12f553d 100644 --- a/emms-player-mplayer.el +++ b/emms-player-mplayer.el @@ -74,5 +74,43 @@ emms-player-simple-process-name (format "seek %d 2\n" sec))) +(defun emms-player-mplayer-subscript-checker () + (let* ((track (emms-playlist-current-selected-track)) + (name (emms-track-name track)) + (ext (file-name-extension name)) + (sub (replace-regexp-in-string (concat ext "$") "sub" name)) + ;; TODO, script for chinese, gb, big, etc. + (srt (replace-regexp-in-string (concat ext "$") "srt" name)) + (choices (remove-if-not 'file-exists-p (list sub srt))) + (subscript nil)) + (cond ((> (length choices) 1) + (setq subscript + (ido-completing-read "Select subscripts: " + choices))) + ((= (length choices) 1) + (setq subscript (car choices)))) + (when subscript + (setq emms-player-mplayer-parameters + (append emms-player-mplayer-parameters + (list "-sub" subscript)))))) + +(defun emms-player-mplayer-start-with-subscript-checker (track) + "Start the player process by checking possible subscripts +additionally." + (let ((emms-player-mplayer-parameters emms-player-mplayer-parameters)) + (emms-player-mplayer-subscript-checker) + (emms-player-simple-start (emms-track-name track) + emms-player-mplayer + emms-player-mplayer-command-name + emms-player-mplayer-parameters))) + +;; Uncomment me if you want to use +;; `emms-player-mplayer-start-with-subscript-checker'. We need to +;; redefine `emms-player-mplayer-start', since i can't figure out an +;; easy way to achieve this by modifying the emms source. (xwl) +;; +;; (defalias 'emms-player-mplayer-start +;; 'emms-player-mplayer-start-with-subscript-checker) + (provide 'emms-player-mplayer) ;;; emms-player-mplayer.el ends here -- cgit v1.2.3