Hi, Lucas Bonnet <[EMAIL PROTECTED]> writes:
> I'm too tired to read your patch (sorry!) but I thought emms alreayd > handled such cases... If not, well, your patch will should be very > welcome. Luckily you haven't already read it :-) Because I spotted a silly bug in my code which should be resolved with these changes. Thanks, Andrea. --- old-emms2/emms.el 2006-06-16 22:37:21.000000000 +0200 +++ new-emms2/emms.el 2006-06-16 22:37:21.000000000 +0200 @@ -1218,27 +1218,35 @@ "Return an EMMS player capable of playing TRACK. This will be the first player whose PLAYABLEP function returns non-nil, or nil if no such player exists." - (let ((lis emms-player-list)) - (while (and lis - (not (funcall (emms-player-get (car lis) 'playablep) - track))) + (let ((lis emms-player-list) + players) + (while lis + (if (funcall (emms-player-get (car lis) 'playablep) + track) + (add-to-list 'players (car lis) t)) (setq lis (cdr lis))) - (if lis - (car lis) - nil))) + players)) (defun emms-player-start (track) "Start playing TRACK." (if emms-player-playing-p (error "A player is already playing") - (let ((player (emms-player-for track))) - (if (not player) + (let ((players (emms-player-for track))) + (if (not players) (error "Don't know how to play track: %S" track) ;; Change default-directory so we don't accidentally block any ;; directories the current buffer was visiting. - (let ((default-directory "/")) - (funcall (emms-player-get player 'start) - track)))))) + (let ((default-directory "/") + (continue t)) + (while (and players continue) + (condition-case err + (progn + (funcall (emms-player-get (car players) 'start) + track) + (setq continue nil)) + (error (setq players (cdr players))))) + (if (not players) + (error "None of the suitable players can play track: %S" track ))))))) (defun emms-player-started (player) "Declare that the given EMMS PLAYER has started. -- "If you want to build a ship, don't drum up people together to collect wood and don't assign them tasks and work, but rather teach them to long for the endless immensity of the sea." --Antoine de Saint-Exupery _______________________________________________ Emms-help mailing list Emms-help@gnu.org http://lists.gnu.org/mailman/listinfo/emms-help