From unknown Sun Jun 22 11:47:54 2025 X-Loop: help-debbugs@gnu.org Subject: bug#74200: [PATCH] Add song viewer to 'mpc' Resent-From: john muhl Original-Sender: "Debbugs-submit" Resent-CC: monnier@iro.umontreal.ca, bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Nov 2024 03:28:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 74200 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 74200@debbugs.gnu.org Cc: monnier@iro.umontreal.ca X-Debbugs-Original-To: bug-gnu-emacs@gnu.org X-Debbugs-Original-Xcc: monnier@iro.umontreal.ca Received: via spool by submit@debbugs.gnu.org id=B.17306908242833 (code B ref -1); Mon, 04 Nov 2024 03:28:02 +0000 Received: (at submit) by debbugs.gnu.org; 4 Nov 2024 03:27:04 +0000 Received: from localhost ([127.0.0.1]:36829 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t7nk7-0000jb-Dx for submit@debbugs.gnu.org; Sun, 03 Nov 2024 22:27:04 -0500 Received: from lists.gnu.org ([209.51.188.17]:44318) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t7nk3-0000jB-Fj for submit@debbugs.gnu.org; Sun, 03 Nov 2024 22:27:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t7nk3-0001AN-3t for bug-gnu-emacs@gnu.org; Sun, 03 Nov 2024 22:26:59 -0500 Received: from fhigh-a8-smtp.messagingengine.com ([103.168.172.159]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t7nk1-0004tU-9X for bug-gnu-emacs@gnu.org; Sun, 03 Nov 2024 22:26:58 -0500 Received: from phl-compute-02.internal (phl-compute-02.phl.internal [10.202.2.42]) by mailfhigh.phl.internal (Postfix) with ESMTP id 4FC7511400C6 for ; Sun, 3 Nov 2024 22:26:54 -0500 (EST) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-02.internal (MEProxy); Sun, 03 Nov 2024 22:26:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pub.pink; h=cc :content-type:content-type:date:date:from:from:in-reply-to :message-id:mime-version:reply-to:subject:subject:to:to; s=fm3; t=1730690814; x=1730777214; bh=NHon8EydSp6YquQIWCtaoLrCReby+Sc9 JFHiRa/MXDQ=; b=Cci7PB9mrpF8XDpN6cR/ySVFXOk1rLxP5HwQD45wvOOlf8l4 nUJbO6/GwomZ84FK5G55W3n2sZM7aXqic5zr++MwEcFtySLIzyTQxgnhgGGIwSsc +duVN5EZxN5CUs/wbJbYISgeptElt48jOItnj5r6Z8jXRZoaJ59K5J0JlkNzlm8x VHix/oN/4FmRI2Raa1XF3GPHyvb9JLb1jOgerEUQehCLGhTo6eiBDrYy67SmvyYD KvRsmwVW/AEFJoinzYdUD4Exlwbv+IdNwRaw6Eo4BZWt2VD7702kvQFZRCcOj8V9 rfHz06qyaBXy31FGqQo2ylL/M6BQlWHsYskCmw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1730690814; x= 1730777214; bh=NHon8EydSp6YquQIWCtaoLrCReby+Sc9JFHiRa/MXDQ=; b=U +9Lgu/uSzQEP2hzdF9mkQMHBNx0iiUzyaJO4qMN0npwCzpAvOau7lHJ6bJ/SkkZc kQ9poTlhzEQB1AqlOx4n8zwlGfj1nkV/1k5YAX0Gt/g7rk2KV7LxrcuT5AxGcJfT /9RdQLpa/Kugvlo50uaC9QiNSu41VpWtbSKAbn0Czrr0M4rX7/Hm/NgBAYITyQPH kAC/jys3BsHLtp4q7UKJKDjZdMIaYZS3Lk/Gr68gZggPsbsG7jyRacoPFzbfVGJb 5epJ1FNgJbTpf9TJzm4s774TfFBTfWjsl4RVgVDD7cXNh/zVVss99GHadrqrLQT5 bYkuy/3/ezkx5EyaHEtwg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdelhedgheelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucenucfjughrpefhvffuff fkgggtsehttdertddttddtnecuhfhrohhmpehjohhhnhcumhhuhhhluceojhhmsehpuhgs rdhpihhnkheqnecuggftrfgrthhtvghrnhepgefhudekueehudeugffhgfegfeevhfetje ehhfeuleffgfeguedtffdvteeutedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghr rghmpehmrghilhhfrhhomhepjhhmsehpuhgsrdhpihhnkhdpnhgspghrtghpthhtohepud dpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepsghughdqghhnuhdqvghmrggtshes ghhnuhdrohhrgh X-ME-Proxy: Feedback-ID: i74194916:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Sun, 3 Nov 2024 22:26:53 -0500 (EST) From: john muhl Date: Sun, 03 Nov 2024 21:26:52 -0600 Message-ID: <874j4n1xxf.fsf@pub.pink> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=103.168.172.159; envelope-from=jm@pub.pink; helo=fhigh-a8-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.6 (--) Tags: patch This adds a mpc-describe-song command which brings up a buffer full of information about the selected song. From unknown Sun Jun 22 11:47:54 2025 X-Loop: help-debbugs@gnu.org Subject: bug#74200: [PATCH] Add song viewer to 'mpc' Resent-From: john muhl Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Nov 2024 03:31:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 74200 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 74200@debbugs.gnu.org Cc: monnier@iro.umontreal.ca Received: via spool by 74200-submit@debbugs.gnu.org id=B74200.17306910033018 (code B ref 74200); Mon, 04 Nov 2024 03:31:01 +0000 Received: (at 74200) by debbugs.gnu.org; 4 Nov 2024 03:30:03 +0000 Received: from localhost ([127.0.0.1]:36849 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t7nn0-0000mS-CL for submit@debbugs.gnu.org; Sun, 03 Nov 2024 22:30:03 -0500 Received: from fout-a4-smtp.messagingengine.com ([103.168.172.147]:60013) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t7nmx-0000lp-Ub for 74200@debbugs.gnu.org; Sun, 03 Nov 2024 22:30:00 -0500 Received: from phl-compute-08.internal (phl-compute-08.phl.internal [10.202.2.48]) by mailfout.phl.internal (Postfix) with ESMTP id B2F471380121; Sun, 3 Nov 2024 22:29:54 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-08.internal (MEProxy); Sun, 03 Nov 2024 22:29:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pub.pink; h=cc :cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1730690994; x=1730777394; bh=JPzvjh2duF GHxSyNRdLjLXLAmF3nf/w/JOj/WiVSr/8=; b=GWM1t7aue82zTSvyykcayp6rKY pg11zZuqr/e0vAtMwy0LHO4TmyaUVnWaysb+t6aPVVeQi44Sxp/64ZsdzRjPqMM2 LjID4si/ZfU1+DMP3YfBMBFcqltgk8shOvXZenL//TZMonTXt0vjUc7Z8XlNXB0p KrSpIrbnGF6VwXwzVMJZ0na+OB4MwSm9iyCBy0FzRJTcipvqXuaQCoh+BN/ZI18q MjeyM/9WZSLmIveHfu4ZOXdthAbFuXBF8kO27SesKU+xq19FLbO9XeYiAuGK5w5O urhKCTvg3IWgVqGPWZeXwPF7WAKswByMfSSFocSpfVNHKVCDxkPqaf3JbtxA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1730690994; x=1730777394; bh=JPzvjh2duFGHxSyNRdLjLXLAmF3nf/w/JOj /WiVSr/8=; b=YovN72PRcu8Dzk7fN0PzIMi+di0rl1PF7Uk/ZEBgUrVZoJfyMG2 RwofUhCGZ9CYgHc77jHsrrJLWBeiuZL1NXAjOKpCvAD6GL5g8jTo5gS7qzu4aoIR zYsS5IyNgFtR/3DSxDgCV1+a/wQfEUy2zjhrGJ5BLAdtZqw1LS0ci1PZVKSSxo+P cm0AOgfbzgpyjtcp/q/yRX4QRyUtnEu7lO8jf6O6NdI+lr0tNkbyIH3dXLF43JSJ BKUwvtu7gWeSbmUit7i7pvms9oVvG8+IE6cn26A1lh/nrcQSdhdqacta3oUIEKcJ tKBo/RHxfbyusGStXs9/yAvbgIsLDHHFlLA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdelhedgheelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucenucfjughrpefhvfevuf gjfhgffffkgggtsehmtderredtredtnecuhfhrohhmpehjohhhnhcumhhuhhhluceojhhm sehpuhgsrdhpihhnkheqnecuggftrfgrthhtvghrnhepffduledtfffhjeduheeghfefle dtfeetfffgtdevleeiudehueffudejveffvddtnecuvehluhhsthgvrhfuihiivgeptden ucfrrghrrghmpehmrghilhhfrhhomhepjhhmsehpuhgsrdhpihhnkhdpnhgspghrtghpth htohepvddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepmhhonhhnihgvrhesihhr ohdruhhmohhnthhrvggrlhdrtggrpdhrtghpthhtohepjeegvddttdesuggvsggsuhhgsh drghhnuhdrohhrgh X-ME-Proxy: Feedback-ID: i74194916:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 3 Nov 2024 22:29:54 -0500 (EST) From: john muhl In-Reply-To: <874j4n1xxf.fsf@pub.pink> (john muhl's message of "Sun, 03 Nov 2024 21:26:52 -0600") References: <874j4n1xxf.fsf@pub.pink> User-Agent: mu4e 1.12.1; emacs 31.0.50 Date: Sun, 03 Nov 2024 21:29:53 -0600 Message-ID: <87y11zznf2.fsf@pub.pink> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-Add-song-viewer-to-mpc-Bug-74200.patch Content-Transfer-Encoding: quoted-printable >From 861491d591a4e03bf4d4ceff001fd5036c0afef7 Mon Sep 17 00:00:00 2001 From: john muhl Date: Sat, 19 Oct 2024 18:25:41 -0500 Subject: [PATCH] Add song viewer to 'mpc' (Bug#74200) * lisp/mpc.el (mpc-describe-song): New command. (mpc-mode-map): Bind "i" to 'mpc-describe-song'. (mpc-mode-menu): Add menu item. (mpc-secs-to-time): Ensure secs argument is an integer. (mpc-song-viewer-empty, mpc-song-viewer-tag): (mpc-song-viewer-value): New face. (mpc-song-viewer-tags): New option. (mpc-song-viewer-tagtypes): New constant. --- etc/NEWS | 7 ++++ lisp/mpc.el | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 111 insertions(+), 2 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index f8e17da0592..e9466f7f9f3 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -619,6 +619,13 @@ When non-nil, MPC will crossfade between songs for the= specified number of seconds. Crossfading can be toggled using the command 'mpc-toggle-crossfade' or from the MPC menu. =20 +*** New command 'mpc-describe-song'. +This command displays information about the currently playing song or +song at point in the MPC-Songs buffer. The list of tags to display can +be customized using the new user option 'mpc-song-viewer-tags' and the +appearance of the list with the new faces 'mpc-song-viewer-tag', +'mpc-song-viewer-value', and 'mpc-song-viewer-empty'. + ** VC =20 --- diff --git a/lisp/mpc.el b/lisp/mpc.el index 0a43b09c11d..7b3737aa57f 100644 --- a/lisp/mpc.el +++ b/lisp/mpc.el @@ -63,7 +63,7 @@ ;; e.g. filename regexp -> compilation flag ;; - window/buffer management. ;; - menubar, tooltips, ... -;; - add mpc-describe-song, mpc-describe-album, ... +;; - add mpc-describe-album, ... ;; - add import/export commands (especially export to an MP3 player). ;; - add a real notion of album (as opposed to just album-name): ;; if all songs with same album-name have same artist -> it's an album @@ -95,6 +95,8 @@ =20 (require 'notifications) =20 +(require 'vtable) + (defgroup mpc () "Client for the Music Player Daemon (mpd)." :prefix "mpc-" @@ -978,11 +980,15 @@ mpc-cover-image-re :version "28.1") =20 (defun mpc-secs-to-time (secs) + "Convert SECS from a string, integer or float value to a time string." ;; We could use `format-seconds', but it doesn't seem worth the trouble ;; because we'd still need to check (>=3D secs (* 60 100)) since the spe= cial ;; %z only allows us to drop the large units for small values but ;; not to drop the small units for large values. (if (stringp secs) (setq secs (string-to-number secs))) + ;; Ensure secs is an integer. The Time tag has been deprecated by MPD + ;; and its replacement (the duration tag) includes fractional seconds. + (if (floatp secs) (setq secs (round secs))) (if (>=3D secs (* 60 100)) ;More than 100 minutes. (format "%dh%02d" ;"%d:%02d:%02d" (/ secs 3600) (% (/ secs 60) 60)) ;; (% secs 60) @@ -1180,7 +1186,8 @@ mpc-mode-map ">" #'mpc-next "<" #'mpc-prev "g" #'mpc-seek-current - "o" #'mpc-goto-playing-song) + "o" #'mpc-goto-playing-song + "i" #'mpc-describe-song) =20 (easy-menu-define mpc-mode-menu mpc-mode-map "Menu for MPC mode." @@ -1189,6 +1196,7 @@ mpc-mode-menu ["Next Track" mpc-next] ;FIXME: Add =E2=87=A5 there? ["Previous Track" mpc-prev] ;FIXME: Add =E2=87=A4 there? ["Seek Within Track" mpc-seek-current] + ["Song Details" mpc-describe-song] "--" ["Repeat Playlist" mpc-toggle-repeat :style toggle :selected (member '(repeat . "1") mpc-status)] @@ -2862,6 +2870,100 @@ mpc-notifications-notify :app-icon icon :replaces-id mpc--notifications-id)))) =20 +;;; Song Viewer ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;= ;; + +(defface mpc-song-viewer-value + '((t (:inherit vtable))) + "Face for tag values in the MPC song viewer.") + +(defface mpc-song-viewer-tag + '((t (:inherit (mpc-song-viewer-value bold)))) + "Face for tag types in the MPC song viewer.") + +(defface mpc-song-viewer-empty + '((t (:inherit (mpc-song-viewer-value italic shadow)))) + "Face for empty tag values in the MPC song viewer.") + +(defconst mpc-song-viewer-tagtypes + (sort (append '("Bitrate" "Duration" "File" "Format") (mpc-cmd-tagtypes)= )) + "Tag types available for use in `mpc-song-viewer-tags'.") + +(defcustom mpc-song-viewer-tags + '("Title" "Artist" "Album" "Performer" "Composer" + "Date" "Duration" "Disc" "Track" "Genre" "File") + "The list of tags to display with `mpc-describe-song'. + +See `mpc-song-viewer-tagtypes' for a list of available tags." + :version "31.1" + :type '(repeat string)) + +(defun mpc-describe-song (&optional file) + "Show details of the selected song or FILE in the MPC song viewer. + +If there is no song at point then information about the currently +playing song is displayed." + (interactive + ;; Handle being called from the context menu. In that case you want + ;; to see details for the song you clicked on to invoke the menu not + ;; whatever `point' happens to be on at that time. + (list (when-let* ((event last-nonmenu-event) + ((listp event)) + (position (nth 1 (event-start event)))) + (get-text-property position 'mpc-file)))) + (let ((tags (or (when (and file (stringp file)) + (mpc-proc-cmd-to-alist (list "search" "file" file))) + (when-let* (((string=3D (buffer-name) "*MPC-Songs*")) + (file (get-text-property (point) 'mpc-file))) + (mpc-proc-cmd-to-alist (list "search" "file" file))) + (when (assoc 'file mpc-status) mpc-status))) + (buffer "*MPC Song Viewer*")) + (when tags + (with-current-buffer (get-buffer-create buffer) + (special-mode) + (visual-line-mode) + (let ((buffer-read-only nil)) + (erase-buffer) + (make-vtable + :columns '(( :name "Tag" + :align right + :min-width 3 + :displayer + (lambda (tag &rest _) + (propertize tag 'face 'mpc-song-viewer-tag))) + ( :name "Value" + :align left + :min-width 5 + :displayer + (lambda (value &rest _) + (if (and value (not (string-blank-p value))) + (propertize value 'face 'mpc-song-viewer-val= ue) + (propertize "empty" 'face 'mpc-song-viewer-emp= ty))))) + :objects (mapcar + (lambda (tag) + (pcase tag + ("Bitrate" + (list tag (let ((bitrate (alist-get 'bitrate tag= s))) + (when bitrate + (format "%s kpbs" bitrate))))) + ("Duration" (list tag (mpc-secs-to-time + (alist-get 'duration tags)= ))) + ("File" (list tag (alist-get 'file tags))) + ;; Concatenate all the values of tags which may + ;; occur multiple times. + ((or "Composer" "Genre" "Performer") + (list tag (mapconcat + (lambda (val) (cdr val)) + (seq-filter + (lambda (val) (eq (car val) (intern = tag))) + tags) + "; "))) + (_ (list tag (alist-get (intern tag) tags))))) + mpc-song-viewer-tags)) + (goto-char (point-min)))) + (select-window (display-buffer buffer '((display-buffer-reuse-window + display-buffer-same-window) + (reusable-frames . t))))))) + ;;; Toplevel ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;= ;; =20 (defcustom mpc-frame-alist '((name . "MPC") (tool-bar-lines . 1) --=20 2.46.2 --=-=-= Content-Type: text/plain john muhl writes: > Tags: patch > > This adds a mpc-describe-song command which brings up a buffer > full of information about the selected song. --=-=-=-- From unknown Sun Jun 22 11:47:54 2025 X-Loop: help-debbugs@gnu.org Subject: bug#74200: [PATCH] Add song viewer to 'mpc' Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Nov 2024 12:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 74200 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: john muhl Cc: monnier@iro.umontreal.ca, 74200@debbugs.gnu.org Received: via spool by 74200-submit@debbugs.gnu.org id=B74200.17307243765688 (code B ref 74200); Mon, 04 Nov 2024 12:47:02 +0000 Received: (at 74200) by debbugs.gnu.org; 4 Nov 2024 12:46:16 +0000 Received: from localhost ([127.0.0.1]:39640 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t7wTH-0001Tf-HL for submit@debbugs.gnu.org; Mon, 04 Nov 2024 07:46:16 -0500 Received: from eggs.gnu.org ([209.51.188.92]:37052) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t7wTC-0001TU-ME for 74200@debbugs.gnu.org; Mon, 04 Nov 2024 07:46:14 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t7wT5-0002yu-R3; Mon, 04 Nov 2024 07:46:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=RXkTIoUd7KnM2kzGMx3YGuQ6y9x8IEQeSm3nKz+5UWE=; b=WyEr5RMpCV4q l07ABNBaD6pmVziycsRzs+XP+p/mi1MZmhdh0Rn3quoWNdipcKeWJZwvDPNCdIAPTk1KhraEAOyKN aGnltUbUskkdDQKtd/DD7S637itQirGxItwJ23QR+vNfVnJguIxa8/ZaCBmbKOvf8WeoC3GwUhM4r WmVY2NCJndagDuDzvTSdBjg8+CkzzEzJYcFR4/oPWyed4YflKwHXMzdoOiFsXc7O+9hisL/WLcS9E YHYYntp8Nd9i6L0y2wMsHtLuQQ6zdTYlO24UVBJELy1X0qtSTDSHTdCHAREB3fMLTgHzUD6foz3S6 GjHcobQVyyDsJIAUPa2S/w==; Date: Mon, 04 Nov 2024 14:46:02 +0200 Message-Id: <86v7x3upyt.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87y11zznf2.fsf@pub.pink> (message from john muhl on Sun, 03 Nov 2024 21:29:53 -0600) References: <874j4n1xxf.fsf@pub.pink> <87y11zznf2.fsf@pub.pink> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: monnier@iro.umontreal.ca > From: john muhl > Date: Sun, 03 Nov 2024 21:29:53 -0600 > > >From 861491d591a4e03bf4d4ceff001fd5036c0afef7 Mon Sep 17 00:00:00 2001 > From: john muhl > Date: Sat, 19 Oct 2024 18:25:41 -0500 > Subject: [PATCH] Add song viewer to 'mpc' (Bug#74200) > > * lisp/mpc.el (mpc-describe-song): New command. > (mpc-mode-map): Bind "i" to 'mpc-describe-song'. > (mpc-mode-menu): Add menu item. > (mpc-secs-to-time): Ensure secs argument is an integer. > (mpc-song-viewer-empty, mpc-song-viewer-tag): > (mpc-song-viewer-value): New face. > (mpc-song-viewer-tags): New option. > (mpc-song-viewer-tagtypes): New constant. > --- > etc/NEWS | 7 ++++ > lisp/mpc.el | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++- > 2 files changed, 111 insertions(+), 2 deletions(-) Thanks, a few minor comments. > --- a/etc/NEWS > +++ b/etc/NEWS > @@ -619,6 +619,13 @@ When non-nil, MPC will crossfade between songs for the specified number > of seconds. Crossfading can be toggled using the command > 'mpc-toggle-crossfade' or from the MPC menu. > > +*** New command 'mpc-describe-song'. > +This command displays information about the currently playing song or > +song at point in the MPC-Songs buffer. The list of tags to display can > +be customized using the new user option 'mpc-song-viewer-tags' and the > +appearance of the list with the new faces 'mpc-song-viewer-tag', > +'mpc-song-viewer-value', and 'mpc-song-viewer-empty'. This entry should be marked with "---", as we don't intend to document this in any manual. > +(defcustom mpc-song-viewer-tags > + '("Title" "Artist" "Album" "Performer" "Composer" > + "Date" "Duration" "Disc" "Track" "Genre" "File") > + "The list of tags to display with `mpc-describe-song'. Each new defcustom should have a :version tag. From unknown Sun Jun 22 11:47:54 2025 X-Loop: help-debbugs@gnu.org Subject: bug#74200: [PATCH] Add song viewer to 'mpc' Resent-From: john muhl Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Nov 2024 13:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 74200 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: monnier@iro.umontreal.ca, 74200@debbugs.gnu.org Received: via spool by 74200-submit@debbugs.gnu.org id=B74200.173072673010811 (code B ref 74200); Mon, 04 Nov 2024 13:26:01 +0000 Received: (at 74200) by debbugs.gnu.org; 4 Nov 2024 13:25:30 +0000 Received: from localhost ([127.0.0.1]:39916 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t7x5F-0002oH-Mz for submit@debbugs.gnu.org; Mon, 04 Nov 2024 08:25:30 -0500 Received: from fhigh-b2-smtp.messagingengine.com ([202.12.124.153]:42897) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t7x5C-0002o9-LS for 74200@debbugs.gnu.org; Mon, 04 Nov 2024 08:25:27 -0500 Received: from phl-compute-08.internal (phl-compute-08.phl.internal [10.202.2.48]) by mailfhigh.stl.internal (Postfix) with ESMTP id CEA60254010A; Mon, 4 Nov 2024 08:25:20 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-08.internal (MEProxy); Mon, 04 Nov 2024 08:25:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pub.pink; h=cc :cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1730726720; x=1730813120; bh=6/jgyUWOIe Z+zNex1HZGV3f7UiB8akwTUevra3O8IsI=; b=g+ts3r8Cc3oiVJtXWuRneFeAK1 V3H+0ApG0VljsIVKGBL3EdtlpbPk9ZGtTnlcx7dYNlJ1p1RGxaUu+WWMy5ggVf5m 0w3FM6vyMw5Pm9wNJpAvjq9A0gFRlJTZea0Dr9m1InSt7XOH6qmjjAevSSLgcORx R1dl1F17I86nOlKDeoI6yIC8wh24nRc72uubgErlqoREn3qivWYILvWEcH3MNyeO GRziTXv4Rt8A/8Ov7rY7J2w/x6UTINhmKWLatxs5iXtrxWTWcJ2awj87JXMvJ7Zh ByKIZ2qPbMqUqJWJ3uHf8FOLCwJ3DfqJDMzmNONtr1Cx+QEpbhC3UoS4P4dg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1730726720; x=1730813120; bh=6/jgyUWOIeZ+zNex1HZGV3f7UiB8akwTUev ra3O8IsI=; b=mQYyoRUuru4B12Zfdo1VoqBQPmy1heSeM1oHV6doAFnouUvWnHe 8PgtFOeLFaB33PvC3V8HiNXeL8RMXIog/sfALPakBJ5B5/zSQbT3ZWGFt2m85Shq 3tLy2EkYWoCYuxcYBCnOfJDHiuyLhiH5Mn2iJLXb/KRg6LSm7mwqnhdyMZlvElon s3l4CXVG2fWX4D89ORpc1IGW49Dti4FO7w6gs5xn2GUSjZO9g96qGmouLoTnNwmZ 1Ha8JYEbcAp9sA7Myk3lPzgiQlNTEWMvC80oxezIWjjX3cmGUuqqZGgmdt3FeGCJ AnjCtgVTRTBWImb3M+HB+uYH+oXJFiVObIg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdeliedghedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhephffvvefujghffgffkfggtgesmhdtreertdertden ucfhrhhomhepjhhohhhnuchmuhhhlhcuoehjmhesphhusgdrphhinhhkqeenucggtffrrg htthgvrhhnpeffudeltdffhfejudehgefhfeeltdefteffgfdtveelieduheeuffdujeev ffdvtdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hjmhesphhusgdrphhinhhkpdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhu thdprhgtphhtthhopehmohhnnhhivghrsehirhhordhumhhonhhtrhgvrghlrdgtrgdprh gtphhtthhopeejgedvtddtseguvggssghughhsrdhgnhhurdhorhhgpdhrtghpthhtohep vghlihiisehgnhhurdhorhhg X-ME-Proxy: Feedback-ID: i74194916:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 4 Nov 2024 08:25:20 -0500 (EST) From: john muhl In-Reply-To: <86v7x3upyt.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 04 Nov 2024 14:46:02 +0200") References: <874j4n1xxf.fsf@pub.pink> <87y11zznf2.fsf@pub.pink> <86v7x3upyt.fsf@gnu.org> User-Agent: mu4e 1.12.1; emacs 31.0.50 Date: Mon, 04 Nov 2024 07:25:18 -0600 Message-ID: <87ses7xha9.fsf@pub.pink> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain Eli Zaretskii writes: >> --- a/etc/NEWS >> +++ b/etc/NEWS >> @@ -619,6 +619,13 @@ When non-nil, MPC will crossfade between songs >> for the specified number >> of seconds. Crossfading can be toggled using the command >> 'mpc-toggle-crossfade' or from the MPC menu. >> >> +*** New command 'mpc-describe-song'. >> +This command displays information about the currently playing song or >> +song at point in the MPC-Songs buffer. The list of tags to display can >> +be customized using the new user option 'mpc-song-viewer-tags' and the >> +appearance of the list with the new faces 'mpc-song-viewer-tag', >> +'mpc-song-viewer-value', and 'mpc-song-viewer-empty'. > > This entry should be marked with "---", as we don't intend to document > this in any manual. Fixed. Added one to previous entry too which slipped through unnoticed. >> +(defcustom mpc-song-viewer-tags >> + '("Title" "Artist" "Album" "Performer" "Composer" >> + "Date" "Duration" "Disc" "Track" "Genre" "File") >> + "The list of tags to display with `mpc-describe-song'. > > Each new defcustom should have a :version tag. Hmm. Not sure how that got lost in transmission but hopefully it makes it through this time. Thanks for looking. --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-Add-song-viewer-to-mpc-Bug-74200.patch Content-Transfer-Encoding: quoted-printable >From 38add009b751900332f4ba9006ef62dcae472e69 Mon Sep 17 00:00:00 2001 From: john muhl Date: Sat, 19 Oct 2024 18:25:41 -0500 Subject: [PATCH] Add song viewer to 'mpc' (Bug#74200) * lisp/mpc.el (mpc-describe-song): New command. (mpc-mode-map): Bind "i" to 'mpc-describe-song'. (mpc-mode-menu): Add menu item. (mpc-secs-to-time): Ensure secs argument is an integer. (mpc-song-viewer-empty, mpc-song-viewer-tag): (mpc-song-viewer-value): New face. (mpc-song-viewer-tags): New option. (mpc-song-viewer-tagtypes): New constant. --- etc/NEWS | 9 +++++ lisp/mpc.el | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 113 insertions(+), 2 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index f8e17da0592..852006e3dde 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -614,11 +614,20 @@ a desktop notification when the song changes, using customized using the new user options 'mpc-notifications-title' and 'mpc-notifications-body'. =20 +--- *** New user option 'mpc-crossfade-time'. When non-nil, MPC will crossfade between songs for the specified number of seconds. Crossfading can be toggled using the command 'mpc-toggle-crossfade' or from the MPC menu. =20 +--- +*** New command 'mpc-describe-song'. +This command displays information about the currently playing song or +song at point in the MPC-Songs buffer. The list of tags to display can +be customized using the new user option 'mpc-song-viewer-tags' and the +appearance of the list with the new faces 'mpc-song-viewer-tag', +'mpc-song-viewer-value', and 'mpc-song-viewer-empty'. + ** VC =20 --- diff --git a/lisp/mpc.el b/lisp/mpc.el index 0a43b09c11d..7b3737aa57f 100644 --- a/lisp/mpc.el +++ b/lisp/mpc.el @@ -63,7 +63,7 @@ ;; e.g. filename regexp -> compilation flag ;; - window/buffer management. ;; - menubar, tooltips, ... -;; - add mpc-describe-song, mpc-describe-album, ... +;; - add mpc-describe-album, ... ;; - add import/export commands (especially export to an MP3 player). ;; - add a real notion of album (as opposed to just album-name): ;; if all songs with same album-name have same artist -> it's an album @@ -95,6 +95,8 @@ =20 (require 'notifications) =20 +(require 'vtable) + (defgroup mpc () "Client for the Music Player Daemon (mpd)." :prefix "mpc-" @@ -978,11 +980,15 @@ mpc-cover-image-re :version "28.1") =20 (defun mpc-secs-to-time (secs) + "Convert SECS from a string, integer or float value to a time string." ;; We could use `format-seconds', but it doesn't seem worth the trouble ;; because we'd still need to check (>=3D secs (* 60 100)) since the spe= cial ;; %z only allows us to drop the large units for small values but ;; not to drop the small units for large values. (if (stringp secs) (setq secs (string-to-number secs))) + ;; Ensure secs is an integer. The Time tag has been deprecated by MPD + ;; and its replacement (the duration tag) includes fractional seconds. + (if (floatp secs) (setq secs (round secs))) (if (>=3D secs (* 60 100)) ;More than 100 minutes. (format "%dh%02d" ;"%d:%02d:%02d" (/ secs 3600) (% (/ secs 60) 60)) ;; (% secs 60) @@ -1180,7 +1186,8 @@ mpc-mode-map ">" #'mpc-next "<" #'mpc-prev "g" #'mpc-seek-current - "o" #'mpc-goto-playing-song) + "o" #'mpc-goto-playing-song + "i" #'mpc-describe-song) =20 (easy-menu-define mpc-mode-menu mpc-mode-map "Menu for MPC mode." @@ -1189,6 +1196,7 @@ mpc-mode-menu ["Next Track" mpc-next] ;FIXME: Add =E2=87=A5 there? ["Previous Track" mpc-prev] ;FIXME: Add =E2=87=A4 there? ["Seek Within Track" mpc-seek-current] + ["Song Details" mpc-describe-song] "--" ["Repeat Playlist" mpc-toggle-repeat :style toggle :selected (member '(repeat . "1") mpc-status)] @@ -2862,6 +2870,100 @@ mpc-notifications-notify :app-icon icon :replaces-id mpc--notifications-id)))) =20 +;;; Song Viewer ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;= ;; + +(defface mpc-song-viewer-value + '((t (:inherit vtable))) + "Face for tag values in the MPC song viewer.") + +(defface mpc-song-viewer-tag + '((t (:inherit (mpc-song-viewer-value bold)))) + "Face for tag types in the MPC song viewer.") + +(defface mpc-song-viewer-empty + '((t (:inherit (mpc-song-viewer-value italic shadow)))) + "Face for empty tag values in the MPC song viewer.") + +(defconst mpc-song-viewer-tagtypes + (sort (append '("Bitrate" "Duration" "File" "Format") (mpc-cmd-tagtypes)= )) + "Tag types available for use in `mpc-song-viewer-tags'.") + +(defcustom mpc-song-viewer-tags + '("Title" "Artist" "Album" "Performer" "Composer" + "Date" "Duration" "Disc" "Track" "Genre" "File") + "The list of tags to display with `mpc-describe-song'. + +See `mpc-song-viewer-tagtypes' for a list of available tags." + :version "31.1" + :type '(repeat string)) + +(defun mpc-describe-song (&optional file) + "Show details of the selected song or FILE in the MPC song viewer. + +If there is no song at point then information about the currently +playing song is displayed." + (interactive + ;; Handle being called from the context menu. In that case you want + ;; to see details for the song you clicked on to invoke the menu not + ;; whatever `point' happens to be on at that time. + (list (when-let* ((event last-nonmenu-event) + ((listp event)) + (position (nth 1 (event-start event)))) + (get-text-property position 'mpc-file)))) + (let ((tags (or (when (and file (stringp file)) + (mpc-proc-cmd-to-alist (list "search" "file" file))) + (when-let* (((string=3D (buffer-name) "*MPC-Songs*")) + (file (get-text-property (point) 'mpc-file))) + (mpc-proc-cmd-to-alist (list "search" "file" file))) + (when (assoc 'file mpc-status) mpc-status))) + (buffer "*MPC Song Viewer*")) + (when tags + (with-current-buffer (get-buffer-create buffer) + (special-mode) + (visual-line-mode) + (let ((buffer-read-only nil)) + (erase-buffer) + (make-vtable + :columns '(( :name "Tag" + :align right + :min-width 3 + :displayer + (lambda (tag &rest _) + (propertize tag 'face 'mpc-song-viewer-tag))) + ( :name "Value" + :align left + :min-width 5 + :displayer + (lambda (value &rest _) + (if (and value (not (string-blank-p value))) + (propertize value 'face 'mpc-song-viewer-val= ue) + (propertize "empty" 'face 'mpc-song-viewer-emp= ty))))) + :objects (mapcar + (lambda (tag) + (pcase tag + ("Bitrate" + (list tag (let ((bitrate (alist-get 'bitrate tag= s))) + (when bitrate + (format "%s kpbs" bitrate))))) + ("Duration" (list tag (mpc-secs-to-time + (alist-get 'duration tags)= ))) + ("File" (list tag (alist-get 'file tags))) + ;; Concatenate all the values of tags which may + ;; occur multiple times. + ((or "Composer" "Genre" "Performer") + (list tag (mapconcat + (lambda (val) (cdr val)) + (seq-filter + (lambda (val) (eq (car val) (intern = tag))) + tags) + "; "))) + (_ (list tag (alist-get (intern tag) tags))))) + mpc-song-viewer-tags)) + (goto-char (point-min)))) + (select-window (display-buffer buffer '((display-buffer-reuse-window + display-buffer-same-window) + (reusable-frames . t))))))) + ;;; Toplevel ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;= ;; =20 (defcustom mpc-frame-alist '((name . "MPC") (tool-bar-lines . 1) --=20 2.46.2 --=-=-=-- From unknown Sun Jun 22 11:47:54 2025 X-Loop: help-debbugs@gnu.org Subject: bug#74200: [PATCH] Add song viewer to 'mpc' Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 08 Nov 2024 19:21:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 74200 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: john muhl Cc: Eli Zaretskii , 74200@debbugs.gnu.org Received: via spool by 74200-submit@debbugs.gnu.org id=B74200.173109363223047 (code B ref 74200); Fri, 08 Nov 2024 19:21:01 +0000 Received: (at 74200) by debbugs.gnu.org; 8 Nov 2024 19:20:32 +0000 Received: from localhost ([127.0.0.1]:52190 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t9UX2-0005ze-80 for submit@debbugs.gnu.org; Fri, 08 Nov 2024 14:20:32 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:40159) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t9UWx-0005zP-UI for 74200@debbugs.gnu.org; Fri, 08 Nov 2024 14:20:30 -0500 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 926DE44463C; Fri, 8 Nov 2024 14:20:22 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1731093621; bh=CTxO4EgIXdrHXtX9rbQ7ntHPr/bhZkZsjITyRu0VBGE=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=N1soSwxIa+PCtMRwR0A9cnZpioLk6+9GhgZQ8R+rHf44yUGg4PIanSjgic3b8aNBn /i8UHLXLz2z+4nAnTVK99xE00Gs9Vd3N7UTItTnopYZVIfGLjMTSkNVew4lrBjRp6B bGcTqx3jgsXtjj/3hW33lrN8P2eg4hfZouv7iXuzAMie4q2FACSUMhc/A7oHcsQGDX u20GWHyrtxgnwYOmQLP2iK923GGutwSuDtS5vj8Ef+pfcx1TaZwMwnvtCUttJ60uKL YifsKCbCj8JAPu7j9TOhG8xUHopcEnEShZuxtivBJ6+lgKLKgApPlsu8w7c+Sx4op0 +LCEdxDkvHmRg== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 0320F444639; Fri, 8 Nov 2024 14:20:21 -0500 (EST) Received: from asado (bras-base-mtrlpq0776w-grc-08-184-145-223-228.dsl.bell.ca [184.145.223.228]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id E24A7120489; Fri, 8 Nov 2024 14:20:20 -0500 (EST) From: Stefan Monnier In-Reply-To: <87ses7xha9.fsf@pub.pink> (john muhl's message of "Mon, 04 Nov 2024 07:25:18 -0600") Message-ID: References: <874j4n1xxf.fsf@pub.pink> <87y11zznf2.fsf@pub.pink> <86v7x3upyt.fsf@gnu.org> <87ses7xha9.fsf@pub.pink> Date: Fri, 08 Nov 2024 14:20:20 -0500 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.095 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > + "i" #'mpc-describe-song) What about using "d" (i.e. the "describe" mnemonic instead of the "info" mnemonic)? > +(defconst mpc-song-viewer-tagtypes > + (sort (append '("Bitrate" "Duration" "File" "Format") (mpc-cmd-tagtypes))) > + "Tag types available for use in `mpc-song-viewer-tags'.") Hmm... running `mpc-cmd-tagtypes` when we load the file seems risky: we may not know the `mpc-host` yet, or any other thing may go wrong. > +(defun mpc-describe-song (&optional file) Any reason we can't make the argument mandatory? > + (when tags > + (with-current-buffer (get-buffer-create buffer) > + (special-mode) > + (visual-line-mode) > + (let ((buffer-read-only nil)) This should bind `inhibit-read-only` instead. > + (select-window (display-buffer buffer '((display-buffer-reuse-window > + display-buffer-same-window) > + (reusable-frames . t))))))) Why use `select-window + display-buffer` instead of `pop-to-buffer`? Stefan From unknown Sun Jun 22 11:47:54 2025 X-Loop: help-debbugs@gnu.org Subject: bug#74200: [PATCH] Add song viewer to 'mpc' Resent-From: john muhl Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 13 Nov 2024 01:02:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 74200 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Stefan Monnier Cc: Eli Zaretskii , 74200@debbugs.gnu.org Received: via spool by 74200-submit@debbugs.gnu.org id=B74200.173145968826592 (code B ref 74200); Wed, 13 Nov 2024 01:02:01 +0000 Received: (at 74200) by debbugs.gnu.org; 13 Nov 2024 01:01:28 +0000 Received: from localhost ([127.0.0.1]:40053 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tB1l9-0006up-Pi for submit@debbugs.gnu.org; Tue, 12 Nov 2024 20:01:28 -0500 Received: from fhigh-b6-smtp.messagingengine.com ([202.12.124.157]:38395) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tB1l7-0006uQ-2D for 74200@debbugs.gnu.org; Tue, 12 Nov 2024 20:01:26 -0500 Received: from phl-compute-04.internal (phl-compute-04.phl.internal [10.202.2.44]) by mailfhigh.stl.internal (Postfix) with ESMTP id 6BB6825400DE; Tue, 12 Nov 2024 20:01:19 -0500 (EST) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-04.internal (MEProxy); Tue, 12 Nov 2024 20:01:19 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pub.pink; h=cc :cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1731459679; x=1731546079; bh=CQRdGn1Ik5 6PdvLtjaGQ0tvtpUSsi6oM/nGTXfHopbM=; b=J90kMGIcvhvxVGUswk/pqKpAZv Zc5Le91w60wX6m7DaFSwIFmcfXKCyR4ucaWCRLriqRdcQWatLDVIEq7Qph7SQHpH PiFH2r+2efPWNOB50qsf/6C8AcHzU2WDdHGh9kRLUITM7rgVo2smxKoAP2PkKeJf jhtJjdVDQ1+19n2WDylOtwKWUXIE+7aNs+X4U8idb/YpawOPdkqsG1tc8ZmMe2TC u6fjISeDVtsocvdHgtJRBH/u2bwa3ovwr/DOEbOpL+cBWEPRVnaxOQCGAdhCXnZg z1D5FZiJcTi0ANgDkWP7F3+evQncX+VERDKoukbStA3AM0vb1kw3DOmwVKFw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1731459679; x=1731546079; bh=CQRdGn1Ik56PdvLtjaGQ0tvtpUSsi6oM/nG TXfHopbM=; b=ckERH0P9CFtcmcVY/UHEVfn6I2B7OTYr2fcqb5A0lVP0KUQCgyj nYjqXnJW+Q6dl8OAlq61lt0/OE6o/rt86ynBuM/QYbm/ZP1eoLIOUhjxYWp/cDS+ iAqY3uiHItgZeAUMpH+xVBNk5hBUDrld2ofs4kL5eEOTCLoJsKCe7u6tlQ1g2Ubn spRkrNB1YrxYF2foDM6xBlQqRMfpolBLCN8LQuxfbkb8XApBb1Ohr/SA2spZFG59 xfkj/1VoQAETFH/WCy4k+1qEgrXsQOR9DDA41/YNoVfB7Roa/XwjRoUqLJ83xU3A 6W2sT8dI2Q8zsNYGaFGdoBI8JNaWZDLfrAg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrudehgddvlecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdpuffr tefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnth hsucdlqddutddtmdenucfjughrpefhvfevufgjfhgffffkgggtsehmtderredtredtnecu hfhrohhmpehjohhhnhcumhhuhhhluceojhhmsehpuhgsrdhpihhnkheqnecuggftrfgrth htvghrnhepffduledtfffhjeduheeghfefledtfeetfffgtdevleeiudehueffudejveff vddtnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepjh hmsehpuhgsrdhpihhnkhdpnhgspghrtghpthhtohepfedpmhhouggvpehsmhhtphhouhht pdhrtghpthhtohepjeegvddttdesuggvsggsuhhgshdrghhnuhdrohhrghdprhgtphhtth hopegvlhhiiiesghhnuhdrohhrghdprhgtphhtthhopehmohhnnhhivghrsehirhhordhu mhhonhhtrhgvrghlrdgtrg X-ME-Proxy: Feedback-ID: i74194916:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 12 Nov 2024 20:01:18 -0500 (EST) From: john muhl In-Reply-To: (Stefan Monnier's message of "Fri, 08 Nov 2024 14:20:20 -0500") References: <874j4n1xxf.fsf@pub.pink> <87y11zznf2.fsf@pub.pink> <86v7x3upyt.fsf@gnu.org> <87ses7xha9.fsf@pub.pink> User-Agent: mu4e 1.12.1; emacs 31.0.50 Date: Tue, 12 Nov 2024 19:01:17 -0600 Message-ID: <875xos6j6q.fsf@pub.pink> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain Stefan Monnier writes: >> + "i" #'mpc-describe-song) > > What about using "d" (i.e. the "describe" mnemonic instead of the "info" > mnemonic)? Done. >> +(defconst mpc-song-viewer-tagtypes >> + (sort (append '("Bitrate" "Duration" "File" "Format") (mpc-cmd-tagtypes))) >> + "Tag types available for use in `mpc-song-viewer-tags'.") > > Hmm... running `mpc-cmd-tagtypes` when we load the file seems risky: we > may not know the `mpc-host` yet, or any other thing may go wrong. Right you are. The tags are always the same anyway so I put a note in the docstring and got rid of the risky constant. >> +(defun mpc-describe-song (&optional file) > > Any reason we can't make the argument mandatory? Nope. >> + (when tags >> + (with-current-buffer (get-buffer-create buffer) >> + (special-mode) >> + (visual-line-mode) >> + (let ((buffer-read-only nil)) > > This should bind `inhibit-read-only` instead. Fixed. >> + (select-window (display-buffer buffer '((display-buffer-reuse-window >> + display-buffer-same-window) >> + (reusable-frames . t))))))) > > Why use `select-window + display-buffer` instead of `pop-to-buffer`? Elsewhere I was told not to use pop-to-buffer in new code and I believe everything anyone tells me. --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-Add-song-viewer-to-mpc-Bug-74200.patch Content-Transfer-Encoding: quoted-printable >From 28a1710f4f40b9de88719ea6ffa1893913195e11 Mon Sep 17 00:00:00 2001 From: john muhl Date: Sat, 19 Oct 2024 18:25:41 -0500 Subject: [PATCH] Add song viewer to 'mpc' (Bug#74200) * lisp/mpc.el (mpc-describe-song): New command. (mpc-mode-map): Bind "d" to 'mpc-describe-song'. (mpc-mode-menu): Add menu item. (mpc-secs-to-time): Ensure secs argument is an integer. (mpc-song-viewer-empty, mpc-song-viewer-tag): (mpc-song-viewer-value): New face. (mpc-song-viewer-tags): New option. --- etc/NEWS | 9 +++++ lisp/mpc.el | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 111 insertions(+), 2 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 0a08527b2e5..9beec8d1770 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -654,11 +654,20 @@ a desktop notification when the song changes, using customized using the new user options 'mpc-notifications-title' and 'mpc-notifications-body'. =20 +--- *** New user option 'mpc-crossfade-time'. When non-nil, MPC will crossfade between songs for the specified number of seconds. Crossfading can be toggled using the command 'mpc-toggle-crossfade' or from the MPC menu. =20 +--- +*** New command 'mpc-describe-song'. +This command displays information about the currently playing song or +song at point in the MPC-Songs buffer. The list of tags to display can +be customized using the new user option 'mpc-song-viewer-tags' and the +appearance of the list with the new faces 'mpc-song-viewer-tag', +'mpc-song-viewer-value', and 'mpc-song-viewer-empty'. + ** VC =20 --- diff --git a/lisp/mpc.el b/lisp/mpc.el index 0a43b09c11d..a0ecb21e454 100644 --- a/lisp/mpc.el +++ b/lisp/mpc.el @@ -63,7 +63,7 @@ ;; e.g. filename regexp -> compilation flag ;; - window/buffer management. ;; - menubar, tooltips, ... -;; - add mpc-describe-song, mpc-describe-album, ... +;; - add mpc-describe-album, ... ;; - add import/export commands (especially export to an MP3 player). ;; - add a real notion of album (as opposed to just album-name): ;; if all songs with same album-name have same artist -> it's an album @@ -95,6 +95,8 @@ =20 (require 'notifications) =20 +(require 'vtable) + (defgroup mpc () "Client for the Music Player Daemon (mpd)." :prefix "mpc-" @@ -978,11 +980,15 @@ mpc-cover-image-re :version "28.1") =20 (defun mpc-secs-to-time (secs) + "Convert SECS from a string, integer or float value to a time string." ;; We could use `format-seconds', but it doesn't seem worth the trouble ;; because we'd still need to check (>=3D secs (* 60 100)) since the spe= cial ;; %z only allows us to drop the large units for small values but ;; not to drop the small units for large values. (if (stringp secs) (setq secs (string-to-number secs))) + ;; Ensure secs is an integer. The Time tag has been deprecated by MPD + ;; and its replacement (the duration tag) includes fractional seconds. + (if (floatp secs) (setq secs (round secs))) (if (>=3D secs (* 60 100)) ;More than 100 minutes. (format "%dh%02d" ;"%d:%02d:%02d" (/ secs 3600) (% (/ secs 60) 60)) ;; (% secs 60) @@ -1180,7 +1186,8 @@ mpc-mode-map ">" #'mpc-next "<" #'mpc-prev "g" #'mpc-seek-current - "o" #'mpc-goto-playing-song) + "o" #'mpc-goto-playing-song + "d" #'mpc-describe-song) =20 (easy-menu-define mpc-mode-menu mpc-mode-map "Menu for MPC mode." @@ -1189,6 +1196,7 @@ mpc-mode-menu ["Next Track" mpc-next] ;FIXME: Add =E2=87=A5 there? ["Previous Track" mpc-prev] ;FIXME: Add =E2=87=A4 there? ["Seek Within Track" mpc-seek-current] + ["Song Details" mpc-describe-song] "--" ["Repeat Playlist" mpc-toggle-repeat :style toggle :selected (member '(repeat . "1") mpc-status)] @@ -2862,6 +2870,98 @@ mpc-notifications-notify :app-icon icon :replaces-id mpc--notifications-id)))) =20 +;;; Song Viewer ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;= ;; + +(defface mpc-song-viewer-value + '((t (:inherit vtable))) + "Face for tag values in the MPC song viewer.") + +(defface mpc-song-viewer-tag + '((t (:inherit (mpc-song-viewer-value bold)))) + "Face for tag types in the MPC song viewer.") + +(defface mpc-song-viewer-empty + '((t (:inherit (mpc-song-viewer-value italic shadow)))) + "Face for empty tag values in the MPC song viewer.") + +(defcustom mpc-song-viewer-tags + '("Title" "Artist" "Album" "Performer" "Composer" + "Date" "Duration" "Disc" "Track" "Genre" "File") + "The list of tags to display with `mpc-describe-song'. + +The list of supported tags are available by evaluating +`mpc-cmd-tagtypes'. In addition to the standard MPD tags: Bitrate, +Duration, File, and Format are also supported." + :version "31.1" + :type '(repeat string)) + +(defun mpc-describe-song (file) + "Show details of the selected song or FILE in the MPC song viewer. + +If there is no song at point then information about the currently +playing song is displayed." + (interactive + ;; Handle being called from the context menu. In that case you want + ;; to see details for the song you clicked on to invoke the menu not + ;; whatever `point' happens to be on at that time. + (list (when-let* ((event last-nonmenu-event) + ((listp event)) + (position (nth 1 (event-start event)))) + (get-text-property position 'mpc-file)))) + (let ((tags (or (when (and file (stringp file)) + (mpc-proc-cmd-to-alist (list "search" "file" file))) + (when-let* (((string=3D (buffer-name) "*MPC-Songs*")) + (file (get-text-property (point) 'mpc-file))) + (mpc-proc-cmd-to-alist (list "search" "file" file))) + (when (assoc 'file mpc-status) mpc-status))) + (buffer "*MPC Song Viewer*")) + (when tags + (with-current-buffer (get-buffer-create buffer) + (special-mode) + (visual-line-mode) + (let ((inhibit-read-only t)) + (erase-buffer) + (make-vtable + :columns '(( :name "Tag" + :align right + :min-width 3 + :displayer + (lambda (tag &rest _) + (propertize tag 'face 'mpc-song-viewer-tag))) + ( :name "Value" + :align left + :min-width 5 + :displayer + (lambda (value &rest _) + (if (and value (not (string-blank-p value))) + (propertize value 'face 'mpc-song-viewer-val= ue) + (propertize "empty" 'face 'mpc-song-viewer-emp= ty))))) + :objects (mapcar + (lambda (tag) + (pcase tag + ("Bitrate" + (list tag (let ((bitrate (alist-get 'bitrate tag= s))) + (when bitrate + (format "%s kpbs" bitrate))))) + ("Duration" (list tag (mpc-secs-to-time + (alist-get 'duration tags)= ))) + ("File" (list tag (alist-get 'file tags))) + ;; Concatenate all the values of tags which may + ;; occur multiple times. + ((or "Composer" "Genre" "Performer") + (list tag (mapconcat + (lambda (val) (cdr val)) + (seq-filter + (lambda (val) (eq (car val) (intern = tag))) + tags) + "; "))) + (_ (list tag (alist-get (intern tag) tags))))) + mpc-song-viewer-tags)) + (goto-char (point-min)))) + (pop-to-buffer buffer '((display-buffer-reuse-window + display-buffer-same-window) + (reusable-frames . t)))))) + ;;; Toplevel ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;= ;; =20 (defcustom mpc-frame-alist '((name . "MPC") (tool-bar-lines . 1) --=20 2.47.0 --=-=-=-- From unknown Sun Jun 22 11:47:54 2025 X-Loop: help-debbugs@gnu.org Subject: bug#74200: [PATCH] Add song viewer to 'mpc' Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 14 Nov 2024 15:47:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 74200 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: john muhl Cc: Eli Zaretskii , 74200@debbugs.gnu.org Received: via spool by 74200-submit@debbugs.gnu.org id=B74200.173159917020825 (code B ref 74200); Thu, 14 Nov 2024 15:47:01 +0000 Received: (at 74200) by debbugs.gnu.org; 14 Nov 2024 15:46:10 +0000 Received: from localhost ([127.0.0.1]:46816 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBc2s-0005Po-8m for submit@debbugs.gnu.org; Thu, 14 Nov 2024 10:46:10 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:29944) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBc2m-0005PA-Vn for 74200@debbugs.gnu.org; Thu, 14 Nov 2024 10:46:08 -0500 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 008734425DE; Thu, 14 Nov 2024 10:45:59 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1731599158; bh=dE0Gb+QE9kVlIAjclxC6AXNqvLXAV9SzUic87Tzpnq8=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=ckEvSczk4xwRL6Mw7MEotwEu2ZNvvw4W/uGRouBTOPHI+XNq+PFTClWvCrN/qTAJ+ ptGUUuvBltY48vwZmSfwZedvc2w8FjQBRCPP9vozNk2gn462cgDmje21Hs5OOIJ/Tm eIhNp6++ekwCVAhWRrgoX3I/nFi4L2LKCFiUWhREsjMRK2PTmznubrtB9zgsvRNy1q rDcv3XgReBkCxO3rfllRms9qX+BYJgXx2OZL3+7BXA3mdKHv3gDlgiYO/IJJTn3gfx Yir8ixCA6blGmJUIVq5z3zPuCNqC7cOfwSwsPtlJ3t0rG0YLf2aIOc1Kli74N+hwRS uQYc6SaGJtr9A== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 0AA414425D1; Thu, 14 Nov 2024 10:45:58 -0500 (EST) Received: from alfajor (modemcable005.21-80-70.mc.videotron.ca [70.80.21.5]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id DEA7F120319; Thu, 14 Nov 2024 10:45:57 -0500 (EST) From: Stefan Monnier In-Reply-To: <875xos6j6q.fsf@pub.pink> (john muhl's message of "Tue, 12 Nov 2024 19:01:17 -0600") Message-ID: References: <874j4n1xxf.fsf@pub.pink> <87y11zznf2.fsf@pub.pink> <86v7x3upyt.fsf@gnu.org> <87ses7xha9.fsf@pub.pink> <875xos6j6q.fsf@pub.pink> Date: Thu, 14 Nov 2024 10:45:57 -0500 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.084 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) >>> + (select-window (display-buffer buffer '((display-buffer-reuse-window >>> + display-buffer-same-window) >>> + (reusable-frames . t))))))) >> >> Why use `select-window + display-buffer` instead of `pop-to-buffer`? > > Elsewhere I was told not to use pop-to-buffer in new code and I > believe everything anyone tells me. Really? AFAIK the one function in that family that's shunned is `switch-to-buffer` (because its intention is unclear: sometimes it means "change the content of this window (to that buffer)" and sometimes it means "display this buffer (in the selected window)"), Anyway, thanks, installed into `master`. Stefan From unknown Sun Jun 22 11:47:54 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: john muhl Subject: bug#74200: closed (Re: bug#74200: [PATCH] Add song viewer to 'mpc') Message-ID: References: <874j4n1xxf.fsf@pub.pink> X-Gnu-PR-Message: they-closed 74200 X-Gnu-PR-Package: emacs X-Gnu-PR-Keywords: patch Reply-To: 74200@debbugs.gnu.org Date: Thu, 14 Nov 2024 17:09:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1731604142-4149-1" This is a multi-part message in MIME format... ------------=_1731604142-4149-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #74200: [PATCH] Add song viewer to 'mpc' which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 74200@debbugs.gnu.org. --=20 74200: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D74200 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1731604142-4149-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 74200-done) by debbugs.gnu.org; 14 Nov 2024 17:08:56 +0000 Received: from localhost ([127.0.0.1]:46998 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBdKy-00014d-EI for submit@debbugs.gnu.org; Thu, 14 Nov 2024 12:08:56 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:41804) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBdKw-00014N-LI for 74200-done@debbugs.gnu.org; Thu, 14 Nov 2024 12:08:55 -0500 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id C8A2F100180; Thu, 14 Nov 2024 12:08:48 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1731604128; bh=wBzqjLbJnLUCFwl97L/KCHM/AxnB/agyxcpLr3FhPks=; h=From:To:Subject:In-Reply-To:References:Date:From; b=pnrS2zIFBXv7zcm3783oPJ3UUrv3kOSUIKr1drFvOitsL2QufnAGrYeZPb68pYtxh dwBpucyUrP616HwgqWAbo9MQQ7/PFIwZjpoQ4q+fU5O5z380oHQgZ4YQSoZBGMDJGp ZrTd+Lymdez8XzG2t3MaEzdI+KuI7KOYqrOHsw+axi4O+u5M4D7DafNAslBaLVrnjH phaliXJFNGUmr45oqqLxhCwl2xvda7eYu1k5za5+28WkMIiBpJJfLugY3o5qA+5wbv yqBdvMbhg5fS7bv3JoM88Y8MjPS03ZGX9n035w+NAeBVvcIO2DycxzIPLxw+7gJgVT OsWEYJipxF87A== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 3973A100043; Thu, 14 Nov 2024 12:08:48 -0500 (EST) Received: from alfajor (modemcable005.21-80-70.mc.videotron.ca [70.80.21.5]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 201291204D5; Thu, 14 Nov 2024 12:08:48 -0500 (EST) From: Stefan Monnier To: 74200-done@debbugs.gnu.org Subject: Re: bug#74200: [PATCH] Add song viewer to 'mpc' In-Reply-To: (Stefan Monnier's message of "Thu, 14 Nov 2024 10:45:57 -0500") Message-ID: References: <874j4n1xxf.fsf@pub.pink> <87y11zznf2.fsf@pub.pink> <86v7x3upyt.fsf@gnu.org> <87ses7xha9.fsf@pub.pink> <875xos6j6q.fsf@pub.pink> Date: Thu, 14 Nov 2024 12:08:47 -0500 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.228 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74200-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Anyway, thanks, installed into `master`. Closing, Stefan ------------=_1731604142-4149-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 4 Nov 2024 03:27:04 +0000 Received: from localhost ([127.0.0.1]:36829 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t7nk7-0000jb-Dx for submit@debbugs.gnu.org; Sun, 03 Nov 2024 22:27:04 -0500 Received: from lists.gnu.org ([209.51.188.17]:44318) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t7nk3-0000jB-Fj for submit@debbugs.gnu.org; Sun, 03 Nov 2024 22:27:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t7nk3-0001AN-3t for bug-gnu-emacs@gnu.org; Sun, 03 Nov 2024 22:26:59 -0500 Received: from fhigh-a8-smtp.messagingengine.com ([103.168.172.159]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t7nk1-0004tU-9X for bug-gnu-emacs@gnu.org; Sun, 03 Nov 2024 22:26:58 -0500 Received: from phl-compute-02.internal (phl-compute-02.phl.internal [10.202.2.42]) by mailfhigh.phl.internal (Postfix) with ESMTP id 4FC7511400C6 for ; Sun, 3 Nov 2024 22:26:54 -0500 (EST) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-02.internal (MEProxy); Sun, 03 Nov 2024 22:26:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pub.pink; h=cc :content-type:content-type:date:date:from:from:in-reply-to :message-id:mime-version:reply-to:subject:subject:to:to; s=fm3; t=1730690814; x=1730777214; bh=NHon8EydSp6YquQIWCtaoLrCReby+Sc9 JFHiRa/MXDQ=; b=Cci7PB9mrpF8XDpN6cR/ySVFXOk1rLxP5HwQD45wvOOlf8l4 nUJbO6/GwomZ84FK5G55W3n2sZM7aXqic5zr++MwEcFtySLIzyTQxgnhgGGIwSsc +duVN5EZxN5CUs/wbJbYISgeptElt48jOItnj5r6Z8jXRZoaJ59K5J0JlkNzlm8x VHix/oN/4FmRI2Raa1XF3GPHyvb9JLb1jOgerEUQehCLGhTo6eiBDrYy67SmvyYD KvRsmwVW/AEFJoinzYdUD4Exlwbv+IdNwRaw6Eo4BZWt2VD7702kvQFZRCcOj8V9 rfHz06qyaBXy31FGqQo2ylL/M6BQlWHsYskCmw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1730690814; x= 1730777214; bh=NHon8EydSp6YquQIWCtaoLrCReby+Sc9JFHiRa/MXDQ=; b=U +9Lgu/uSzQEP2hzdF9mkQMHBNx0iiUzyaJO4qMN0npwCzpAvOau7lHJ6bJ/SkkZc kQ9poTlhzEQB1AqlOx4n8zwlGfj1nkV/1k5YAX0Gt/g7rk2KV7LxrcuT5AxGcJfT /9RdQLpa/Kugvlo50uaC9QiNSu41VpWtbSKAbn0Czrr0M4rX7/Hm/NgBAYITyQPH kAC/jys3BsHLtp4q7UKJKDjZdMIaYZS3Lk/Gr68gZggPsbsG7jyRacoPFzbfVGJb 5epJ1FNgJbTpf9TJzm4s774TfFBTfWjsl4RVgVDD7cXNh/zVVss99GHadrqrLQT5 bYkuy/3/ezkx5EyaHEtwg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdelhedgheelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucenucfjughrpefhvffuff fkgggtsehttdertddttddtnecuhfhrohhmpehjohhhnhcumhhuhhhluceojhhmsehpuhgs rdhpihhnkheqnecuggftrfgrthhtvghrnhepgefhudekueehudeugffhgfegfeevhfetje ehhfeuleffgfeguedtffdvteeutedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghr rghmpehmrghilhhfrhhomhepjhhmsehpuhgsrdhpihhnkhdpnhgspghrtghpthhtohepud dpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepsghughdqghhnuhdqvghmrggtshes ghhnuhdrohhrgh X-ME-Proxy: Feedback-ID: i74194916:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Sun, 3 Nov 2024 22:26:53 -0500 (EST) From: john muhl To: bug-gnu-emacs@gnu.org Subject: [PATCH] Add song viewer to 'mpc' X-Debbugs-Cc: monnier@iro.umontreal.ca Date: Sun, 03 Nov 2024 21:26:52 -0600 Message-ID: <874j4n1xxf.fsf@pub.pink> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=103.168.172.159; envelope-from=jm@pub.pink; helo=fhigh-a8-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.6 (--) Tags: patch This adds a mpc-describe-song command which brings up a buffer full of information about the selected song. ------------=_1731604142-4149-1--