emms-patches
[Top][All Lists]
Advanced

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

[Emms-patches] darcs patch: Add support for composer and performer t...


From: Nix
Subject: [Emms-patches] darcs patch: Add support for composer and performer t... (and 1 more)
Date: Sat, 18 Aug 2007 19:01:06 +0100

Sat Aug 18 14:34:12 BST 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 14:40:16 BST 2007  Nix <address@hidden>
  * XEmacs does not load the overlay functions by default: load them here.
New patches:

[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
 ;; c) the extra window closed, and both buffers buried
 
 ;; If you just want access to the browser, try M-x
-;; 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
 ;; change the browsing category.
 
 ;; If you don't want to activate the code with (emms-devel), you can
hunk ./emms-browser.el 85
 
 ;; s A             emms-browser-search-by-album
 ;; s a             emms-browser-search-by-artist
+;; s c             emms-browser-search-by-composer
 ;; s s             emms-browser-search-by-names
 ;; s t             emms-browser-search-by-title
hunk ./emms-browser.el 88
+;; s p             emms-browser-search-by-performer
 
 ;; b 1             emms-browse-by-artist
 ;; b 2             emms-browse-by-album
hunk ./emms-browser.el 94
 ;; b 3             emms-browse-by-genre
 ;; b 4             emms-browse-by-year
+;; b 5             emms-browse-by-composer
+;; b 6             emms-browse-by-performer
 
 ;; W a p           emms-browser-lookup-album-on-pitchfork
 ;; W a w           emms-browser-lookup-album-on-wikipedia
hunk ./emms-browser.el 103
 ;; W A p           emms-browser-lookup-artist-on-pitchfork
 ;; W A w           emms-browser-lookup-artist-on-wikipedia
 
+;; 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
+
 ;; Displaying covers
 ;; -------------------------------------------------------------------
 
hunk ./emms-browser.el 234
 ;; %y    the album year
 ;; %A    the album name
 ;; %a    the artist name of the track
+;; %C    the composer name of the track
+;; %p    the performer name of the track
 ;; %t    the title of the track
 ;; %T    the track number
 ;; %cS   a small album cover
hunk ./emms-browser.el 250
 
 ;; The faces used to display the various fields are also customizable.
 ;; They are in the format emms-browser-<type>-face, where type is one
-;; 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.
 
 ;; Deleting files
 ;; -------------------------------------------------------------------
hunk ./emms-browser.el 453
     (define-key map (kbd "b 2") 'emms-browse-by-album)
     (define-key map (kbd "b 3") 'emms-browse-by-genre)
     (define-key map (kbd "b 4") 'emms-browse-by-year)
+    (define-key map (kbd "b 5") 'emms-browse-by-composer)
+    (define-key map (kbd "b 6") 'emms-browse-by-performer)
     (define-key map (kbd "s a") 'emms-browser-search-by-artist)
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)
     (define-key map (kbd "s A") 'emms-browser-search-by-album)
     (define-key map (kbd "s t") 'emms-browser-search-by-title)
     (define-key map (kbd "s s") 'emms-browser-search-by-names)
hunk ./emms-browser.el 463
     (define-key map (kbd "W A w") 'emms-browser-lookup-artist-on-wikipedia)
     (define-key map (kbd "W A p") 'emms-browser-lookup-artist-on-pitchfork)
+    (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)
     (define-key map (kbd "W a w") 'emms-browser-lookup-album-on-wikipedia)
     (define-key map (kbd "W a p") 'emms-browser-lookup-album-on-pitchfork)
     (define-key map (kbd ">") 'emms-browser-next-filter)
hunk ./emms-browser.el 614
     (goto-char (point-min))))
 
 (emms-browser-add-category "artist" 'info-artist)
+(emms-browser-add-category "composer" 'info-composer)
+(emms-browser-add-category "performer" 'info-performer)
 (emms-browser-add-category "album" 'info-album)
 (emms-browser-add-category "genre" 'info-genre)
 (emms-browser-add-category "year" 'info-year)
hunk ./emms-browser.el 719
 Eg. if CURRENT-MAPPING is currently 'info-artist, return 'info-album."
   (cond
    ((eq current-mapping 'info-artist) 'info-album)
+   ((eq current-mapping 'info-composer) 'info-album)
+   ((eq current-mapping 'info-performer) 'info-album)
    ((eq current-mapping 'info-album) 'info-title)
    ((eq current-mapping 'info-genre) 'info-artist)
    ((eq current-mapping 'info-year) 'info-artist)))
hunk ./emms-browser.el 910
          (cond
           ((or
             (eq type 'info-artist)
+            (eq type 'info-composer)
+            (eq type 'info-performer)
             (eq type 'info-year)
             (eq type 'info-genre))
            'emms-browser-sort-by-name)
hunk ./emms-browser.el 1342
   (interactive)
   (emms-browser-lookup-wikipedia 'info-artist))
 
+(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))
+
 (defun emms-browser-lookup-album-on-wikipedia ()
   (interactive)
   (emms-browser-lookup-wikipedia 'info-album))
hunk ./emms-browser.el 1358
   (interactive)
   (emms-browser-lookup-pitchfork 'info-artist))
 
+(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))
+
 (defun emms-browser-lookup-album-on-pitchfork ()
   (interactive)
   (emms-browser-lookup-pitchfork 'info-album))
hunk ./emms-browser.el 1552
   (interactive)
   (emms-browser-search '(info-artist)))
 
+(defun emms-browser-search-by-composer ()
+  (interactive)
+  (emms-browser-search '(info-composer)))
+
+(defun emms-browser-search-by-performer ()
+  (interactive)
+  (emms-browser-search '(info-performer)))
+
 (defun emms-browser-search-by-title ()
   (interactive)
   (emms-browser-search '(info-title)))
hunk ./emms-browser.el 1570
 
 (defun emms-browser-search-by-names ()
   (interactive)
-  (emms-browser-search '(info-artist info-title info-album)))
+  (emms-browser-search '(info-artist info-composer info-performer info-title 
info-album)))
 
 ;; --------------------------------------------------
 ;; Album covers
hunk ./emms-browser.el 1672
             ("y" . ,(emms-track-get track 'info-year))
             ("A" . ,(emms-track-get track 'info-album))
             ("a" . ,(emms-track-get track 'info-artist))
+            ("C" . ,(emms-track-get track 'info-composer))
+            ("p" . ,(emms-track-get track 'info-performer))
             ("t" . ,(emms-track-get track 'info-title))
             ("T" . ,(emms-browser-track-number track))
             ("cS" . ,(emms-browser-get-cover-str path 'small))
hunk ./emms-browser.el 1724
                 ((or (eq type 'info-year)
                      (eq type 'info-genre)) "year/genre")
                  ((eq type 'info-artist) "artist")
+                 ((eq type 'info-composer) "composer")
+                 ((eq type 'info-performer) "performer")
                  ((eq type 'info-album) "album")
                  ((eq type 'info-title) "track"))))
     (intern
hunk ./emms-browser.el 1855
 
 (emms-browser-make-face "year/genre" "#aaaaff" "#444477" 1.5)
 (emms-browser-make-face "artist"     "#aaaaff" "#444477" 1.3)
+(emms-browser-make-face "composer"   "#aaaaff" "#444477" 1.3)
+(emms-browser-make-face "performer"  "#aaaaff" "#444477" 1.3)
 (emms-browser-make-face "album"      "#aaaaff" "#444477" 1.1)
 (emms-browser-make-face "track"      "#aaaaff" "#444477" 1.0)
 
hunk ./emms-info-ogg.el 80
 
       (emms-track-set track 'info-title (emms-info-ogg-get-comment "title" 
info))
       (emms-track-set track 'info-artist (emms-info-ogg-get-comment "artist" 
info))
+      (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))
       (emms-track-set track 'info-album (emms-info-ogg-get-comment "album" 
info))
       (emms-track-set track 'info-note (emms-info-ogg-get-comment "comment" 
info))
       (emms-track-set track 'info-year (emms-info-ogg-get-comment "date" info))
hunk ./emms-info.el 33
 ;; are defined:
 
 ;; info-artist - string naming the artist
+;; info-composer - string naming the composer
+;; info-performer - string naming the performer
 ;; info-title - string naming the title of the song
 ;; info-album - string naming the album
 ;; info-tracknumber - string(?) naming the track number
hunk ./emms-player-mpd.el 1067
     (let ((name (car data))
           (value (cdr data)))
       (setq name (cond ((string= name "artist") 'info-artist)
+                       ((string= name "composer") 'info-composer)
+                       ((string= name "performer") 'info-performer)
                        ((string= name "title") 'info-title)
                        ((string= name "album") 'info-album)
                        ((string= name "track") 'info-tracknumber)
hunk ./emms-playlist-limit.el 88
      (emms-playlist-limit-do (quote ,attribute) regexp)))
 
 (define-emms-playlist-limit info-artist)
+(define-emms-playlist-limit info-composer)
+(define-emms-playlist-limit info-performer)
 (define-emms-playlist-limit info-title)
 (define-emms-playlist-limit info-album)
 (define-emms-playlist-limit info-year)
hunk ./emms-playlist-limit.el 103
 
 (define-key emms-playlist-mode-map (kbd "/ n") 'emms-playlist-limit-to-name)
 (define-key emms-playlist-mode-map (kbd "/ a") 
'emms-playlist-limit-to-info-artist)
+(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)
 (define-key emms-playlist-mode-map (kbd "/ t") 
'emms-playlist-limit-to-info-title)
 (define-key emms-playlist-mode-map (kbd "/ b") 
'emms-playlist-limit-to-info-album)
 (define-key emms-playlist-mode-map (kbd "/ y") 
'emms-playlist-limit-to-info-year)
hunk ./emms-playlist-sort.el 39
 (defcustom emms-playlist-sort-list '(info-artist info-album)
   "Sorting list used by `emms-playlist-sort-by-list'.
 Currently it understands the following fields: name info-artist
-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."
   :type 'symbol
   :group 'emms-playlist-sort)
 
hunk ./emms-playlist-sort.el 59
 
 (define-emms-playlist-sort name)
 (define-emms-playlist-sort info-artist)
+(define-emms-playlist-sort info-composer)
+(define-emms-playlist-sort info-performer)
 (define-emms-playlist-sort info-title)
 (define-emms-playlist-sort info-album)
 (define-emms-playlist-sort info-year)
hunk ./emms-playlist-sort.el 91
   '(progn
      (define-key emms-playlist-mode-map (kbd "S n") 
'emms-playlist-sort-by-name)
      (define-key emms-playlist-mode-map (kbd "S a") 
'emms-playlist-sort-by-info-artist)
+     (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)
      (define-key emms-playlist-mode-map (kbd "S t") 
'emms-playlist-sort-by-info-title)
      (define-key emms-playlist-mode-map (kbd "S b") 
'emms-playlist-sort-by-info-album)
      (define-key emms-playlist-mode-map (kbd "S y") 
'emms-playlist-sort-by-info-year)
hunk ./emms-playlist-sort.el 147
   (catch 'return
     (dolist (info emms-playlist-sort-list)
       (case info
-        ((name info-artist info-title info-album info-genre)
+        ((name info-artist info-composer info-performer info-title info-album 
info-genre)
          (when (emms-string< (emms-track-get a info)
                         (emms-track-get b info))
            (throw 'return t)))
hunk ./emms-tag-editor.el 40
 
 (defvar emms-tag-editor-tags
   '((info-artist      . "a")
+    (info-composer    . "c")
+    (info-performer   . "p")
     (info-title       . "t")
     (info-album       . "l")
     (info-tracknumber . "n")
hunk ./emms-tag-editor.el 48
     (info-year        . "y")
     (info-genre       . "g")
     (info-date        . "d")
-    (info-note        . "c"))
+    (info-note        . ";"))
   "An alist to determine the format of various info tags.")
 
 (defvar emms-tag-editor-edit-buffer "*EMMS-TAGS*"
hunk ./emms-tag-editor.el 84
  m     --     Track description
  f     --     Track name
  a     --     Track info-artist
+ c     --     Track info-composer
+ p     --     Track info-performer
  t     --     Track info-title
  l     --     Track info-album
  n     --     Track info-tracknumber
hunk ./emms-tag-editor.el 91
  y     --     Track info-year
  g     --     Track info-genre
- c     --     Track info-note
+ ;     --     Track info-note
 
 You can add new specifications in `emms-tag-editor-tags', and use
 `emms-tag-editor-make-format' to create a new format string.
hunk ./emms-tag-editor.el 141
             (let ((info-tag (intern (concat "info-" tag))))
               (when (> (length (setq val (emms-track-get track info-tag))) 0)
                 (setq args (append (list "-t" (concat (upcase tag) "=" val)) 
args)))))
-          '("artist" "title" "album" "tracknumber" "date" "genre" "note"))
+          '("artist" "composer" "performer" "title" "album" "tracknumber" 
"date" "genre" "note"))
     (when args
       (apply #'call-process "vorbiscomment" nil
              (get-buffer-create emms-tag-editor-log-buffer)
}
[XEmacs does not load the overlay functions by default: load them here.
Nix <address@hidden>**20070818134016] 
<
> {
hunk ./emms-compat.el 30
 ;; compatible with various Emacs and XEmacs versions.
 
 ;;; Code:
+
+(if (string-match "XEmacs" (emacs-version))
+    (require 'overlay))
 
 
 ;;; Miscellaneous
}

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:
3493b5d711629110bd65c08e2a6482d2254ab83b

reply via email to

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