X-Git-Url: https://www.fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=elisp.git;a=blobdiff_plain;f=media.el;h=25b19ec4699456c4d843949fe9df245aee683f28;hp=79313f24649fee8e33977c1a46582b35b0be3561;hb=6a44bdf65c8691602f917c8d5b4d8d751efa83d7;hpb=2f2c011e5cb2ba04ea1fb48e93a38db35da0c773 diff --git a/media.el b/media.el index 79313f2..25b19ec 100644 --- a/media.el +++ b/media.el @@ -1,4 +1,4 @@ -;; -*-Emacs-Lisp-*- +;; -*- mode: emacs-lisp -*- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; This program is free software; you can redistribute it and/or ;; @@ -79,17 +79,17 @@ title to display in the list (convenient for internet radios)." :group 'media) (defcustom media/playlist-at-top nil - "Should the playlists be created at the top of the media buffer ?" + "Should the playlists be created at the top of the media buffer?" :type 'bool :group 'media) (defcustom media/add-current-song-to-interrupted-when-killing nil - "Should we save the current song with time in the Interrupted playlist ?" + "Should we save the current song with time in the Interrupted playlist?" :type 'bool :group 'media) (defcustom media/do-not-remove-nonexisting-entries nil - "Should we remove the entries corresponding to a non-existing file when saving the playlists ?" + "Should we remove the entries corresponding to a non-existing file when saving the playlists?" :type 'bool :group 'media) @@ -99,12 +99,12 @@ title to display in the list (convenient for internet radios)." :group 'media) (defcustom media/continue-mode nil - "Should the player start the next song in the buffer when the current terminates ?" + "Should the player start the next song in the buffer when the current terminates?" :type 'boolean :group 'media) (defcustom media/expert nil - "Should the keymap help be shown ?" + "Should the keymap help be shown?" :type 'boolean :group 'media) @@ -254,6 +254,7 @@ and the bitrate. Should be nil if no information is available.") (time (get-text-property position 'time))) (if (not url) (media/remove-highlight) (run-hook-with-args 'media/before-play-hook url) + (setq media/current-information nil) (media/api/play url) ;; We keep the information of the url and the title (setq media/played-information (cons url (get-text-property position 'title))) @@ -821,6 +822,7 @@ returns nil if no id3 tags could be found." (defun media/stop () (interactive) (message "Stop") + (setq media/current-information nil) (media/api/stop)) (defun media/queue-song-at-point () @@ -868,6 +870,19 @@ the 'Queue' playlist, and plays it if no song is currently playing." ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defun media/player-error () + (message "Player error") + (setq media/current-information nil) + (media/remove-highlight)) + +(defun media/song-terminates () + (with-current-buffer media/buffer + (if media/continue-mode (media/play-next t) + (setq media/current-information nil) + (media/remove-highlight)))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + (defun media/switch-continue-mode () "Switches between a mode which automatically chains files and a mode which stops when the songs ends." @@ -878,15 +893,6 @@ which stops when the songs ends." (message "Continue mode switched off.")) ) -(defun media/player-error () - (message "Player error") - (media/remove-highlight)) - -(defun media/song-terminates () - (with-current-buffer media/buffer - (if media/continue-mode (media/play-next t) - (media/remove-highlight)))) - (defun media/duration-to-string (duration) (let ((sec (mod duration 60)) (min (/ duration 60))) @@ -943,7 +949,7 @@ which stops when the songs ends." (unless (condition-case nil (media/save-playlists) - (error (not (y-or-n-p "Can not save the playlists. Still kill the media buffer ? ")))) + (error (not (y-or-n-p "Can not save the playlists. Still kill the media buffer? ")))) (kill-buffer media/buffer)) )