diff options
-rw-r--r-- | emms-player-mpv.el | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/emms-player-mpv.el b/emms-player-mpv.el index c4fc541..7d9099a 100644 --- a/emms-player-mpv.el +++ b/emms-player-mpv.el @@ -1,4 +1,4 @@ -;;; emms-player-mpv.el --- mpv support for EMMS +;;; emms-player-mpv.el --- mpv support for EMMS -*- lexical-binding: t; -*- ;; ;; Copyright (C) 2018 Free Software Foundation, Inc. @@ -130,7 +130,7 @@ depending on `emms-player-mpv-ipc-method' value and/or mpv version." "Update track duration when played by mpv. Uses `emms-player-mpv-event-functions' hook." :type 'boolean - :set (lambda (sym value) + :set (lambda (_sym value) (run-at-time 0.1 nil (lambda (value) (if value @@ -148,7 +148,7 @@ Uses `emms-player-mpv-event-functions' hook." This allows to dynamically update stream info from ICY tags, for example. Uses `emms-player-mpv-event-connect-hook' and `emms-player-mpv-event-functions' hooks." :type 'boolean - :set (lambda (sym value) + :set (lambda (_sym value) (run-at-time 0.1 nil (lambda (value) (if value @@ -213,7 +213,7 @@ Should be fine with both mpv and emacs, and probably never reached anyway.") (defvar emms-player-mpv-ipc-stop-command nil "Internal flag to track when stop command starts/finishes before next loadfile. Set to either nil, t or playback start function to call on end-file event after stop command. -This is a workaround for mpv-0.30+ behavior, when 'stop + loadfile' only runs 'stop'.") +This is a workaround for mpv-0.30+ behavior, where 'stop + loadfile' only runs 'stop'.") (defvar emms-player-mpv-event-connect-hook nil @@ -315,7 +315,7 @@ Error is signaled if mpv binary fails to run." 'file) ((pred (string> "000.016.999")) 'unix-socket) - (- 'ipc-server))))) + (_ 'ipc-server))))) ;; ----- mpv process @@ -572,7 +572,7 @@ PROC can be specified to avoid `emms-player-mpv-ipc' call (e.g. from sentinel/fi (let ((json (concat (json-encode (list :command cmd :request_id req-id)) "\n"))) (emms-player-mpv-debug-msg "json >> %s" json) - (condition-case err + (condition-case _err ;; On any disconnect, assume that mpv process is to blame and force restart. (process-send-string req-proc json) (error @@ -591,7 +591,7 @@ PROC can be specified to avoid `emms-player-mpv-ipc' call (e.g. from sentinel/fi (remhash req-id emms-player-mpv-ipc-req-table) (when handler (funcall handler data err))))) -(defun emms-player-mpv-ipc-req-error-printer (data err) +(defun emms-player-mpv-ipc-req-error-printer (_data err) "Simple default `emms-player-mpv-ipc-req-send' handler to log errors, if any." (when err (message "emms-player-mpv ipc-error: %s" err))) @@ -765,32 +765,37 @@ or otherwise schedule start/connect and set (setq emms-player-mpv-ipc-connect-command cmd)))) (defmacro emms-player-mpv-cmd-prog (cmd &rest handler-body) - "Macro around `emms-player-mpv-cmd' that creates + "Obsolete macro around `emms-player-mpv-cmd' that creates handler callback (see `emms-player-mpv-ipc-req-send') from HANDLER-BODY forms, which have following bindings: - mpv-cmd for CMD. - mpv-data for response data (decoded json, nil if none). -- mpv-error for response error (nil if no error, decoded json or 'connection-error)." +- mpv-error for response error (nil if no error, decoded json or 'connection-error). + +Do not use it with new code - it will raise warnings when used with lexical bindings, +and will be removed in a future EMMS version." `(emms-player-mpv-cmd ,cmd (apply-partially (lambda (mpv-cmd mpv-data mpv-error) ,@handler-body) ,cmd))) +(make-obsolete 'emms-player-mpv-cmd-prog nil "Emms 7") + (defun emms-player-mpv-playable-p (track) (memq (emms-track-type track) '(file url streamlist playlist))) -(defun emms-player-mpv-start-error-handler (mpv-cmd mpv-data mpv-error) +(defun emms-player-mpv-start-error-handler (mpv-cmd _mpv-data mpv-error) "Playback-restart error handler for `emms-player-mpv-cmd', to restart/reconnect-to mpv and re-run MPV-CMD, if there was any issue when trying to start it initially." (if (eq mpv-error 'connection-error) ;; Reconnect and restart playback if current connection fails (e.g. mpv crash) - (emms-player-mpv-cmd-prog - (emms-player-mpv-cmd mpv-cmd) - (emms-player-mpv-cmd `(set pause no))) - (emms-player-mpv-cmd `(set pause no)))) + (emms-player-mpv-cmd mpv-cmd + (lambda (_mpv-data _mpv-error) + (emms-player-mpv-cmd mpv-cmd) + (emms-player-mpv-cmd `(set pause no)))))) (defun emms-player-mpv-start (track) (setq emms-player-mpv-stopped nil) |