[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emms-patches] darcs patch: New macro emms-walk-tracks (and 3 more)
From: |
Michael Olson |
Subject: |
[Emms-patches] darcs patch: New macro emms-walk-tracks (and 3 more) |
Date: |
Mon, 29 Jan 2007 04:22:58 -0500 |
Mon Jan 29 04:11:41 EST 2007 Michael Olson <address@hidden>
* New macro emms-walk-tracks
This macro makes it easy to write code which steps forward through the
tracks of the current buffer iteratively.
Mon Jan 29 04:13:30 EST 2007 Michael Olson <address@hidden>
* Distinguish `emms-track-description' and `emms-track-force-description'
The idea is that emms-track-force-description is only allowed to be
used when inserting descriptions into a playlist buffer. This lets us
distinguish between the content and layout of the text, for add-ons
like emms-mark that want to do something decorative with the text.
Mon Jan 29 04:17:16 EST 2007 Michael Olson <address@hidden>
* emms-playlist: Pay attention to selection when updating
Make sure that we preserve the current selection if updating the
currently-selected track..
Mon Jan 29 04:18:33 EST 2007 Michael Olson <address@hidden>
* emms-mark: Overhaul and turn into a derived mode
Make emms-mark integrate better with the rest of EMMS by turning it
into a derived mode of emms-playlist-mode. This allows it to have its
own keymap derived from emms-playlist-mode, and be easily enabled and
disabled without messing up the output from emms-show.
It will operate on a buffer-by-buffer basis, but can easily be made
the default playlist mode if desired.
We have to avoid calling emms-playlist-mode a second time when
starting emms-mark-mode, so that the selection does not disappear.
Thus, it must be its own function, rather than using
define-derived-mode.
New patches:
[New macro emms-walk-tracks
Michael Olson <address@hidden>**20070129091141
This macro makes it easy to write code which steps forward through the
tracks of the current buffer iteratively.
] {
hunk ./emms.el 299
+(defmacro emms-walk-tracks (&rest body)
+ "Execute BODY for each track in the current buffer, starting at point.
+The point will be placed at the beginning of the track before
+executing BODY.
+
+The point will not be restored afterward."
+ (let ((donep (make-symbol "donep")))
+ `(let ((,donep nil))
+ ;; skip to first track if not on one
+ (unless (emms-playlist-track-at (point))
+ (condition-case nil
+ (emms-playlist-next)
+ (error
+ (setq ,donep t))))
+ ;; walk tracks
+ (while (not ,donep)
+ ,@body
+ (condition-case nil
+ (emms-playlist-next)
+ (error
+ (setq ,donep t)))))))
+(put 'emms-walk-tracks 'lisp-indent-function 0)
+(put 'emms-walk-tracks 'edebug-form-spec '(body))
+
hunk ./emms.el 860
- (let ((track-indices nil)
- (donep nil))
- (condition-case nil
- (progn
- (emms-playlist-first)
- (setq track-indices (cons (point)
- track-indices)))
- (error
- (setq donep t)))
- (while (not donep)
- (condition-case nil
- (progn
- (emms-playlist-next)
- (setq track-indices (cons (point)
- track-indices)))
- (error
- (setq donep t))))
+ (let ((track-indices nil))
+ (goto-char (point-min))
+ (emms-walk-tracks
+ (setq track-indices (cons (point)
+ track-indices)))
hunk ./emms.el 929
- (let ((tracks nil)
- (donep nil))
+ (let ((tracks nil))
hunk ./emms.el 932
- (condition-case nil
- (emms-playlist-first)
- (error
- (setq donep t)))
- (while (not donep)
+ (goto-char (point-min))
+ (emms-walk-tracks
hunk ./emms.el 935
- tracks))
- (condition-case nil
- (emms-playlist-next)
- (error
- (setq donep t)))))
+ tracks))))
}
[Distinguish `emms-track-description' and `emms-track-force-description'
Michael Olson <address@hidden>**20070129091330
The idea is that emms-track-force-description is only allowed to be
used when inserting descriptions into a playlist buffer. This lets us
distinguish between the content and layout of the text, for add-ons
like emms-mark that want to do something decorative with the text.
] {
hunk ./emms-playlist-mode.el 286
- (insert (emms-track-description track) "\n"))
+ (insert (emms-track-force-description track) "\n"))
hunk ./emms-playlist-mode.el 402
-It creates a buffer called \"filename\", and restore the contents
+It creates a buffer called \"filename\", and restores the contents
hunk ./emms-playlist-mode.el 414
- (condition-case nil
- (progn
- (emms-playlist-first)
- (emms-playlist-update-track)
- (while t
- (emms-playlist-next)
- (emms-playlist-update-track)))
- (error
- nil)))
+ (goto-char (point-min))
+ (emms-walk-tracks
+ (emms-playlist-update-track)))
hunk ./emms.el 539
-This function uses `emms-track-description-function'."
- (funcall emms-track-description-function track))
+This function uses the global value for `emms-track-description-function',
+rather than anything the current mode might have set.
+
+Use `emms-track-force-description' instead if you need to insert
+a description into a playlist buffer."
+ (funcall (default-value 'emms-track-description-function) track))
hunk ./emms.el 567
- (let ((desc (emms-track-description track)))
+ (let ((desc (funcall emms-track-description-function track)))
}
[emms-playlist: Pay attention to selection when updating
Michael Olson <address@hidden>**20070129091716
Make sure that we preserve the current selection if updating the
currently-selected track..
] {
hunk ./emms-playlist-mode.el 458
- 'emms-track)))
+ 'emms-track))
+ (selectedp (emms-playlist-selected-track-at-p)))
hunk ./emms-playlist-mode.el 463
- (emms-playlist-mode-insert-track track t)))))
+ (when selectedp
+ (delete-overlay emms-playlist-mode-selected-overlay)
+ (setq emms-playlist-mode-selected-overlay nil))
+ (emms-playlist-mode-insert-track track t))
+ (when selectedp
+ (emms-playlist-select (point))))))
}
[emms-mark: Overhaul and turn into a derived mode
Michael Olson <address@hidden>**20070129091833
Make emms-mark integrate better with the rest of EMMS by turning it
into a derived mode of emms-playlist-mode. This allows it to have its
own keymap derived from emms-playlist-mode, and be easily enabled and
disabled without messing up the output from emms-show.
It will operate on a buffer-by-buffer basis, but can easily be made
the default playlist mode if desired.
We have to avoid calling emms-playlist-mode a second time when
starting emms-mark-mode, so that the selection does not disappear.
Thus, it must be its own function, rather than using
define-derived-mode.
] {
hunk ./emms-mark.el 30
+;; To activate it for the current buffer only, do:
+;; (emms-mark-mode)
+
+;; To make this the default EMMS mode, do:
+;; (setq emms-playlist-default-major-mode 'emms-mark-mode)
+
hunk ./emms-mark.el 44
-(defvar emms-mark-track-desc-functions
- '(emms-track-simple-description
- emms-info-track-description)
- "A list of track description function. If you want emms support
-mark, you should add your favorite track description function to this
-list and use `emms-mark-select-desc-function' to set the new track
-description function.")
-
-(defvar emms-mark-selected-desc-function
- emms-track-description-function)
-
hunk ./emms-mark.el 47
- (assert (not (eq emms-mark-selected-desc-function
+ (assert (not (eq (default-value 'emms-track-description-function)
hunk ./emms-mark.el 49
- nil "Should never set emms-mark-selected-desc-function to
emms-mark-track-description.")
- (concat " " (funcall emms-mark-selected-desc-function track)))
+ nil "Should never set emms-track-selection-function to be
emms-mark-track-description.")
+ (concat " " (funcall (default-value 'emms-track-description-function)
+ track)))
hunk ./emms-mark.el 53
-(setq emms-track-description-function 'emms-mark-track-description)
-
-(defun emms-mark-select-desc-function (func)
- (interactive
- (list (intern
- (completing-read "Set description function to: "
- (mapcar 'list
- emms-mark-track-desc-functions) nil
- t "emms-"))))
- (setq emms-mark-selected-desc-function func
- emms-track-description-function 'emms-mark-track-description)
+(defun emms-mark-update-descriptions ()
+ "Update the track descriptions in the current buffer."
hunk ./emms-mark.el 57
- (dolist (buf (emms-playlist-buffer-list))
- (set-buffer buf)
- (let ((tracks (nreverse
- (emms-playlist-tracks-in-region (point-min)
- (point-max)))))
- (erase-buffer)
- (emms-with-inhibit-read-only-t
- (mapc 'emms-playlist-insert-track
- tracks)))))))
+ (goto-char (point-min))
+ (emms-walk-tracks
+ (emms-playlist-update-track)))))
hunk ./emms-mark.el 208
-(let ((map emms-playlist-mode-map))
- (define-key map "m" 'emms-mark-forward)
- (define-key map "u" 'emms-mark-unmark-forward)
- (define-key map "U" 'emms-mark-unmark-all)
- (define-key map "t" 'emms-mark-toggle)
- (define-key map "%m" 'emms-mark-regexp)
- (define-key map "%u" 'emms-mark-unmark-regexp))
+;;{{{ mode stuff
+(defconst emms-mark-mode-map
+ (let ((map (make-sparse-keymap)))
+ (define-key map "m" 'emms-mark-forward)
+ (define-key map "u" 'emms-mark-unmark-forward)
+ (define-key map "U" 'emms-mark-unmark-all)
+ (define-key map "t" 'emms-mark-toggle)
+ (define-key map "%m" 'emms-mark-regexp)
+ (define-key map "%u" 'emms-mark-unmark-regexp)))
+
+(defun emms-mark-mode ()
+ "An EMMS major mode that allows tracks to be marked like dired.
+\\{emms-mark-mode-map}"
+ (interactive)
+ (if (eq major-mode 'emms-mark-mode)
+ ;; do nothing if we're already in emms-mark-mode
+ nil
+
+ ;; start emms-playlist-mode exactly once
+ (unless (eq major-mode 'emms-playlist-mode)
+ (emms-playlist-mode))
+
+ ;; use inherited keymap
+ (set-keymap-parent emms-mark-mode-map (current-local-map))
+ (use-local-map emms-mark-mode-map)
+ (setq major-mode 'emms-mark-mode
+ mode-name "Emms-Mark")
+
+ ;; show a blank space at beginning of each line
+ (set (make-local-variable 'emms-track-description-function)
+ 'emms-mark-track-description)
+ (emms-mark-update-descriptions)))
+
+(defun emms-mark-mode-disable ()
+ "Disable `emms-mark-mode' and return to `emms-playlist-mode'."
+ (interactive)
+ (if (not (eq major-mode 'emms-mark-mode))
+ ;; do nothing if we're not in emms-mark-mode
+ nil
+
+ ;; call emms-playlist-mode, saving important variables
+ (let ((selected emms-playlist-selected-marker))
+ (emms-playlist-mode)
+ (setq emms-playlist-selected-marker selected)
+ (emms-playlist-mode-overlay-selected))
+
+ ;; update display
+ (emms-mark-update-descriptions)))
+;;}}}
}
Context:
[restart-lastfm-plugin-when-md5challenge-expired.dpatch
Tassilo Horn <address@hidden>**20070116202013]
[fix-ampersands-and-question-marks-in-lastfm.dpatch
Tassilo Horn <address@hidden>**20070113104902
Roman Lagunov reported a bug: the last.fm plugin failed scrobbling tracks with
& in artist/title/album. The same applies to streams containing an ampersand.
So I added ?& and ?? to `emms-url-specials'. But because both are needed to
submit values via HTTP GET now you have to `emms-escape-url' only the arguments
that may contain special chars instead the complete url, e.g.:
(url-retrieve
(concat emms-lastfm-server
"?hs=true&p=1.1"
"&c=" emms-lastfm-client-id
"&v=" (number-to-string emms-lastfm-client-version)
"&u=" (emms-escape-url emms-lastfm-username))
instead of
(url-retrieve
(emms-escape-url
(concat emms-lastfm-server
"?hs=true&p=1.1"
"&c=" emms-lastfm-client-id
"&v=" (number-to-string emms-lastfm-client-version)
"&u=" emms-lastfm-username))
]
[Manual: Add periods to end of menu entry descriptions, update menus, minor
grammar and style fixes
Michael Olson <address@hidden>**20070113234824]
[relative-seeking-for-xine.dpatch
Tassilo Horn <address@hidden>**20070108205923]
[emms-streams: Make sure type is a symbol, not a string
Michael Olson <address@hidden>**20070108191308]
[emms-volume-texinfo.dpatch
Tassilo Horn <address@hidden>**20070107104105
Adds docs for emms-volume-minor-mode and replaces defvars with defopts in the
last.fm chapter.
]
[emms-player-xine.dpatch
Tassilo Horn <address@hidden>**20070106173701]
[emms-lastfm: Remove periods from end of messages
Michael Olson <address@hidden>**20070106011559]
[emms-lastfm: Add emms-lastfm-np, which displays the current song information
as a message or inserts it at point
Michael Olson <address@hidden>**20070105235058]
[Add support for playing Last.fm streams using emms-streams interface
Michael Olson <address@hidden>**20070105230616]
[emms-lastfm: Use emms-cancel-timer, fix FIXME section, make
emms-lastfm-radio-request-metadata more flexible
Michael Olson <address@hidden>**20070105073906]
[emms-url: Only escape spaces and newlines, on second thought
Michael Olson <address@hidden>**20070105073821]
[Make jack.el use emms-compat.el rather than cl.el, and tidy up emms-compat.el
Michael Olson <address@hidden>**20070105042701]
[emms-playlist-sort: Add compile-time dependency on cl.el to avoid a warning
Michael Olson <address@hidden>**20070105040231]
[emms-lastfm: Use emms-url.el, fix compiler warnings, and be kind to the
namespace
Michael Olson <address@hidden>**20070105035342]
[emms-player-mpd: Use functions in emms-url.el
Michael Olson <address@hidden>**20070105035233]
[emms-url: New file containing the url.el interaction routines from
emms-lastfm.el. I plan to use these in other parts of EMMS as well.
Michael Olson <address@hidden>**20070105034035]
[emms-compat: New file that contains compatibility functions for emms; this
make emms.el a bit cleaner-looking
Michael Olson <address@hidden>**20070105032247]
[emms-streams: Try to reconnect to station if briefly disconnected
Michael Olson <address@hidden>**20070105000942]
[Remove emms-volume-mpd-raise/lower, make chapter in manual for emms-volume.el
Michael Olson <address@hidden>**20070105000820]
[artist-fan-radio-and-texinfo-docs-for-lastfm.dpatch
Tassilo Horn <address@hidden>**20070103205523
This patch adds a new function to emms-lastfm.el:
`emms-lastfm-radio-artist-fan'
I also added a chapter about Last.fm in emms.texinfo. It compiles for me and
looks good, but it wold be nice if someone could have a short look at it. It's
my first work with texinfo.
]
[fix-broken-multibyte-chars-in-http-responses.dpatch
Tassilo Horn <address@hidden>**20070103140726
If a `url-retrieve' returns a buffer containing multibyte strings, they were
displayed as \123\456. The bug occured mostly when listening to Last.fm radio
playing a track with non-ascii title or artist.
Thanks to fledermaus at #emacs for investigating what went wrong and putting
together the function `http-decode-buffer'. The bug seems to be fixed with it.
]
[metadata-for-lastfm-streams.dpatch
Tassilo Horn <address@hidden>**20070102222433
Now the Artist and Title of the current song are displayed in the mode-line
when listening to a last.fm stream.
Additionally I made all user options customizable.
]
[lastfm-skip-love-ban-plus-renaming.dpatch
Tassilo Horn <address@hidden>**20061230115944
First, I renamed all things "emms-lastfm-playback" to "emms-lastfm-radio",
which fits much better.
Then I added the functionality of loving/skipping/banning the song you're
listening to on Last.fm Radio.
]
[fix-lastfm-streams-with-spaces.dpatch
Tassilo Horn <address@hidden>**20061229155921]
[emms-playlist-sort.el: Reorganize codes && add `emms-playlist-sort-by-list'.
William Xu <address@hidden>**20061225054559]
[play-lastfm-streams.dpatch
Tassilo Horn <address@hidden>**20061227205745
This patch has two major parts:
1. Make emms-lastfm.el conforming to other emms plugins, meaning that there
are those three user functions:
`emms-lastfm' -- The usual prefix arg toggle
`emms-lastfm-enable'
`emms-lastfm-disable'
2. It adds the ability to play lastfm:// streams. New user functions:
`emms-lastfm-playback'
`emms-lastfm-playback-similar-artists'
`emms-lastfm-playback-global-tag'
Sadly there are 2 FIXMEs in the code:
1. Major problem: It doesn't work for lastfm urls which contain blanks. If
someone is familiar with the url library, he could tell me how to fix
it. (retrieving urls with whitespaces)
2. Minor problem: There's some ugly (but working) code to ensure the
execution doesn't continue before a sentinel has been run.
]
[emms-playing-time: Add stuffs for controlling displaying on mode line
address@hidden
while still enabling emms-playing-time module at backgrond.
]
[emms-mode-line: Rename `emms-playing-time-toggle' to `emms-mode-line-toggle'.
address@hidden
[warn-if-playing-time-deactivated.dpatch
Tassilo Horn <address@hidden>**20061219085443
New emms-lastfm-activate warns the user if he disabled emms-playing-time
completely and points him to the right docs.
]
[fix-regression-in-lastfm.dpatch
Tassilo Horn <address@hidden>**20061216132209
My last path enabled emms-lastfm.el to submit tracks even if you paused
them. I tested this extensively! But I didn't test if it still submits
them if you don't pause it. Of course it didn't. ;-)
The problem was that I rely on `emms-playing-time' to calculate when a
track has to be submitted. But in `emms-player-started-hook' my new
track function was run *before* `emms-playing-time' was set to 0 again.
]
[emms.texinfo: Update emms-playing-time info.
address@hidden
[replace-next-line-with-forward-line.dpatch
Tassilo Horn <address@hidden>**20061220205010
The docstring of `next-line' suggest to use `forward-line' instead, so
use that...
]
[submitting-when-paused.dpatch
Tassilo Horn <address@hidden>**20061212200324
This patch enables emms-lastfm.el to submit the current track even if
the playback has been paused and resumed. It's done by canceling the
`emms-lastfm-timer' when pausing and reenabling it on resume.
]
[emms-lyrics: Make `emms-lyrics-find-lyric-function' customizable and add
address@hidden
`emms-lyrics-find-current-lyric'.
]
[change raise/lower-function to change-functon, add change-amount
Ye Wenbin <address@hidden>**20061208052114]
[Remove emms-volume-amixer-raise/lower commands, use emms-volume-change-function
Ye Wenbin <address@hidden>**20061208052019]
[emms-i18n: Rename functions to match file name.
address@hidden
[emms-setup: Add `emms-i18n' to `emms-devel'.
address@hidden
[emms-info-mp3info: Make use of `emms-i18n-call-process-simple'.
address@hidden
[emms-player-mpd: Document how to use MusicPD to change the volume via
emms-volume.el
Michael Olson <address@hidden>**20061208223509]
[Fix various byte-compiler warnings throughout
Michael Olson <address@hidden>**20061207143511]
[emms-tag-editor: Rename functions to match file name
Michael Olson <address@hidden>**20061207142310]
[Rename emms-mp3tag.el to emms-tag-editor.el
Michael Olson <address@hidden>**20061207141945]
[emms.el: Improve `emms-uniq-list' to not use cl.el.
address@hidden
[emms-i18n changes, add playlist navigate command, uniq playlist command
Ye Wenbin <address@hidden>**20061207063510]
[emms-mp3tag support ogg, add more documentation. fix some error
Ye Wenbin <address@hidden>**20061206153528]
[emms-lastfm.dpatch
Tassilo Horn <address@hidden>**20061206112823
This patch adds emms-lastfm.el, its setup to emms-setup.el and myself
to AUTHORS.
]
[Fix a silly bug in emms-mp3tag. Remove timestamp.
Ye Wenbin <address@hidden>**20061206020710]
[AUTHORS: Added Ye Wenbin
address@hidden
[Fix lyrics minibuffer display. Amixer display playback and more useful commands
Wenbin Ye <address@hidden>**20061127154113]
[Edit all track, set tag to file for mp3
Wenbin Ye <address@hidden>**20061205112209]
[Add emms-mp3tag and emms-i18n
Wenbin Ye <address@hidden>**20061205065407]
[Add emms-mark and emms-history
address@hidden
[emms-info-mp3info.el: Replace `emms-iconv' with decode-coding-string and
address@hidden
encode-coding-string.
]
[emms.el: Fix bug introduced by recent changes to
emms-playlist-set-playlist-buffer
Michael Olson <address@hidden>**20061119204738]
[Default to current buffer when setting the current EMMS playlist buffer.
Michael Olson <address@hidden>**20061119053410]
[manual: Add documentation for new emms-playlist-mode keybindings
Michael Olson <address@hidden>**20061119052935]
[emms-playlist-mode: Bind "b" key to emms-playlist-set-playlist-buffer.
Michael Olson <address@hidden>**20061119052907]
[emms-playlist-mode: Implement adding the thing at point to the current
playlist. If it is a playlist, add its contents instead. Map this to the "a"
key.
Michael Olson <address@hidden>**20061119052254]
[emms.el: In emms-playlist-set-playlist-buffer, prompt user from available EMMS
playlist buffers rather than all buffers, and display feedback upon setting the
current buffer, since this is not an easy change to see
Michael Olson <address@hidden>**20061119052023]
[emms.el: Fix compiler warning
Michael Olson <address@hidden>**20061119051946]
[Don't add subdirectories for directory and playlist-directory source insert
methods
Michael Olson <address@hidden>**20061119041900]
[emms-playing-time.el: New variable `emms-playing-time-style', it
address@hidden
supports two styles at present, `time' and `bar'.
]
[bind SPC to `scroll-up' in emms-playlist-mode and update manual.
address@hidden
[emms.el: Move macros to the top of the file.
address@hidden
[emms-player-mpd: Deal with change in output when getting supported file types
Michael Olson <address@hidden>**20061028042119]
[NEWS: Add entry for recent emms-player-mpd change
Michael Olson <address@hidden>**20061023125738]
[NEWS: Version 2 is version 2.0
address@hidden
[emms-player-mpd: Handle errors that occur when we begin playback
Michael Olson <address@hidden>**20061022215310]
[emms-playlist-mode: Handle case where selection has not been set but user
wants to delete a region
Michael Olson <address@hidden>**20061022201724]
[emms-player-mplayer.el: Mplayer also supports .vob files.
address@hidden
[FluidSynth midi file player
address@hidden
[Added delYsid
address@hidden
[jackd-support-for-emacs
address@hidden
jackd is a pro-audio server which can be used as a backend for
alsaplayer, mplayer, and lots of other linux audio apps.
This module allows to start jackd from within emacs, and
connect/disconnect jack client ports.
]
[browser: ensure the RNG is seeded before use
Damien Elmes <address@hidden>**20061011151535]
[browser: require sort (fixes bug with sort-fold-case being void)
Damien Elmes <address@hidden>**20061010125718]
[emms-playlist-mode: Fix typo in hook name
Michael Olson <address@hidden>**20061022022812]
[emms-player-mpd: Update version recommendation
Michael Olson <address@hidden>**20061022012223]
[emms-player-mpd: Work properly with tracks inserted by emms-browser
Michael Olson <address@hidden>**20061022011050]
[Add NEWS items since version 2.1
Michael Olson <address@hidden>**20061017222117]
[emms-player-mpd: When using the emms-volume interface, allow the user to
specify the amount of change in the volume
Michael Olson <address@hidden>**20061017220404]
[Documentation cleanups in emms-player-mpd and emms-source-playlist
Michael Olson <address@hidden>**20061017215345]
[Since emms-player-seeked-to-functions and emms-player-time-set-functions hooks
do the same thing, replace the former with the latter
Michael Olson <address@hidden>**20061017210238]
[emms-browser: Fix compiler warning
Michael Olson <address@hidden>**20061017205310]
[emms-player-mpd: Implement seek-to support
Michael Olson <address@hidden>**20061017205106]
[fix faulty emms-playlist-mode keybinding, fix due to William and Damien.
address@hidden
[Added seeking to the playlist keymap, and updated the manual.
address@hidden
[emms-player-mpd: Only display error if we are certain that url.el is not
up-to-date
Michael Olson <address@hidden>**20061004032213]
[seek-for-alsaplayer
address@hidden
Add relative seek support for alsaplayer
]
[midi-files-via-timidity
address@hidden
A simple-player definition for timidity
]
[emms-playing-time.el: Minor cleanups.
address@hidden
[emms-lyrics.el: Minor Cleanups.
address@hidden
[pause-for-alsaplayer
address@hidden
Get pause/resume working for alsaplayer
]
[mms-for-mplayer
address@hidden
mplayer also supports mms:// URLs
]
[DoTheRightThing with player pausing and emms-bookmarks.el
address@hidden
[Added emms-bookmarks.el
address@hidden
[Added `emms-pause' to emms-playlist-mode.el bound to to ``P''.
address@hidden
[browser: add deletion started/finished message
Damien Elmes <address@hidden>**20060923051128]
[Added a link to the online version of the manual.
address@hidden
[emms-playing-time.el now works with `seek-to'.
address@hidden
[Added `seek-to' to emms.el and emms-player-mplayer.el.
address@hidden
[browser/cache: support deleting files, make emms-cache-dirty a defsubst
Damien Elmes <address@hidden>**20060922090553]
[TAG 2.1
address@hidden
Patch bundle hash:
28d8b63fadf5fe811d04cacac24bd8ad8bbe0366
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emms-patches] darcs patch: New macro emms-walk-tracks (and 3 more),
Michael Olson <=