bongo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bongo-devel] Changing backend for tracks


From: Daniel Jensen
Subject: [bongo-devel] Changing backend for tracks
Date: Sun, 18 Mar 2007 11:52:21 +0100
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.93 (gnu/linux)

>From the TODO list:

    The user should have a way to say ``play this track using
    that backend.''

How do you like the attached patch? It's pretty simple, but I think
it's useful.

diff -Naur bongo-old/bongo.el bongo-new/bongo.el
--- bongo-old/bongo.el  2007-03-18 11:41:25.000000000 +0100
+++ bongo-new/bongo.el  2007-03-18 11:45:22.000000000 +0100
@@ -3005,7 +3005,7 @@
   (list 'bongo-file-name 'bongo-action 'bongo-infoset
         'bongo-fields 'bongo-external-fields
         'bongo-header 'bongo-collapsed 'bongo-marked
-        'bongo-player 'bongo-played)
+        'bongo-player 'bongo-backend 'bongo-played)
   "List of semantic text properties used in Bongo buffers.
 When redisplaying lines, semantic text properties are preserved,
 whereas all other text properties (e.g., `face') are discarded.")
@@ -3831,6 +3831,17 @@
   'bongo-best-backend-for-file
   'bongo-backend-for-file)
 
+(defun bongo-set-backend-for-track (backend &optional point)
+  "Change to using BACKEND for the track at POINT."
+  (interactive
+   (list (intern (completing-read "Backend: "
+                                  (mapcar (lambda (x) (list (symbol-name x)))
+                                          bongo-enabled-backends)
+                                  nil t))))
+  (save-excursion
+    (bongo-goto-point point)
+    (bongo-line-set-property 'bongo-backend backend)))
+
 
 ;;;; Last.fm
 
@@ -5713,7 +5724,9 @@
     (bongo-set-current-track-position)
     (let ((player (if (bongo-action-track-line-p)
                       (bongo-start-action-player (bongo-line-action))
-                    (bongo-play-file (bongo-line-file-name)))))
+                    (bongo-play-file
+                     (bongo-line-file-name)
+                     (bongo-line-get-property 'bongo-backend)))))
       (bongo-player-put player 'infoset (bongo-line-infoset))
       (setq bongo-player player)
       (bongo-line-set-property 'bongo-player player)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]