[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emms-patches] darcs patch: emms-cache: Add standard enable/disable/... (and 5 more),
Michael Olson <=