Expands "~" in file names before sending to mpg123.
authorTim Vaughan <plugd@thelambdalab.xyz>
Tue, 11 Aug 2020 16:22:30 +0000 (18:22 +0200)
committerTim Vaughan <plugd@thelambdalab.xyz>
Tue, 11 Aug 2020 16:22:30 +0000 (18:22 +0200)
mpg123 doesn't expand this character.  I suspect we were
getting away with it before because "~" didn't previously
appear in emacs' default directory.

emus.el

diff --git a/emus.el b/emus.el
index 84a9b9c..23a1da1 100644 (file)
--- a/emus.el
+++ b/emus.el
@@ -115,7 +115,6 @@ Used to prevent commands from interfering with library construction.")
         emus-process
       (let ((proc
              (make-process :name "emus-process"
-                           ;; :buffer (get-buffer-create "*emus-process*")
                            :command `(,emus-mpg123-program "-R"))))
         (set-process-query-on-exit-flag proc nil)
         (process-send-string proc "silence\n")
@@ -141,7 +140,10 @@ be used by `emus--load-library'."
 
 (defun emus-get-audio-files ()
   "Get all mp3 files in main emus directory."
-  (directory-files-recursively emus-directory ".*\\.mp3"))
+  (mapcar
+   (lambda (f)
+     (expand-file-name f))
+   (directory-files-recursively emus-directory ".*\\.mp3")))
 
 (defun emus-make-track (artist album title filename &optional pos)
   "Create an object representing an emus track.
@@ -238,7 +240,7 @@ by the filesystem."
 (defmacro emus--with-library (&rest body)
   "Evaluate BODY with the library initialized."
   `(if emus-tracks
-       (progn ,@body)
+       (unless emus--proc-in-use ,@body)
      (emus--load-library
       (lambda () ,@body))))