emms-patches
[Top][All Lists]
Advanced

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

[Emms-patches] darcs patch: use-existing-functionality-for-renaming-...


From: Michael Olson
Subject: [Emms-patches] darcs patch: use-existing-functionality-for-renaming-... (and 5 more)
Date: Sun, 19 Aug 2007 11:04:40 -0400

Fri Aug 17 06:03:10 EDT 2007  Tassilo Horn <address@hidden>
  * use-existing-functionality-for-renaming-files.dpatch
  
  When I implemented the renaming stuff, I was not aware that Ye already thought
  of this feature.  When editing a track, one can edit the filename and the file
  will be renamed and the cache updated.  Now renaming by hitting `R'
  (`emms-tag-editor-rename') in the playlist makes use of this functionality
  instead of doing it on its own.

Fri Aug 17 11:04:02 EDT 2007  Tassilo Horn <address@hidden>
  * docs-for-editing-tags-and-renaming.dpatch

Sat Aug 18 09:34:12 EDT 2007  Nix <address@hidden>
  * Add support for composer and performer tags.
  
  The browser keybindings are somewhat discontiguous to avoid breaking
  people's finger macros: browsing by composer and performer are `b 5' and
  `b 6' respectively, where artist is `b 1'. 
  
  In the tag editor, I changed the note format character to %;, making room
  for composer as %c.
  
  I've not added support to last.fm for composer or performer, as it doesn't
  seem to support either. (I suspect that in most cases the composer should
  be reported as the artist if it is present, but that is not impolemented
  here.)

Sat Aug 18 09:40:16 EDT 2007  Nix <address@hidden>
  * XEmacs does not load the overlay functions by default: load them here.

Sat Aug 18 14:52:18 EDT 2007  Michael Olson <address@hidden>
  * Use slightly different XEmacs overlay fix

Sun Aug 19 11:04:08 EDT 2007  Michael Olson <address@hidden>
  * Drop eval-when-compile around (require 'overlay)
New patches:

[use-existing-functionality-for-renaming-files.dpatch
Tassilo Horn <address@hidden>**20070817100310
 
 When I implemented the renaming stuff, I was not aware that Ye already thought
 of this feature.  When editing a track, one can edit the filename and the file
 will be renamed and the cache updated.  Now renaming by hitting `R'
 (`emms-tag-editor-rename') in the playlist makes use of this functionality
 instead of doing it on its own.
] {
hunk ./emms-tag-editor.el 525
-  (let ((tracks (funcall emms-tag-editor-parse-function))
-        filename func exit old pos val need-sync)
+  (let ((tracks (funcall emms-tag-editor-parse-function)))
hunk ./emms-tag-editor.el 529
-      (message "Setting tags...")
-      (save-excursion
-        (dolist (track tracks)
-          (when (emms-track-get track 'tag-modified)
-            (setq filename (emms-track-name track)
-                  old (emms-track-get track 'orig-track))
-            ;; rename local file
-            (when (and (emms-track-get track 'newname)
-                       (eq (emms-track-get track 'type) 'file)
-                       (file-writable-p (emms-track-name track))
-                       (y-or-n-p (format "Rename %s to %s"
-                                         (emms-track-name track)
-                                         (emms-track-get track 'newname))))
-              (setq filename (emms-track-get track 'newname))
-              (rename-file (emms-track-name track) filename)
-              (emms-track-set old 'name filename)
-              ;; for re-enter this function
-              (emms-track-set track 'name filename)
-              (setq need-sync t)
-              ;; register to emms-cache-db
-              (when (boundp 'emms-cache-modified-function)
-                (funcall emms-cache-modified-function)
-                (funcall emms-cache-set-function 'file filename old)))
-            (emms-track-set track 'newname nil)
-            ;; set tags to original track
-            (dolist (tag emms-tag-editor-tags)
-              (when (setq val (emms-track-get track (car tag)))
-                (emms-track-set old (car tag) val)))
-            ;; use mp3info to change tag in mp3 file
-            (when (and (eq (emms-track-get track 'type) 'file)
-                       (file-writable-p (emms-track-name track))
-                       (setq func (assoc (file-name-extension filename) 
emms-tag-editor-tagfile-functions)))
-              (setq exit
-                    (if (functionp (cdr func))
-                        (funcall (cdr func) track)
-                      (emms-tag-editor-tag-file track (cadr func) (nth 2 
func))))
-              (if (zerop exit)
-                  (emms-track-get track 'info-mtime (butlast (current-time)))
-                (emms-tag-editor-log
-                 "Changing tags of %s failed with exit value %d"
-                 filename exit)))
-            ;; update track in playlist
-            (when (and (setq pos (emms-track-get track 'position))
-                       (marker-position pos))
-              (set-buffer (marker-buffer pos))
-              (goto-char pos)
-              (funcall emms-playlist-update-track-function))
-            ;; clear modified tag
-            (emms-track-set track 'tag-modified nil))))
-      (if (and (featurep 'emms-cache)
-               need-sync
-               (y-or-n-p "You have changed some track names; sync the cache? 
"))
-          (and (fboundp 'emms-cache-sync) ; silence byte-compiler
-               (emms-cache-sync)))
-      (unless (emms-tag-editor-display-log-buffer-maybe)
-        (message "Setting tags...done"))))
+      (emms-tag-editor-apply tracks)))
hunk ./emms-tag-editor.el 532
+(defun emms-tag-editor-apply (tracks)
+  "Apply all changes made to TRACKS."
+  (message "Setting tags...")
+  (let (filename func exit old pos val need-sync)
+    (save-excursion
+      (dolist (track tracks)
+        (when (emms-track-get track 'tag-modified)
+          (setq filename (emms-track-name track)
+                old (emms-track-get track 'orig-track))
+          ;; rename local file
+          (when (and (emms-track-get track 'newname)
+                     (eq (emms-track-get track 'type) 'file)
+                     (file-writable-p (emms-track-name track))
+                     (y-or-n-p (format "Rename %s to %s? "
+                                       (emms-track-name track)
+                                       (emms-track-get track 'newname))))
+            (setq filename (emms-track-get track 'newname))
+            (rename-file (emms-track-name track) filename)
+            (emms-track-set old 'name filename)
+            ;; for re-enter this function
+            (emms-track-set track 'name filename)
+            (setq need-sync t)
+            ;; register to emms-cache-db
+            (when (boundp 'emms-cache-modified-function)
+              (funcall emms-cache-modified-function)
+              (funcall emms-cache-set-function 'file filename old)))
+          (emms-track-set track 'newname nil)
+          ;; set tags to original track
+          (dolist (tag emms-tag-editor-tags)
+            (when (setq val (emms-track-get track (car tag)))
+            (emms-track-set old (car tag) val)))
+          ;; use mp3info to change tag in mp3 file
+          (when (and (eq (emms-track-get track 'type) 'file)
+                     (file-writable-p (emms-track-name track))
+                     (setq func (assoc (file-name-extension filename)
+                                       emms-tag-editor-tagfile-functions)))
+            (setq exit
+                  (if (functionp (cdr func))
+                      (funcall (cdr func) track)
+                    (emms-tag-editor-tag-file track (cadr func) (nth 2 func))))
+            (if (zerop exit)
+                (emms-track-get track 'info-mtime (butlast (current-time)))
+              (emms-tag-editor-log
+               "Changing tags of %s failed with exit value %d"
+               filename exit)))
+          ;; update track in playlist
+          (when (and (setq pos (emms-track-get track 'position))
+                     (marker-position pos))
+            (set-buffer (marker-buffer pos))
+            (goto-char pos)
+            (funcall emms-playlist-update-track-function))
+          ;; clear modified tag
+          (emms-track-set track 'tag-modified nil))))
+    (if (and (featurep 'emms-cache)
+             need-sync
+             (y-or-n-p "You have changed some track names; sync the cache? "))
+        (and (fboundp 'emms-cache-sync) ; silence byte-compiler
+             (emms-cache-sync)))
+    (unless (emms-tag-editor-display-log-buffer-maybe)
+      (message "Setting tags...done"))))
+
hunk ./emms-tag-editor.el 666
-(defun emms-tag-editor-rename-track (track)
+(defun emms-tag-editor-rename-track (track &optional dont-apply)
hunk ./emms-tag-editor.el 668
-value."
+value.
+
+If DONT-APPLY is non-nil the changes won't be applied directly.
+Then it's the callers job to apply them afterwards with
+`emms-tag-editor-apply'."
hunk ./emms-tag-editor.el 674
-      (let* ((old-file (or (emms-track-get track 'info-file)
-                           (emms-track-get track 'name)))
+      (let* ((old-file (emms-track-name track))
hunk ./emms-tag-editor.el 690
-        ;; Rename the file...
-        (rename-file old-file new-file)
-        ;; ... and update the track and the cache (if used) if the renaming
-        ;; worked.
-        (dolist (info '(name info-file))
-          (emms-track-set track info new-file))
-        (when (featurep 'emms-cache)
-          (emms-cache-del old-file)              ;; delete the old one and...
-          (emms-cache-set 'file new-file track)) ;; ... insert the new one
-        (message "Renamed \"%s\" to \"%s\"." old-file new-file))
+        (emms-track-set track 'newname new-file)
+        (emms-track-set track 'tag-modified t)
+        (unless dont-apply
+          (emms-tag-editor-apply (list track))))
hunk ./emms-tag-editor.el 703
-      (progn
-        (dolist (track tracks)
-          (emms-tag-editor-rename-track track))))))
+      (dolist (track tracks)
+        (emms-tag-editor-rename-track track t))
+      (emms-tag-editor-apply tracks))))
}

[docs-for-editing-tags-and-renaming.dpatch
Tassilo Horn <address@hidden>**20070817150402] {
hunk ./emms-tag-editor.el 549
-            (rename-file (emms-track-name track) filename)
+            (ignore-errors
+              ;; Ignore errors so that renaming multiple files doesn't stop
+              ;; because of one that fails.  In that case it's probably
+              ;; old-file = newfile which causes the problem.
+              (rename-file (emms-track-name track) filename 1))
hunk ./emms.texinfo 1750
-Using @file{emms-tag-editor.el}, emms can set tag info of tracks. With
-the help of external programs, such as `mp3info', `vorbiscomment',
-emms can write the tag info to track file as well.
+Using @file{emms-tag-editor.el}, emms can set tag informations of tracks
+and write them back to the file with the help of external programs, such
+as `mp3info', `vorbiscomment'.
hunk ./emms.texinfo 1754
-Using key `E' to edit tags of current track or marked tracks
-(@pxref{Markable Playlists} for how to mark tracks). The track's info is
-listed in text format. The field name is marked in bold face and not
-editable. And tag info is after an equal sign and is changable. A
-special field `name' is the track file name. If any change made in this
-field, the track file will rename to the new name.
+Use the keybinding @kbd{E} to edit the tags of track under point in the
+playlist or all marked tracks (@pxref{Markable Playlists} for how to
+mark tracks).  The track's tag informations are listed in a special
+buffer `*EMMS-TAGS*' in text format.  Field names are marked in bold
+face and are not editable.  Any tag information is placed behind an
+equal sign and is changable.  A special field `name' is the track's file
+name.  If any change is made in this field, the track's file will be
+renamed to the new name.  When you finished editing the tag infos use
address@hidden C-c} (which calls @code{emms-tag-editor-submit-and-exit}) to
+submit the changes and close the `*EMMS-TAGS*' buffer.
hunk ./emms.texinfo 1765
-A few commands to perform changes on all tracks.
+There are a few commands to perform changes on all tracks.
hunk ./emms.texinfo 1767
address@hidden emms-tag-editor-set-all
-Set specified tag of all tracks to the string reading from minibuffer.
address@hidden emms-tag-editor-set-all tag value
+Set TAG to VALUE in all tracks.
+
+If transient-mark-mode is turned on, you can apply the command to a
+selected region.
+
+If `transient-mark-mode' is on and the mark is active, the changes will
+only take effect on the tracks in the region.
hunk ./emms.texinfo 1777
address@hidden emms-tag-editor-replace-in-tag
-Replace things that matching regexp in specified tag of all tracks.
address@hidden emms-tag-editor-replace-in-tag tag from to
+Query and replace text in selected TAG.
+
+For example, if the info-title tag is selected, then only perform
+replacement in title tags.
+
+If `transient-mark-mode' is on and the mark is active, the changes will
+only take effect on the tracks in the region.
hunk ./emms.texinfo 1787
address@hidden emms-tag-editor-transpose-tag
-Transpose two tag info of all tracks.
address@hidden emms-tag-editor-transpose-tag tag1 tag2
+Transpose value of TAG1 and TAG2.
+
+If `transient-mark-mode' is on and the mark is active, the changes will
+only take effect on the tracks in the region.
hunk ./emms.texinfo 1794
address@hidden emms-tag-editor-submit
-Make changes take effect. `emms-tag-editor-submit-and-exit' does the
-same thing except it bury current buffer.
address@hidden emms-tag-editor-submit arg
+Make modified tags take affect.
+
+With prefix argument, bury the tag edit buffer.
hunk ./emms.texinfo 1800
address@hidden {User Option} emms-tag-editor-formats
+If you want to extend the tag editor to work with file formats other
+than `mp3' and `ogg', have a look at these variables.
+
address@hidden {Variable} emms-tag-editor-formats
hunk ./emms.texinfo 1805
-`emms-tag-editor-edit-buffer'. Emms tag info editable fields is usually
-determined by the extension of track name. The variable
-`emms-tag-editor-tags' contains all tags that emms track may have. A
-single charactar is asign to the tag to make the
+`emms-tag-editor-edit-buffer'.  Emms tag info editable fields is usually
+determined by the extension of track name.  The variable
+`emms-tag-editor-tags' contains all tags that emms track may have.  A
+single charactar is assigned to the tag to make the
hunk ./emms.texinfo 1812
address@hidden {User Option} emms-tag-editor-tagfile-functions
-To write tags to track file, an extern program should specific in this
-variable. Typically, a function should write for other type of track.
-If the extern program has an interface like `mp3info', you don't have
-to write a function. Take `mp3' and `ogg' as example.
address@hidden {Variable} emms-tag-editor-tagfile-functions
+To write tags to track file, an extern program should specified in this
+variable.
+
+If the external program has an interface like `mp3info', you don't have
+to write a function.  Take `mp3' and `ogg' as example.
hunk ./emms.texinfo 1820
address@hidden Renaming Files
+
+The tag editor is also capable to rename the file of the track at point
+or all files of the marked tracks according to the value this variable.
+
address@hidden emms-tag-editor-rename-format
+When `emms-tag-editor-rename' is invoked the track's file will be
+renamed according this format specification.  The file extension will be
+added automatically.
+
+It uses the format specs defined in @code{emms-tag-editor-tags}.
+
+The default value is "%a - %l - %n - %t", so that files are named
+
+  <Artist> - <Album> - <Tracknumber> - <Title>.<extension>
+
+after renaming.
address@hidden defopt
+
+To perform the renaming put point on the track you want to rename or
+mark some tracks.  Then hit @kbd{R} which calls this function:
+
address@hidden emms-tag-editor-rename
+Rename the file corresponding to track at point or all marked tracks
+according to the value of @code{emms-tag-editor-rename-format}.
address@hidden defun
+
}

[Add support for composer and performer tags.
Nix <address@hidden>**20070818133412
 
 The browser keybindings are somewhat discontiguous to avoid breaking
 people's finger macros: browsing by composer and performer are `b 5' and
 `b 6' respectively, where artist is `b 1'. 
 
 In the tag editor, I changed the note format character to %;, making room
 for composer as %c.
 
 I've not added support to last.fm for composer or performer, as it doesn't
 seem to support either. (I suspect that in most cases the composer should
 be reported as the artist if it is present, but that is not impolemented
 here.)
] {
hunk ./emms-browser.el 49
-;; emms-browse-by-TYPE, where TYPE is one of artist, album, genre or
-;; year. These commands can also be used while smart browsing to
+;; emms-browse-by-TYPE, where TYPE is one of artist, album, composer,
+;; genre or year. These commands can also be used while smart browsing to
hunk ./emms-browser.el 85
+;; s c             emms-browser-search-by-composer
hunk ./emms-browser.el 88
+;; s p             emms-browser-search-by-performer
hunk ./emms-browser.el 94
+;; b 5             emms-browse-by-composer
+;; b 6             emms-browse-by-performer
hunk ./emms-browser.el 103
+;; W C p           emms-browser-lookup-composer-on-pitchfork
+;; W C w           emms-browser-lookup-composer-on-wikipedia
+
+;; W P p           emms-browser-lookup-performer-on-pitchfork
+;; W P w           emms-browser-lookup-performer-on-wikipedia
+
hunk ./emms-browser.el 234
+;; %C    the composer name of the track
+;; %p    the performer name of the track
hunk ./emms-browser.el 250
-;; of "year/genre", "artist", "album" or "track". Note that faces lack
-;; the initial "info-" part. For example, to change the artist face,
-;; type M-x customize-face emms-browser-artist-face.
+;; of "year/genre", "artist", "composer", "performer", "album" or
+;; "track". Note that faces lack the initial "info-" part. For example,
+;; to change the artist face, type
+;; M-x customize-face emms-browser-artist-face.
hunk ./emms-browser.el 453
+    (define-key map (kbd "b 5") 'emms-browse-by-composer)
+    (define-key map (kbd "b 6") 'emms-browse-by-performer)
hunk ./emms-browser.el 456
+    (define-key map (kbd "s c") 'emms-browser-search-by-composer)
+    (define-key map (kbd "s p") 'emms-browser-search-by-performer)
hunk ./emms-browser.el 463
+    (define-key map (kbd "W C w") 'emms-browser-lookup-composer-on-wikipedia)
+    (define-key map (kbd "W C p") 'emms-browser-lookup-composer-on-pitchfork)
+    (define-key map (kbd "W P w") 'emms-browser-lookup-performer-on-wikipedia)
+    (define-key map (kbd "W P p") 'emms-browser-lookup-performer-on-pitchfork)
hunk ./emms-browser.el 614
+(emms-browser-add-category "composer" 'info-composer)
+(emms-browser-add-category "performer" 'info-performer)
hunk ./emms-browser.el 719
+   ((eq current-mapping 'info-composer) 'info-album)
+   ((eq current-mapping 'info-performer) 'info-album)
hunk ./emms-browser.el 910
+            (eq type 'info-composer)
+            (eq type 'info-performer)
hunk ./emms-browser.el 1342
+(defun emms-browser-lookup-composer-on-wikipedia ()
+  (interactive)
+  (emms-browser-lookup-wikipedia 'info-composer))
+
+(defun emms-browser-lookup-performer-on-wikipedia ()
+  (interactive)
+  (emms-browser-lookup-wikipedia 'info-performer))
+
hunk ./emms-browser.el 1358
+(defun emms-browser-lookup-composer-on-pitchfork ()
+  (interactive)
+  (emms-browser-lookup-pitchfork 'info-composer))
+
+(defun emms-browser-lookup-composer-on-pitchfork ()
+  (interactive)
+  (emms-browser-lookup-pitchfork 'info-composer))
+
hunk ./emms-browser.el 1552
+(defun emms-browser-search-by-composer ()
+  (interactive)
+  (emms-browser-search '(info-composer)))
+
+(defun emms-browser-search-by-performer ()
+  (interactive)
+  (emms-browser-search '(info-performer)))
+
hunk ./emms-browser.el 1570
-  (emms-browser-search '(info-artist info-title info-album)))
+  (emms-browser-search '(info-artist info-composer info-performer info-title 
info-album)))
hunk ./emms-browser.el 1672
+            ("C" . ,(emms-track-get track 'info-composer))
+            ("p" . ,(emms-track-get track 'info-performer))
hunk ./emms-browser.el 1724
+                 ((eq type 'info-composer) "composer")
+                 ((eq type 'info-performer) "performer")
hunk ./emms-browser.el 1855
+(emms-browser-make-face "composer"   "#aaaaff" "#444477" 1.3)
+(emms-browser-make-face "performer"  "#aaaaff" "#444477" 1.3)
hunk ./emms-info-ogg.el 80
+      (emms-track-set track 'info-composer (emms-info-ogg-get-comment 
"composer" info))
+      (emms-track-set track 'info-performer (emms-info-ogg-get-comment 
"performer" info))
hunk ./emms-info.el 33
+;; info-composer - string naming the composer
+;; info-performer - string naming the performer
hunk ./emms-player-mpd.el 1067
+                       ((string= name "composer") 'info-composer)
+                       ((string= name "performer") 'info-performer)
hunk ./emms-playlist-limit.el 88
+(define-emms-playlist-limit info-composer)
+(define-emms-playlist-limit info-performer)
hunk ./emms-playlist-limit.el 103
+(define-key emms-playlist-mode-map (kbd "/ c") 
'emms-playlist-limit-to-info-composer)
+(define-key emms-playlist-mode-map (kbd "/ p") 
'emms-playlist-limit-to-info-performer)
hunk ./emms-playlist-sort.el 39
-info-title info-album info-genre info-playing-time
-info-tracknumber."
+imfo-composer info-performer info-title info-album info-genre
+info-playing-time info-tracknumber."
hunk ./emms-playlist-sort.el 59
+(define-emms-playlist-sort info-composer)
+(define-emms-playlist-sort info-performer)
hunk ./emms-playlist-sort.el 91
+     (define-key emms-playlist-mode-map (kbd "S c") 
'emms-playlist-sort-by-info-composer)
+     (define-key emms-playlist-mode-map (kbd "S p") 
'emms-playlist-sort-by-info-performer)
hunk ./emms-playlist-sort.el 147
-        ((name info-artist info-title info-album info-genre)
+        ((name info-artist info-composer info-performer info-title info-album 
info-genre)
hunk ./emms-tag-editor.el 40
+    (info-composer    . "c")
+    (info-performer   . "p")
hunk ./emms-tag-editor.el 48
-    (info-note        . "c"))
+    (info-note        . ";"))
hunk ./emms-tag-editor.el 84
+ c     --     Track info-composer
+ p     --     Track info-performer
hunk ./emms-tag-editor.el 91
- c     --     Track info-note
+ ;     --     Track info-note
hunk ./emms-tag-editor.el 141
-          '("artist" "title" "album" "tracknumber" "date" "genre" "note"))
+          '("artist" "composer" "performer" "title" "album" "tracknumber" 
"date" "genre" "note"))
}

[XEmacs does not load the overlay functions by default: load them here.
Nix <address@hidden>**20070818134016] {
hunk ./emms-compat.el 30
+
+(if (string-match "XEmacs" (emacs-version))
+    (require 'overlay))
}

[Use slightly different XEmacs overlay fix
Michael Olson <address@hidden>**20070818185218] {
hunk ./emms-compat.el 30
-
-(if (string-match "XEmacs" (emacs-version))
-    (require 'overlay))
hunk ./emms-tag-editor.el 32
+(eval-when-compile
+  (condition-case nil
+      (require 'overlay)
+    (error nil)))
}

[Drop eval-when-compile around (require 'overlay)
Michael Olson <address@hidden>**20070819150408] {
hunk ./emms-playlist-mode.el 38
-(eval-when-compile
-  (condition-case nil
-      (require 'overlay)
-    (error nil)))
+(condition-case nil
+    (require 'overlay)
+  (error nil))
hunk ./emms-tag-editor.el 32
-(eval-when-compile
-  (condition-case nil
-      (require 'overlay)
-    (error nil)))
+(condition-case nil
+    (require 'overlay)
+  (error nil))
}

Context:

[fix-cache-problem-when-renaming-tracks.dpatch
Tassilo Horn <address@hidden>**20070816070106
 
 I fixed the problem with the cache I mentioned in my last patch.
] 
[support-for-renaming-files-with-tag-editor.dpatch
Tassilo Horn <address@hidden>**20070815183247
 
 With `R' in a playlist (calls `emms-tag-editor-rename') the file(s)
 corresponding to the (marked) track(s) or the track at point will be renamed
 according to the format specified in `emms-tag-editor-rename-format'.
 
 Work ok for me, but there's a little problem maybe someone can fix:
 
   - If users use the cache it has to be updated somehow.  `emms-cache-sync'
     seems to remove the renamed files.  So you have to re-insert all renamed
     tracks to get them into the cache again.
] 
[refinements-and-docs-for-emms-history.dpatch
Tassilo Horn <address@hidden>**20070815080114
 
 This path makes some refinements in emms-history.el:
 
   - Start playback after `emms-history-load' only if
     `emms-history-start-playing' is non-nil.
   - Added customization group emms-history
   - defvar -> defcustom
   - better docstrings and commentary
   - Added Info docs. (Node "Persistent Playlists")
] 
[emms-score.el: change score-file to something more sane
address@hidden
 
 ~/.emms can be an EMMS config file, whereas ~/.emacs.d/ is already used
 to store the stream bookmarks file, so use it for the score file too.
] 
[make-S-prefix-key-for-sorting-functions.dpatch
Tassilo Horn <address@hidden>**20070802200758] 
[Fix compiler warning in emms-setup
Michael Olson <address@hidden>**20070723023532] 
[emms-playlist-limit: Use standard enable/disable/toggle interface
Michael Olson <address@hidden>**20070723023452] 
[emms-streams: New option emms-stream-repeat-p
Michael Olson <address@hidden>**20070723020304
 
 Instead of assuming that everyone will want to automatically repeat a
 streamlist if it runs out of tracks, make this controlled by the
 `emms-stream-repeat-p' option, which defaults to nil.
 
] 
[emms-player-mpd: Fix bug with selecting an individual URL track to play from a 
streamlist
Michael Olson <address@hidden>**20070723015956] 
[emms-player-mpd: Make callback arg for emms-player-mpd-sync-from-emms optional
Michael Olson <address@hidden>**20070723015722] 
[emms-playlist-sort.el: Bind "s s" to emms-playlist-sort-by-score.
William Xu <address@hidden>**20070719065003] 
[emms-setup.el: Enable emms-score in emms-devel.
William Xu <address@hidden>**20070717131538] 
[emms-lyrics.el: Set default value for emms-lyrics-dir to ~/music/lyrics.
William Xu <address@hidden>**20070717100946] 
[emms-playlist-sort.el: Remove emms-playlist-sort-prefix to make the
William Xu <address@hidden>**20070717095454
 codes more clean. And steal "s" prefix key from
 `emms-playlist-mode'. (An alternative for emms-playlist-mode could be
 "v", same as XMMS)
] 
[emms-playlist-limit.el: (define-emms-playlist-limit) Fix prompt string bug.
William Xu <address@hidden>**20070717082536] 
[make-number-of-secs-to-seek-configurable.dpatch
Tassilo Horn <address@hidden>**20070712062052
 
 Patch sent by "Alfred M. Szmidt" <address@hidden> in
 <address@hidden> on the emms-users list (with
 slight modifications).
] 
[Avoid even the most remote possibility of a conflict with color-theme.el and 
its very bad replace-in-string function
Michael Olson <address@hidden>**20070712211444] 
[emms-playlist-limit.el: Add missing line: (define-emms-playlist-limit 
info-title).
William Xu <address@hidden>**20070711071022] 
[emms-playlist-limit.el: Minor updates.
William Xu <address@hidden>**20070709103714] 
[emms-playlist-limit.el: Update Copyright to GPLv3.
William Xu <address@hidden>**20070708140012] 
[emms-playlist-sort.el: Minor updates.
William Xu <address@hidden>**20070708120050] 
[emms-playlist-limit.el: Redefine functions emms-playlist-limit-to-* with
William Xu <address@hidden>**20070708115907
 macro: define-emms-playlist-limit.
] 
[emms-playlist-limit.el: Add default value based on track at point for
William Xu <address@hidden>**20070708040809
 emms-playlist-limit-to-*.
] 
[New file: emms-playlist-limit.el. And minor updates to emms-playlist-sort.
William Xu <address@hidden>**20070705160221] 
[emms-player-mplayer.el: Add "eng.srt", "chs.srt", "cht.srt" to
William Xu <address@hidden>**20070630124728
 emms-player-mplayer-subtitle-extensions.
] 
[Updated NEWS for post-3.0
address@hidden 
[TAG 3.0
address@hidden 
Patch bundle hash:
a4865392a91a032c4182310160f3f80d9a2103ae

reply via email to

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