From 6d107019a4de5bcc9c5b840c69047fb03116b1d3 Mon Sep 17 00:00:00 2001 From: plugd Date: Sun, 30 Jul 2023 12:24:38 +0200 Subject: [PATCH] Changed how restart works. --- emus.el | 65 ++++++++++++++++++++++++++++++++------------------------- 1 file changed, 37 insertions(+), 28 deletions(-) diff --git a/emus.el b/emus.el index d0a972d..c96fa59 100644 --- a/emus.el +++ b/emus.el @@ -243,9 +243,9 @@ Once the library is initialized, the function THEN is called." (defun emus--make-track-from-tagstr (filename tagstr) "Parse TAGSTR to populate the fields of a track corresponding to FILENAME." - (let ((artist "") - (album "") - (title "")) + (let ((artist "Unknown Artist") + (album "Unknown Album") + (title filename)) (dolist (line (split-string tagstr "\n")) (let ((found-artist (elt (split-string line "@I ID3v2.artist:") 1)) (found-album (elt (split-string line "@I ID3v2.album:") 1)) @@ -759,9 +759,21 @@ Used to update browser display when `emus-current-track' and/or `emus-state' cha (interactive) (emus-stop) (setq emus-tracks nil) - (emus--with-library - (emus-browse) - (emus-display-status))) + (emus-browse) + (emus-display-status)) + +(defun emus-restart-browse () + "Restart the emus process, then refresh the browse window." + (interactive) + (emus-restart) + (run-at-time 0.1 nil #'emus-browse)) ;Slight delay to wait for kill signal to take effect + +(defun emus-restart-status () + "Restart the emus process, then display the status." + (interactive) + (emus-restart) + (run-at-time 0.1 nil #'emus-display-status)) ;Slight delay to wait for kill signal to take effect + (defvar emus-browser-mode-map (let ((map (make-sparse-keymap))) @@ -780,33 +792,30 @@ Used to update browser display when `emus-current-track' and/or `emus-state' cha (define-key map (kbd "<") 'emus-jump-1m-backward-status) (define-key map (kbd ">") 'emus-jump-1m-forward-status) (define-key map (kbd "c") 'emus-goto-current-status) - (define-key map (kbd "!") 'emus-toggle-progress-status) + (define-key map (kbd "#") 'emus-toggle-progress-status) + (define-key map (kbd "!") 'emus-restart-refresh) (when (fboundp 'evil-define-key*) (evil-define-key* 'motion map - (kbd "SPC") 'emus-playpause-status - (kbd "o") 'emus-stop-status - (kbd "+") 'emus-volume-up-status - (kbd "=") 'emus-volume-up-status - (kbd "-") 'emus-volume-down-status - (kbd "R") 'emus-refresh-status - (kbd "n") 'emus-play-next-status - (kbd "p") 'emus-play-prev-status - (kbd "N") 'emus-play-next-album-status - (kbd "P") 'emus-play-prev-album-status - (kbd ",") 'emus-jump-10s-backward-status - (kbd ".") 'emus-jump-10s-forward-status - (kbd "<") 'emus-jump-1m-backward-status - (kbd ">") 'emus-jump-1m-forward-status - (kbd "c") 'emus-goto-current-status - (kbd "!") 'emus-toggle-progress-status)) + (kbd "SPC") 'emus-playpause-status + (kbd "o") 'emus-stop-status + (kbd "+") 'emus-volume-up-status + (kbd "=") 'emus-volume-up-status + (kbd "-") 'emus-volume-down-status + (kbd "R") 'emus-refresh-status + (kbd "n") 'emus-play-next-status + (kbd "p") 'emus-play-prev-status + (kbd "N") 'emus-play-next-album-status + (kbd "P") 'emus-play-prev-album-status + (kbd ",") 'emus-jump-10s-backward-status + (kbd ".") 'emus-jump-10s-forward-status + (kbd "<") 'emus-jump-1m-backward-status + (kbd ">") 'emus-jump-1m-forward-status + (kbd "c") 'emus-goto-current-status + (kbd "#") 'emus-toggle-progress-status + (kbd "!") 'emus-restart-refresh)) map) "Keymap for emus browser.") -(defun emus-restart () - "Restart emus." - (interactive) - (emus-kill-process)) - (define-derived-mode emus-browser-mode special-mode "emus-browser" "Major mode for EMUS music player file browser." (setq-local buffer-invisibility-spec nil)) -- 2.20.1