+(defun emus--play-nearby (offset)
+ (let ((idx (seq-position emus-records emus-current-record)))
+ (if idx
+ (let ((next-record (elt emus-records (+ idx offset))))
+ (if next-record
+ (emus-play-record next-record)
+ (error "Track does not exist")))
+ (error "No track is currently selected."))))
+
+(defun emus-play-next ()
+ (interactive)
+ (emus--play-nearby 1))
+
+(defun emus-play-prev ()
+ (interactive)
+ (emus--play-nearby -1))
+
+(defun emus-display-status ()
+ (interactive)
+ (message
+ (concat "Emus: Volume %d%%"
+ (pcase emus-state
+ ('stopped " [Stopped]")
+ ('paused " [Paused]")
+ ('playing " [Playing]")
+ (_ ""))
+ (if emus-current-record
+ (format " - %.30s (%.20s)"
+ (emus-record-title emus-current-record)
+ (emus-record-artist emus-current-record))
+ ""))
+ emus-current-volume))
+