diff options
-rw-r--r-- | emms-playlist-limit.el | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/emms-playlist-limit.el b/emms-playlist-limit.el index 95816a2..f532ca2 100644 --- a/emms-playlist-limit.el +++ b/emms-playlist-limit.el @@ -26,16 +26,43 @@ ;;; User Interfacs -;;;###autoload +(defvar emms-playlist-limit-enabled-p nil + "If non-nil, emms playlist limit is enabled.") + (defun emms-playlist-limit (arg) - "Turn on emms limit if ARG is positive, off otherwise." + "Turn on emms playlist limit if ARG is positive, off otherwise." (interactive "p") (if (and arg (> arg 0)) - (add-hook 'emms-playlist-source-inserted-hook - 'emms-playlist-limit-insert) + (progn + (setq emms-playlist-limit-enabled-p t) + (add-hook 'emms-playlist-source-inserted-hook + 'emms-playlist-limit-insert)) + (setq emms-playlist-limit-enabled-p nil) (remove-hook 'emms-playlist-source-inserted-hook 'emms-playlist-limit-insert))) +;;;###autoload +(defun emms-playlist-limit-enable () + "Turn on emms playlist limit." + (interactive) + (emms-playlist-limit 1) + (message "emms playlist limit enabled")) + +;;;###autoload +(defun emms-playlist-limit-disable () + "Turn off emms playlist limit." + (interactive) + (emms-playlist-limit -1) + (message "emms playlist limit disabled")) + +;;;###autoload +(defun emms-playlist-limit-toggle () + "Toggle emms playlist limit." + (interactive) + (if emms-playlist-limit-enabled-p + (emms-playlist-limit-disable) + (emms-playlist-limit-enable))) + (defmacro define-emms-playlist-limit (attribute) "Macro for defining emms playlist limit functions." `(defun ,(intern (format "emms-playlist-limit-to-%s" attribute)) (regexp) |