aboutsummaryrefslogtreecommitdiff
path: root/emms-browser.el
diff options
context:
space:
mode:
Diffstat (limited to 'emms-browser.el')
-rw-r--r--emms-browser.el69
1 files changed, 63 insertions, 6 deletions
diff --git a/emms-browser.el b/emms-browser.el
index 48df21c..171eaaa 100644
--- a/emms-browser.el
+++ b/emms-browser.el
@@ -46,8 +46,8 @@
;; 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
@@ -82,13 +82,17 @@
;; 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
+;; s p emms-browser-search-by-performer
;; b 1 emms-browse-by-artist
;; b 2 emms-browse-by-album
;; 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
@@ -96,6 +100,12 @@
;; 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
;; -------------------------------------------------------------------
@@ -221,6 +231,8 @@
;; %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
@@ -235,9 +247,10 @@
;; 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
;; -------------------------------------------------------------------
@@ -437,12 +450,20 @@ Called once for each directory."
(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)
+ (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)
(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)
@@ -590,6 +611,8 @@ example function is `emms-browse-by-artist'."
(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)
@@ -693,6 +716,8 @@ browser, and hit 'b 1' to refresh.")))
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)))
@@ -882,6 +907,8 @@ Uses `emms-browser-alpha-sort-function'."
(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)
@@ -1312,6 +1339,14 @@ Disabled by default."
(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))
@@ -1320,6 +1355,14 @@ Disabled by default."
(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))
@@ -1506,6 +1549,14 @@ included."
(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)))
@@ -1516,7 +1567,7 @@ included."
(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
@@ -1618,6 +1669,8 @@ If > album level, most of the track data will not make sense."
("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))
@@ -1668,6 +1721,8 @@ If > album level, most of the track data will not make sense."
((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
@@ -1797,6 +1852,8 @@ the text that it generates."
(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)