X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=emus.git;a=blobdiff_plain;f=emus.el;h=cfa674a86ea8b49a1142003d5b40738dbeb3d607;hp=c96fa599b9ba51acd1afc4cbe6cf5ba164aebe37;hb=HEAD;hpb=6d107019a4de5bcc9c5b840c69047fb03116b1d3 diff --git a/emus.el b/emus.el index c96fa59..e5f2ea3 100644 --- a/emus.el +++ b/emus.el @@ -56,6 +56,10 @@ "Name of (and, optionally, path to) mpg123 binary." :type '(string)) +(defcustom emus-mpg123-args nil + "Arguments to pass to mpg123." + :type '(repeat string)) + (defface emus-artist '((((background dark)) :inherit font-lock-string-face :background "#222" :extend t) (t :inherit font-lock-string-face :background "#ddd" :extend t)) @@ -125,7 +129,9 @@ To enable or disable progress tracking, using `emus-toggle-progress-tracking'. emus-process (let ((proc (make-process :name "emus-process" - :command `(,emus-mpg123-program "-R")))) + :command `(,emus-mpg123-program + ,@emus-mpg123-args + "-R")))) (set-process-query-on-exit-flag proc nil) (unless emus-progress-enabled (process-send-string proc "silence\n")) @@ -149,15 +155,10 @@ be used by `emus--load-library'." "Kill any existing mpg123 process." (let ((emus-process (get-process "emus-process"))) (if emus-process - (kill-process emus-process)))) - -(defun emus-restart () - "Restart emus, regardless of current state." - (interactive) - (emus-kill-process) - (setq emus-state 'stopped - emus--proc-in-use nil - emus-tracks nil)) + (kill-process emus-process)) + (setq emus-state 'stopped + emus--proc-in-use nil + emus-tracks nil))) ;;; Library ;; @@ -765,13 +766,15 @@ Used to update browser display when `emus-current-track' and/or `emus-state' cha (defun emus-restart-browse () "Restart the emus process, then refresh the browse window." (interactive) - (emus-restart) + (message "Restarting mpg123.") + (emus-kill-process) (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) + (message "Restarting mpg123.") + (emus-kill-process) (run-at-time 0.1 nil #'emus-display-status)) ;Slight delay to wait for kill signal to take effect @@ -793,7 +796,7 @@ Used to update browser display when `emus-current-track' and/or `emus-state' cha (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-restart-refresh) + (define-key map (kbd "!") 'emus-restart-browse) (when (fboundp 'evil-define-key*) (evil-define-key* 'motion map (kbd "SPC") 'emus-playpause-status @@ -812,7 +815,7 @@ Used to update browser display when `emus-current-track' and/or `emus-state' cha (kbd ">") 'emus-jump-1m-forward-status (kbd "c") 'emus-goto-current-status (kbd "#") 'emus-toggle-progress-status - (kbd "!") 'emus-restart-refresh)) + (kbd "!") #'emus-restart-browse)) map) "Keymap for emus browser.")