;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun media/mplayer/filter-subfunctions (cmd param)
- ;; (unless (string= cmd "A:")
- ;; (message "cmd=%s param=%s" cmd param)
- ;; )
+ ;; (unless (string= cmd "A:")
+ ;; (message "cmd=%s param=%s" cmd param)
+ ;; )
(eval
(cdr
(assoc cmd
;; ----------------------------------------
+ ("ICY Info:" .
+ (progn
+ ;; (message "ICY Info \"%s\"" param)
+ (if (string-match "StreamTitle='\\([^;]*\\)';" param)
+ (setq media/current-song-in-stream
+ (let ((s (match-string 1 param)))
+ (concat (if (string= s "") "<no title>" s)
+ " | "
+ ;; (current-time-string)
+ (format-time-string "%a %b %d %H:%M:%S")
+ )))
+ (setq media/current-song-in-stream nil)
+ (message "ICY Info \"%s\"" param))
+ (if (and media/current-song-in-stream media/current-information)
+ (media/show-current-information)))
+ )
+
+ ;; ----------------------------------------
+
("ANS_LENGTH" .
(setq media/song-duration
(string-match "\\(.*\\)[\n\r]+" media/mplayer/buffer start))
(setq start (1+ (match-end 1)))
(let ((line (match-string 1 media/mplayer/buffer)))
- (when (string-match "^\\(AUDIO:\\|Exiting...\\|Starting\\|ANS_LENGTH\\|ANS_TIME_POSITION\\|Cache fill:\\) *\\(.*\\)$" line)
- (media/mplayer/filter-subfunctions (match-string 1 line) (match-string 2 line)))))
+ (when (string-match "^\\(AUDIO:\\|Exiting...\\|Starting\\|ANS_LENGTH\\|ANS_TIME_POSITION\\|Cache fill:\\|ICY Info:\\) *\\(.*\\)$" line)
+ (media/mplayer/filter-subfunctions (match-string 1 line) (match-string 2 line))))
+ )
(setq media/mplayer/buffer (substring media/mplayer/buffer start)))
)