emms-help
[Top][All Lists]
Advanced

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

Re: How do I get the track info?


From: Edgar Lux
Subject: Re: How do I get the track info?
Date: Mon, 31 Aug 2020 23:04:13 +0200 (CEST)

Hello!

Thank you. I did try, but

On 2020-08-31 13:43, Yoni Rabkin wrote:

#+begin_quote
  git clone https://git.savannah.gnu.org/git/emms.git
  cd emms
  make emms-print-metadata
  sudo cp src/emms-print-metadata /usr/local/bin/
  cd ..
  rm -R emms
#+end_quote

did not work (still getting the full path of the file name in the mode-line). 
(What comes next is my honest attempt to show that I tried).

Then, I noticed that I could use
#+begin_src emacs-lisp
  (setq emms-info-libtag-program-name
        "~/path-to-emms/src/emms-print-metadata")
#+end_src
I tested, and =emms-print-metadata= _is_ found. I also noticed that 
=emms-info-libtag= uses =call-process=, which requires the executable to be in 
PATH, so I tried by using =process-file= instead, and =emms-print-metadata= 
from the compilation directory (by the way, a small observation: why is a 
binary created in =src=? may be replace =SRCDIR= by =DESTDIR= or =PREFIX= in 
the =Makefile=?)

Then, I noticed that =emms-info-libtag= always returns =nil=, and I tried to 
create my own function. I am not very good at LISP, and I got basically the 
same result. I am attaching my configuration for EMMS (notice that I changed 
the location of =emms-print-metadata=; no longer in =src=).

Please pay NO attention to the code below. I put it here just in case I need it 
later. One more thing, my other e-mail provider sometimes refuses to let me 
send e-mails

#+begin_src emacs-lisp
  (with-temp-buffer
      (process-file emms-info-libtag-program-name
                    nil '(t nil) nil
                    (emms-track-name
                     (emms-playlist-current-selected-track)))
      (goto-char (point-min))
      (while (and (not (eobp))
                  (looking-at "info-\\([^=\n\r]+\\)=\\([^\n\r]*\\)$"))
        (let ((name (intern-soft (match-string 1)))
              (value (match-string 2)))
          (if (or (string-match (match-string 1) "title")
                  (string-match (match-string 1) "artist"))

              (message "%s %s" name value)

            )
          )
        (forward-line 1)
        ))
#+end_src

Attachment: t.el.gz
Description: File Attachment: t.el.gz


reply via email to

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