branch: externals/ampc
commit 383074a3b17ab672999d6e3f5564a642924bb79e
Author: Christopher Schmidt <christop...@ch.ristopher.com>
Commit: Christopher Schmidt <christop...@ch.ristopher.com>

    * ampc.el: Name views.
    (ampc-views): Add description to each view.
    (ampc-mode-map): Add change view menu items.
    (ampc-change-view): New function.
    All users of ampc-views changed to reflect the new format.
---
 ampc.el | 39 ++++++++++++++++++++++++++-------------
 1 file changed, 26 insertions(+), 13 deletions(-)

diff --git a/ampc.el b/ampc.el
index 0b1d660ced..bab02578a1 100644
--- a/ampc.el
+++ b/ampc.el
@@ -291,19 +291,22 @@ all the time!"
                     ("Artist" :offset 20)
                     ("Album" :offset 40)
                     ("Time" :offset 60))))
-    `((,(kbd "J")
+    `(("Current playlist view (Genre|Artist|Album)"
+       ,(kbd "J")
        horizontal
        (0.4 vertical
             (6 status)
             (1.0 current-playlist :properties ,pl-prop))
        ,rs_a)
-      (,(kbd "M")
+      ("Current playlist view (Genre|Album|Artist)"
+       ,(kbd "M")
        horizontal
        (0.4 vertical
             (6 status)
             (1.0 current-playlist :properties ,pl-prop))
        ,rs_b)
-      (,(kbd "K")
+      ("Playlist view (Genre|Artist|Album)"
+       ,(kbd "K")
        horizontal
        (0.4 vertical
             (6 status)
@@ -311,7 +314,8 @@ all the time!"
                  (0.8 playlist :properties ,pl-prop)
                  (1.0 playlists)))
        ,rs_a)
-      (,(kbd "<")
+      ("Playlist view (Genre|Album|Artist)"
+       ,(kbd "<")
        horizontal
        (0.4 vertical
             (6 status)
@@ -319,7 +323,8 @@ all the time!"
                  (0.8 playlist :properties ,pl-prop)
                  (1.0 playlists)))
        ,rs_b)
-      (,(kbd "L")
+      ("Outputs view"
+       ,(kbd "L")
        outputs :properties (("outputname" :title "Name")
                             ("outputenabled" :title "Enabled" :offset 10))))))
 
@@ -368,12 +373,10 @@ all the time!"
     (define-key map (kbd "z") 'ampc-suspend)
     (define-key map (kbd "T") 'ampc-trigger-update)
     (loop for view in ampc-views
-          do (define-key map (car view)
+          do (define-key map (cadr view)
                `(lambda ()
                   (interactive)
-                  (if (equal ampc-outstanding-commands '((idle)))
-                      (ampc-configure-frame ',(cdr view))
-                    (message "ampc is busy, cannot change window layout")))))
+                  (ampc-change-view ',view))))
     map))
 
 (defvar ampc-item-mode-map
@@ -424,9 +427,14 @@ all the time!"
     map))
 
 ;;; **** menu
-(easy-menu-define nil ampc-mode-map
-  nil
-  '("ampc"
+(easy-menu-define nil ampc-mode-map nil
+  `("ampc"
+    ("Change view" ,@(loop for view in ampc-views
+                           collect (vector (car view)
+                                           `(lambda ()
+                                              (interactive)
+                                              (ampc-change-view ',view)))))
+    "--"
     ["Play" ampc-toggle-play
      :visible (and ampc-status
                    (not (equal (cdr (assq 'state ampc-status)) "play")))]
@@ -589,6 +597,11 @@ all the time!"
               (2 'ampc-current-song-marked-face)))))
 
 ;;; *** internal functions
+(defun ampc-change-view (view)
+  (if (equal ampc-outstanding-commands '((idle)))
+      (ampc-configure-frame (cddr view))
+    (message "ampc is busy, cannot change window layout")))
+
 (defun ampc-quote (string)
   (concat "\"" (replace-regexp-in-string "\"" "\\\"" string) "\""))
 
@@ -1853,7 +1866,7 @@ connect to.  The values default to localhost:6600."
     (set-process-filter ampc-connection 'ampc-filter)
     (set-process-query-on-exit-flag ampc-connection nil)
     (setf ampc-outstanding-commands '((setup))))
-  (ampc-configure-frame (cdar ampc-views))
+  (ampc-configure-frame (cddar ampc-views))
   (run-hooks 'ampc-connected-hook)
   (ampc-filter (process-buffer ampc-connection) nil))
 

Reply via email to