diff options
author | Michael Olson <mwolson@gnu.org> | 2006-06-09 04:01:00 +0000 |
---|---|---|
committer | Michael Olson <mwolson@gnu.org> | 2006-06-09 04:01:00 +0000 |
commit | 0f73de32500bb2cfe99d9fa7fbd730addd67d46a (patch) | |
tree | f3d1df09bdaa67b35906887f5e73e45f0cfa82f9 /emms-cache.el | |
parent | ad3d6bb6d898cc42f673b99ea3721357d62c7d8f (diff) |
emms-cache: Add standard enable/disable/toggle interface and do a docfix for emms-cache-set-function.
darcs-hash:20060609040108-1bfb2-268d7a1f4c7590ffdedcda9506bfca53e02cc2ea.gz
Diffstat (limited to 'emms-cache.el')
-rw-r--r-- | emms-cache.el | 46 |
1 files changed, 43 insertions, 3 deletions
diff --git a/emms-cache.el b/emms-cache.el index 60b3b24..dba9fcf 100644 --- a/emms-cache.el +++ b/emms-cache.el @@ -49,12 +49,52 @@ "A mapping of paths to file info. This is used to cache over emacs sessions.") -(defvar emms-cache-file "~/.emms-cache" - "A file used to store cached file info information over sessions") - (defvar emms-cache-dirty nil "True if the cache has been updated since init.") +(defcustom emms-cache-file "~/.emms-cache" + "A file used to store cached file information over sessions." + :group 'emms + :type 'file) + +(defun emms-cache (arg) + "Turn on Emms caching if ARG is positive, off otherwise." + (interactive "p") + (if (and arg (> arg 0)) + (progn + (add-hook 'after-init-hook 'emms-cache-restore) + (add-hook 'kill-emacs-hook 'emms-cache-save) + (setq emms-cache-get-function 'emms-cache-get) + (setq emms-cache-set-function 'emms-cache-set) + (setq emms-cache-modified-function 'emms-cache-dirty)) + (remove-hook 'after-init-hook 'emms-cache-restore) + (remove-hook 'kill-emacs-hook 'emms-cache-save) + (setq emms-cache-get-function nil) + (setq emms-cache-set-function nil) + (setq emms-cache-modified-function nil))) + +;;;###autoload +(defun emms-cache-enable () + "Enable caching of Emms track data." + (interactive) + (emms-cache 1) + (message "Emms cache enabled")) + +;;;###autoload +(defun emms-cache-disable () + "Disable caching of Emms track data." + (interactive) + (emms-cache -1) + (message "Emms cache disabled")) + +;;;###autoload +(defun emms-cache-toggle () + "Toggle caching of Emms track data." + (interactive) + (if emms-cache-get-function + (emms-cache-disable) + (emms-cache-enable))) + (defun emms-cache-dirty (&rest ignored) "Mark the cache as dirty." (setq emms-cache-dirty t)) |