emms-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emms-patches] darcs patch: emms-cache: Add standard enable/disable/...


From: Michael Olson
Subject: [Emms-patches] darcs patch: emms-cache: Add standard enable/disable/... (and 5 more)
Date: Fri, 09 Jun 2006 00:44:53 -0400

Fri Jun  9 00:01:08 EDT 2006  Michael Olson <address@hidden>
  * emms-cache: Add standard enable/disable/toggle interface and do a docfix 
for emms-cache-set-function.

Fri Jun  9 00:16:06 EDT 2006  Michael Olson <address@hidden>
  * emms-cache: Small compiler fix.

Fri Jun  9 00:20:02 EDT 2006  Michael Olson <address@hidden>
  * emms-setup: Get rid of pointless compiler warning.

Fri Jun  9 00:35:38 EDT 2006  Michael Olson <address@hidden>
  * emms-player-mpd: Fix minor bug when importing the current MusicPD playlist 
into EMMS.

Fri Jun  9 00:36:43 EDT 2006  Michael Olson <address@hidden>
  * emms-player-mpd: Rename volume functions to better match the namespace 
created by emms-volume.el.

Fri Jun  9 00:38:31 EDT 2006  Michael Olson <address@hidden>
  * emms-player-mpd: Add functionality to dump MusicPD data into the EMMS 
cache.  This allows for easy integration with emms-browser.el.
New patches:

[emms-cache: Add standard enable/disable/toggle interface and do a docfix for 
emms-cache-set-function.
Michael Olson <address@hidden>**20060609040108] {
hunk ./emms-cache.el 52
-(defvar emms-cache-file "~/.emms-cache"
-  "A file used to store cached file info information over sessions")
-
hunk ./emms-cache.el 55
+(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)))
+
hunk ./emms-setup.el 87
-  (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))
+  (emms-cache 1))
hunk ./emms.el 225
-This is called with a single argument, the track."
+This is called with three arguments: the type of the track, the
+name of the track, and the track itself."
}

[emms-cache: Small compiler fix.
Michael Olson <address@hidden>**20060609041606] {
hunk ./emms-cache.el 46
+
+(require 'emms)
}

[emms-setup: Get rid of pointless compiler warning.
Michael Olson <address@hidden>**20060609042002] {
hunk ./emms-setup.el 87
-  (emms-cache 1))
+  (when (fboundp 'emms-cache)           ; work around compiler warning
+    (emms-cache 1)))
}

[emms-player-mpd: Fix minor bug when importing the current MusicPD playlist 
into EMMS.
Michael Olson <address@hidden>**20060609043538] {
hunk ./emms-player-mpd.el 372
+(defun emms-player-mpd-get-mpd-filename (file)
+  "Turn FILE into something that MusicPD can understand.
+This usually means removing a prefix."
+  (if (or (not emms-player-mpd-music-directory)
+          (not (eq (aref file 0) ?/))
+          (string-match "\\`http://"; file))
+      file
+    (file-relative-name file emms-player-mpd-music-directory)))
+
+(defun emms-player-mpd-get-emms-filename (file)
+  "Turn FILE into something that EMMS can understand.
+This usually means adding a prefix."
+  (if (or (not emms-player-mpd-music-directory)
+          (eq (aref file 0) ?/)
+          (string-match "\\`http://"; file))
+      file
+    (expand-file-name file emms-player-mpd-music-directory)))
+
hunk ./emms-player-mpd.el 471
+            (setq file (emms-player-mpd-get-emms-filename file))
hunk ./emms-player-mpd.el 474
-                          'file))
+                           'file))
hunk ./emms-player-mpd.el 690
-(defun emms-player-mpd-get-filename (file)
-  "Turn FILE into something that MusicPD can understand.
-This usually means removing a prefix."
-  (if (or (not emms-player-mpd-music-directory)
-          (not (eq (aref file 0) ?/))
-          (string-match "\\`http://"; file))
-      file
-    (file-relative-name file emms-player-mpd-music-directory)))
-
hunk ./emms-player-mpd.el 712
-  (setq file (emms-player-mpd-get-filename file))
+  (setq file (emms-player-mpd-get-mpd-filename file))
hunk ./emms-player-mpd.el 1054
-                 (setq file (emms-player-mpd-get-filename
+                 (setq file (emms-player-mpd-get-mpd-filename
}

[emms-player-mpd: Rename volume functions to better match the namespace created 
by emms-volume.el.
Michael Olson <address@hidden>**20060609043643] {
hunk ./emms-player-mpd.el 946
-(defun emms-player-mpd-volume-change (amount)
+;;; Volume
+
+(defun emms-volume-mpd-change (amount)
hunk ./emms-player-mpd.el 960
-(defun emms-player-mpd-volume-up ()
+(defun emms-volume-mpd-raise ()
hunk ./emms-player-mpd.el 963
-  (emms-player-mpd-volume-change 5))
+  (emms-volume-mpd-change 5))
hunk ./emms-player-mpd.el 965
-(defun emms-player-mpd-volume-down ()
+(defun emms-volume-mpd-lower ()
hunk ./emms-player-mpd.el 968
-  (emms-player-mpd-volume-change -5))
+  (emms-volume-mpd-change -5))
+
+;;; Now playing
}

[emms-player-mpd: Add functionality to dump MusicPD data into the EMMS cache.  
This allows for easy integration with emms-browser.el.
Michael Olson <address@hidden>**20060609043831] {
hunk ./emms-player-mpd.el 1069
+
+;;; Caching
+
+(defun emms-cache-set-from-mpd-track (track-info)
+  "Dump TRACK-INFO into the EMMS cache.
+The track should be an alist as per `emms-player-mpd-get-alist'."
+  (when emms-cache-set-function
+    (let ((track (emms-dictionary '*track*))
+          (name (cdr (assoc "file" track-info))))
+      (when name
+        (setq name (emms-player-mpd-get-emms-filename name))
+        (emms-track-set track 'type 'file)
+        (emms-track-set track 'name name)
+        (emms-info-mpd-process track track-info)
+        (funcall emms-cache-set-function 'file name track)))))
+
+(defun emms-cache-set-from-mpd-directory (dir)
+  "Dump all MusicPD data from DIR into the EMMS cache.
+This is useful to do when you have recently acquired new music."
+  (interactive
+   (list (read-string "Directory: ")))
+  (if emms-cache-set-function
+      (progn
+        (message "Dumping MusicPD data to cache...")
+        (emms-player-mpd-send
+         (concat "listallinfo " dir)
+         nil
+         (lambda (closure response)
+           (message "Dumping MusicPD data to cache...processing")
+           (let ((info (emms-player-mpd-get-alists
+                        (emms-player-mpd-parse-response response))))
+             (dolist (track-info info)
+               (emms-cache-set-from-mpd-track track-info))
+             (message "Dumping MusicPD data to cache...done")))))
+    (error "Caching is not enabled")))
+
+(defun emms-cache-set-from-mpd-all ()
+  "Dump all MusicPD data into the EMMS cache.
+This is useful to do once, just before using emms-browser.el, in
+order to prime the cache."
+  (interactive)
+  (emms-cache-set-from-mpd-directory ""))
}

Context:

[Standardize copyright notices.  Add COPYING file.  Mention license in README.
Michael Olson <address@hidden>**20060608194123] 
[Fix compiler warnings in emms-cache.el.
Michael Olson <address@hidden>**20060608184612] 
[emms-metaplaylist-mode: Fix bug introduced by the recent emms-playlist-mode 
overhaul.  Add faces for light backgrounds.
Michael Olson <address@hidden>**20060608143846] 
[NEWS is new
address@hidden 
[refactor browser mode creation code
Damien Elmes <address@hidden>**20060608123618
 - make the rendering function (browse-by-artist, etc) responsible for
   the mode name
 - fix a bug where the wrong buffer is used
] 
[browser sorting, and bug fixes
Damien Elmes <address@hidden>**20060608105253
 - sort tracks when they're added to the playlist
 - fix a bug where we didn't uniquify the buffer
 - distinguish between files and urls
 - modify emms-playlist-sort to accept an optional region
] 
[update modeline when changing browsing method
Damien Elmes <address@hidden>**20060608094037] 
[avoid rebuilding the browser window each time
Damien Elmes <address@hidden>**20060608092623] 
[small typo fix
Damien Elmes <address@hidden>**20060608032546] 
[fix RET on trailing \n
Damien Elmes <address@hidden>**20060608090703
 \n isn't propertized which means hitting RET on a playlist or browser
 entry fails. this patch moves the point before trying to read the
 properties.
] 
[add a metadata browser - emms-browser.el
Damien Elmes <address@hidden>**20060608084400
 * preliminary work on a metadata browser - still alpha, but it's
   useable for me
 * also updated my email address in emms-cache.el (whoops)
] 
[emms-playlist-mode: Facify tracks on startup.
address@hidden 
[emms.el: Change directory to / before starting the player.
address@hidden 
[emms-playlist-mode: When making new overlays, do not allow the rear to 
advance.  This prevents some display issues.  If we really need to modify the 
text there, we should be using (insert-before-markers).
Michael Olson <address@hidden>**20060607215212] 
[Make emms-property-region bulletproof.
Michael Olson <address@hidden>**20060607215113] 
[Fix typo in emms-property-region
address@hidden 
[emms.el, simplified emms-property-region considerably.
address@hidden 
[Very basic support for recording the time you last played a track.
address@hidden
 
 * emms-last-played.el: New file.
   Nothing fancy right now, more to come soon.
 * emms-setup.el: emms-devel now requires and setups emms-last-played.
] 
[Mark the cache as dirty for each modification.
address@hidden 
[fix damien elmes's email address
Damien Elmes <address@hidden>**20060607154000] 
[emms.el: The currently playing marker now should stay where it is, even for 
yanks
address@hidden 
[emms-playlist-mode: Stop overlay from being attached to text inserted before it
address@hidden 
[emms sources now switch add/play behavior when a prefix argument is supplied.
address@hidden 
[Add autoloads to emms-setup.el
address@hidden 
[Typo, defvar => defcustom for emms-cache-set-function
address@hidden 
[Cleaned up the cached code in emms.el a bit
address@hidden 
[refactor caching code into emms-cache.el
Damien Elmes <address@hidden>**20060607125345
 * caching support is now provided via two function vars in emms.el,
   emms-cache-get-function and emms-cache-set-function
 * (emms-standard) or above will enable caching support
 * you'll need to remove .emms-cache or s/emms-info-cache/emms-cache-db/
] 
[emms-playlist-mode doesn't need overlay compatibility anymore
address@hidden 
[emms-playlist-mode.el - now with less overlay!
address@hidden 
[emms-info: Fix bug that occurs after clearing the current playlist and trying 
to re-add songs to it.
Michael Olson <address@hidden>**20060606144439] 
[AUTHORS: fixed Lucas' e-mail address
address@hidden 
[info-cache-dirty/coding
Damien Elmes <address@hidden>**20060605163339
 
 * mark the info cache as dirty when it's modified, so we don't have to
   write it out all the time
 * save the cache as mule-utf-8 - comments? i'm not sure if this is
   correct
] 
[AUTHORS: Damien Elmes address updated
address@hidden 
[emms-info caching (thanks to Damien Elmes)
address@hidden 
[Sort file names from `emms-source-file-directory-tree-function'.
address@hidden 
[Add some sources for inserting playlists without inserting their contents, and 
likewise for directories of playlist files.  Exclude some files and directories 
from being added when walking directories.
Michael Olson <address@hidden>**20060604195602] 
[emms-player-mpd: Differentiate between files and URLs when it makes sense to 
do so.
Michael Olson <address@hidden>**20060604195449] 
[Miscellaneous minor cleanups.
Michael Olson <address@hidden>**20060604195311] 
[Make sure we never have an empty track description when inserting a song into 
a playlist buffer.
Michael Olson <address@hidden>**20060604194940] 
[Remove debian-extras package as requested by ftpmasters (debian)
address@hidden 
[Put volume options in their own customize group.
Martin Schoenmakers <address@hidden>**20060601193853
 
 Added a separate emms-volume group for customize and put things there instead
 of in the main thing.
] 
[emms-volume.el: Cosmetic stuff, defvar -> defcustom
address@hidden 
[emms-volume.el: Minor cosmetic cleanup
address@hidden 
[emms-volme.el: Add some requires.
address@hidden 
[emms-volume-amixer.el: Provide a way to set the control for amixer
address@hidden 
[Make handling of multiple playlist buffers less error-prone.
Michael Olson <address@hidden>**20060531203810] 
[AUTHORS: Add Martin Schoenmakers. Welcome! :-)
address@hidden 
[Add emms-volume and emms-volume-amixer.
Martin Schoenmakers <address@hidden>**20060530223500
 
 New files: emms-volume.el provides some general volume changing things,
 including a minor mode to more easily change volume when not in the
 EMMS buffer. emms-volume-amixer.el is a backend using amixer.
 
] 
[emms-streams: Re-add space after prompt and use completion for type.
Michael Olson <address@hidden>**20060530190620] 
[allow nonzero ogginfo exit plus some reindenting
Martin Schoenmakers <address@hidden>**20060530130411
 
 When ogginfo gave a nonzero value on exit, any valid data would get tossed
 if there was any. This prevented emms from showing info for files that are
 tagged but a bit odd.
 
 Also reindented emms-info-ogginfo accordingly, which incidentally removed
 some tabs in favour of spaces.
 
] 
[emms-streams: When the user wants emms-streams to play the selected stream 
instead of add it, create our own playlist buffer.  When quitting, if we own 
the current playlist buffer, kill it.
Michael Olson <address@hidden>**20060530144243] 
[emms-streams: Re-implement yank and kill so that they do the right thing with 
emms-stream-list.
Michael Olson <address@hidden>**20060530045429] 
[emms-streams: Implement kill and yank.
Michael Olson <address@hidden>**20060530040114] 
[emms-streams: Make hitting RET on a URL do the right thing, improve cursor 
movement, and mark the buffer as unmodified after performing a save.
Michael Olson <address@hidden>**20060529030043] 
[emms-player-mpd: Use more robust method of detecting whether we need to 
force-feed MusicPD our playlist.
Michael Olson <address@hidden>**20060525014253] 
[emms-playlist-mode: Make "d" kill the entire line.  This seems to be a good 
compromise of those who use C-k and those who want more standard object-killing 
behavior.
foo**20060524200008] 
[emms-player-mpd: When showing the currently-playing song, prepend the name of 
the radio station, if it exists.
foo**20060524195911] 
[emms-player-mpd: Make seek work correctly.
Michael Olson <address@hidden>**20060525033120] 
[emms-player-mpd: Fix bug that caused unconditional reloading of the entire 
MusicPD playlist whenever the track was changed manually.
Michael Olson <address@hidden>**20060524061655] 
[emms-player-mpd: Overhaul for streamlist support, and fix a few miscellaneous 
issues.
Michael Olson <address@hidden>**20060524055707] 
[emms-player-mpd: Add a few checks to make sure that the given buffer exists 
before trying to do anything with it.
Michael Olson <address@hidden>**20060517035419] 
[emms-source-playlist: Do not expand names of files in playlists, as this can 
cause problems with emms-player-mpd in some configurations.
Michael Olson <address@hidden>**20060516081257] 
[emms-playlist-mode: Implement the option (disabled by default) of opening a 
new EMMS buffer for a playlist, when hitting RET on one.
Michael Olson <address@hidden>**20060510040730] 
[emms-playlist-mode.el: Don't put a period after the mode map. This hangs 21.4 
on display.
address@hidden 
[TAG 2.0
address@hidden 
Patch bundle hash:
349eaa3f4499c9696a98dab8769f70851fb67c6f

reply via email to

[Prev in Thread] Current Thread [Next in Thread]