;;; metalexpress.el --- Listen to Metal Express Radio ;; Copyright (C) 2012 Tom Willemsen ;; Author: Tom Willemsen ;; Keywords: multimedia ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; Functions for easily listening to Metal Express Radio. ;;; Code: (defgroup metal-express-radio nil "Group for the Metal Express Radio listening functions." :group 'multimedia) (defcustom metal-express-radio-playlist-url "http://usa7-vn.mixstream.net/listen/8248.m3u" "The URL of the Metal Express Radio stream.") (defun mer-proc-filter (proc string) (when (string-match "^ICY Info: StreamTitle='\\(.*\\)';StreamUrl='';" string) (message (match-string 1 string)))) ;;;###autoload (defun metal-express-radio-start () "Start listening to Metal Express Radio." (interactive) (let ((proc (start-process "metalexpress" "*Metal Express Radio*" "mplayer" metal-express-radio-playlist-url))) (set-process-filter proc #'mer-proc-filter))) (defun metal-express-radio-stop () "Stop listening to Metal Express Radio." (interactive) (kill-process (get-buffer-process "*Metal Express Radio*"))) (provide 'metalexpress) ;;; metalexpress.el ends here