Cleanup resources when empc has been disconnected by the server

This commit is contained in:
Renaud Casenave-Péré 2012-08-03 18:42:18 +09:00
parent c4f18da3ba
commit b96930ddeb

19
empc.el
View file

@ -291,10 +291,11 @@ For status:
(defun empc-process-sentinel (proc event) (defun empc-process-sentinel (proc event)
"Process sentinel for `empc-process'." "Process sentinel for `empc-process'."
(let ((debug-on-error t) (let ((debug-on-error t)
(status (process-status proc))) (status (process-status proc)))
(cond ((eq status 'closed) (cond ((eq status 'closed)
(when empc-verbose (when empc-verbose
(message "empc: connection closed")))))) (message "empc: connection closed"))
(empc-cleanup)))))
(defun empc-process-filter (object string) (defun empc-process-filter (object string)
"Append STRING to the process buffer then process the data." "Append STRING to the process buffer then process the data."
@ -742,10 +743,14 @@ Send the password or retrieve available commands."
"Close connection between empc and mpd." "Close connection between empc and mpd."
(interactive) (interactive)
(let* ((process (empc-process empc-object))) (let* ((process (empc-process empc-object)))
(when (and process (if (and process
(processp process) (processp process)
(eq (process-status process) 'open)) (eq (process-status process) 'open))
(empc-send-close))) (empc-send-close)
(empc-cleanup))))
(defun empc-cleanup ()
"Cleanup empc resources after disconnection."
(when empc-object (when empc-object
(empc-close empc-object)) (empc-close empc-object))
(empc-mode-line nil) (empc-mode-line nil)