[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[emms-help] [PATCH] Play/pause dwim, tries to pause/play music
From: |
Alejandro Erickson |
Subject: |
[emms-help] [PATCH] Play/pause dwim, tries to pause/play music |
Date: |
Wed, 22 Jun 2016 23:34:59 +0100 |
(emms-play-pause-dwim) first tries (emms-pause). If an error is
encountered it tries to play the first item in the current playlist.
Failing that it plays something random from the emms browser. If it
fails again, it emits a message.
---
lisp/emms.el | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/lisp/emms.el b/lisp/emms.el
index 2d282bb..5a037ed 100644
--- a/lisp/emms.el
+++ b/lisp/emms.el
@@ -434,6 +434,43 @@ If player hasn't started, then start it now."
(emms-player-pause)
(emms-start)))
+(defun emms-play-pause-dwim ()
+ "Try to (un)pause, or play from playlist, or play a random track from the
music library."
+ (interactive)
+ (let ((res nil))
+ (ignore-errors
+ (emms-pause)
+ (setq res t)
+ )
+ (unless res
+ (let ((res nil))
+ (ignore-errors
+ (emms-playlist-mode-go)
+ (goto-line 1)
+ (emms-playlist-mode-play-smart)
+ (emms-playlist-mode-bury-buffer)
+ (setq res t)
+ )
+ (unless res
+ (let ((res nil))
+ (ignore-errors
+ (emms-browser)
+ (emms-browse-by-album)
+ (emms-browser-goto-random)
+ (emms-browser-add-tracks-and-play)
+ (emms-browser-bury-buffer)
+ (setq res t)
+ )
+ (unless res
+ (message "Failed to play music. Populate your EMMS library or
playlist.")
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+
(defun emms-seek (seconds)
"Seek the current player SECONDS seconds.
This can be a floating point number for sub-second fractions.
--
2.8.3
- [emms-help] [PATCH] Play/pause dwim, tries to pause/play music,
Alejandro Erickson <=