[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emms-patches] darcs patch: New XEmacs compatibility function: emms-...
From: |
Michael Olson |
Subject: |
[Emms-patches] darcs patch: New XEmacs compatibility function: emms-... (and 6 more) |
Date: |
Wed, 11 Jan 2006 11:10:30 -0500 |
Thu Jan 5 12:21:44 EST 2006 Michael Olson <address@hidden>
* New XEmacs compatibility function: emms-replace-regexp-in-string
Thu Jan 5 22:20:48 EST 2006 Michael Olson <address@hidden>
* emms-stream-info: Use emms-replace-regexp-in-string.
Thu Jan 5 22:21:21 EST 2006 Michael Olson <address@hidden>
* emms-player-mpd: Escape specials in filenames like the other MPD clients do.
Thu Jan 5 22:24:00 EST 2006 Michael Olson <address@hidden>
* Use emms-replace-regexp-in-string.
Sat Jan 7 00:33:10 EST 2006 Michael Olson <address@hidden>
* Rename m3u-playlist source to "playlist" and support .pls files. The
playlist-parsing routine has been moved to a separate function, since the
MusicPD player also needs to use it. Detect URLs in playlists and use type of
'url when creating tracks for them.
Sat Jan 7 01:43:58 EST 2006 Michael Olson <address@hidden>
* emms-player-mpd: Implement blocking so that code in timers doesn't conflict.
Sat Jan 7 03:10:52 EST 2006 Michael Olson <address@hidden>
* emms-player-mpd: Detect when the server has stopped, and call
emms-player-stopped.
New patches:
[New XEmacs compatibility function: emms-replace-regexp-in-string
Michael Olson <address@hidden>**20060105172144] {
hunk ./emms-lyrics.el 144
- (replace-regexp-in-string ".*\\]" "" lyric-string))
+ (emms-replace-regexp-in-string ".*\\]" "" lyric-string))
hunk ./emms-tageditor.el 238
-(defun emms-tageditor-replace-regexp (regexp rep string &optional fixedcase
literal subexp start)
- "Compatibility wrapper for replace-regexp-in-string/replace-in-string."
- (if (featurep 'xemacs)
- (replace-in-string regexp rep string fixedcase literal subexp start)
- (replace-regexp-in-string regexp rep string fixedcase literal subexp
start)))
-
hunk ./emms-tageditor.el 241
- (setq replace-with (emms-tageditor-replace-regexp "$TITLE"
(emms-info-title info) replace-with))
- (setq replace-with (emms-tageditor-replace-regexp "$ALBUM"
(emms-info-album info) replace-with))
- (setq replace-with (emms-tageditor-replace-regexp "$ARTIST"
(emms-info-artist info) replace-with))
- (setq replace-with (emms-tageditor-replace-regexp "$NOTE" (emms-info-note
info) replace-with))
- (setq replace-with (emms-tageditor-replace-regexp "$TRACKNAME"
(emms-track-name track) replace-with)))
+ (setq replace-with (emms-replace-regexp-in-string "$TITLE"
(emms-info-title info) replace-with))
+ (setq replace-with (emms-replace-regexp-in-string "$ALBUM"
(emms-info-album info) replace-with))
+ (setq replace-with (emms-replace-regexp-in-string "$ARTIST"
(emms-info-artist info) replace-with))
+ (setq replace-with (emms-replace-regexp-in-string "$NOTE" (emms-info-note
info) replace-with))
+ (setq replace-with (emms-replace-regexp-in-string "$TRACKNAME"
(emms-track-name track) replace-with)))
hunk ./emms-tageditor.el 255
- (str (emms-tageditor-replace-regexp regexp replace-with str)))
+ (str (emms-replace-regexp-in-string regexp replace-with str)))
hunk ./emms.el 1188
+
+(defun emms-replace-regexp-in-string (regexp replacement text &optional
fixedcase literal)
+ "Replace REGEXP with REPLACEMENT in TEXT.
+If fourth arg FIXEDCASE is non-nil, do not alter case of replacement text.
+If fifth arg LITERAL is non-nil, insert REPLACEMENT literally."
+ (cond
+ ((fboundp 'replace-regexp-in-string)
+ (replace-regexp-in-string regexp replacement text fixedcase literal))
+ ((fboundp 'replace-in-string)
+ (replace-in-string text regexp replacement literal))
+ (t (let ((repl-len (length replacement))
+ start)
+ (while (setq start (string-match regexp text start))
+ (setq start (+ start repl-len)
+ text (replace-match replacement fixedcase literal text))))
+ text)))
}
[emms-stream-info: Use emms-replace-regexp-in-string.
Michael Olson <address@hidden>**20060106032048] {
hunk ./emms-stream-info.el 287
- (replace-regexp-in-string
+ (emms-replace-regexp-in-string
hunk ./emms-stream-info.el 323
- (setq str (replace-regexp-in-string "%" "%%" str))
+ (setq str (emms-replace-regexp-in-string "%" "%%" str))
}
[emms-player-mpd: Escape specials in filenames like the other MPD clients do.
Michael Olson <address@hidden>**20060106032121] {
hunk ./emms-player-mpd.el 356
+(defun emms-player-mpd-quote-file (file)
+ "Escape special characters in FILE and surround in double-quotes."
+ (concat "\""
+ (emms-replace-regexp-in-string
+ "\"" "\\\\\""
+ (emms-replace-regexp-in-string "\\\\" "\\\\\\\\" file))
+ "\""))
+
hunk ./emms-player-mpd.el 376
- (concat "add \"" file "\"")))))
+ (concat "add " (emms-player-mpd-quote-file file))))))
hunk ./emms-player-mpd.el 508
- (concat "find filename \"" file "\"")))))))
+ (concat "find filename "
+ (emms-player-mpd-quote-file file))))))))
}
[Use emms-replace-regexp-in-string.
Michael Olson <address@hidden>**20060106032400] {
hunk ./emms-lyrics.el 173
- (replace-regexp-in-string
+ (emms-replace-regexp-in-string
hunk ./emms-lyrics.el 332
- (replace-regexp-in-string
+ (emms-replace-regexp-in-string
hunk ./emms-lyrics.el 358
- (insert (replace-regexp-in-string
+ (insert (emms-replace-regexp-in-string
hunk ./emms-playing-time.el 154
- (replace-regexp-in-string
+ (emms-replace-regexp-in-string
}
[Rename m3u-playlist source to "playlist" and support .pls files. The
playlist-parsing routine has been moved to a separate function, since the
MusicPD player also needs to use it. Detect URLs in playlists and use type of
'url when creating tracks for them.
Michael Olson <address@hidden>**20060107053310] {
hunk ./emms-player-mpd.el 390
- (let ((pls-p (if (string-match "\\.pls\\'" playlist) t nil))
+ (let ((playlist (emms-parse-playlist playlist))
hunk ./emms-player-mpd.el 392
- (mapc #'(lambda (file)
- (when pls-p
- (if (string-match "\\`File[0-9]*=\\(.*\\)\\'" file)
- (setq file (match-string 1 file))
- (setq file "")))
- (unless (or (string= file "")
- (string-match "\\`#" file))
- (when (emms-player-mpd-add-file file)
- (setq any-success t))))
- (split-string (with-temp-buffer
- (insert-file-contents playlist)
- (buffer-string))
- "\n"))
+ (dolist (file playlist)
+ (when (emms-player-mpd-add-file file)
+ (setq any-success t)))
hunk ./emms-player-mpd.el 494
- (string-match emms-player-mpd-supported-regexp file))
+ (string-match emms-player-mpd-supported-regexp file)
+ (not (string-match "\\`http://" file)))
hunk ./emms-source-file.el 145
-;;;###autoload (autoload 'emms-play-m3u-playlist "emms-source-file" nil t)
-;;;###autoload (autoload 'emms-add-m3u-playlist "emms-source-file" nil t)
-(define-emms-source m3u-playlist (playlist)
- "A source for simple .m3u playlists. It ignores empty lines, or
-lines starting with '#'."
+;;;###autoload (autoload 'emms-play-playlist "emms-source-file" nil t)
+;;;###autoload (autoload 'emms-add-playlist "emms-source-file" nil t)
+(define-emms-source playlist (playlist)
+ "A source for .m3u and .pls playlists. It ignores empty lines,
+or lines starting with '#'."
hunk ./emms-source-file.el 154
- (emms-source-files
- (let ((files '())
- (dir (file-name-directory playlist)))
- (with-temp-buffer
- (insert-file-contents playlist)
- (goto-char (point-min))
- (while (re-search-forward "^[^# ].*$" nil t)
- (let ((line (match-string 0)))
- (setq files (cons (if (file-name-absolute-p line)
- line
- (concat dir line))
- files)))))
- (reverse files))))
+ (dolist (file (emms-parse-playlist playlist))
+ (if (string-match "\\`http://" file)
+ (emms-source-url file)
+ (emms-source-file file))))
hunk ./emms.el 868
+
+(defun emms-parse-playlist (playlist)
+ "Extract a list of filenames from the given .m3u or .pls playlist.
+Empty lines and lines starting with '#' are ignored."
+ (let ((files '())
+ (pls-p (if (string-match "\\.pls\\'" playlist) t nil))
+ (dir (file-name-directory playlist)))
+ (with-temp-buffer
+ (insert-file-contents playlist)
+ (goto-char (point-min))
+ (while (re-search-forward "^[^# ].*$" nil t)
+ (let ((line (match-string 0)))
+ (when pls-p
+ (if (string-match "\\`File[0-9]*=\\(.+\\)\\'" line)
+ (setq line (match-string 1 line))
+ (setq line "")))
+ (unless (string= line "")
+ (setq files (cons (if (or (string-match "\\`http://" line)
+ (file-name-absolute-p line))
+ line
+ (concat dir line))
+ files))))))
+ (reverse files)))
hunk ./emms.texinfo 329
address@hidden emms-play-m3u-playlist playlist
-A source for the M3u playlist format from the file @var{playlist}.
address@hidden emms-play-playlist playlist
+A source for the M3u or PLS playlist format from the file @var{playlist}.
hunk ./emms.texinfo 332
address@hidden emms-add-m3u-playlist playlist
-A source for the M3u playlist format from the file @var{playlist}.
address@hidden emms-add-playlist playlist
+A source for the M3u or PLS playlist format from the file @var{playlist}.
}
[emms-player-mpd: Implement blocking so that code in timers doesn't conflict.
Michael Olson <address@hidden>**20060107064358] {
hunk ./emms-player-mpd.el 201
+(defvar emms-player-mpd-blocked nil)
hunk ./emms-player-mpd.el 250
+(defun emms-player-mpd-block ()
+ "Block input for MusicPD, waiting if currently blocked.
+The maximum amount is determined by `emms-player-mpd-timeout'."
+ `(with-timeout '(,emms-player-mpd-timeout)
+ (while emms-player-mpd-blocked
+ (sit-for 0.20)))
+ (setq emms-player-mpd-blocked t))
+
+(defun emms-player-mpd-unblock ()
+ "Unblock input for MusicPD."
+ (setq emms-player-mpd-blocked nil))
+
hunk ./emms-player-mpd.el 263
- "Send the given COMMAND to the MusicPD server."
+ "Send the given COMMAND to the MusicPD server and await a response,
+which is returned."
hunk ./emms-player-mpd.el 268
- (process-send-string emms-player-mpd-process command)
- nil)
-
-(defun emms-player-mpd-send-and-wait (command)
- "Send the given COMMAND to the MusicPD server and await a response,
-which is returned."
- (setq emms-player-mpd-returned-data nil)
- (emms-player-mpd-send command)
- (accept-process-output emms-player-mpd-process emms-player-mpd-timeout)
- emms-player-mpd-returned-data)
+ (let (response)
+ (unwind-protect
+ (progn
+ (emms-player-mpd-block)
+ (setq emms-player-mpd-returned-data nil)
+ (process-send-string emms-player-mpd-process command)
+ (accept-process-output emms-player-mpd-process
+ emms-player-mpd-timeout))
+ (setq response emms-player-mpd-returned-data)
+ (emms-player-mpd-unblock))
+ response))
hunk ./emms-player-mpd.el 324
- (emms-player-mpd-send-and-wait "status")))))
+ (emms-player-mpd-send "status")))))
hunk ./emms-player-mpd.el 333
- (emms-player-mpd-send-and-wait "status")))))
+ (emms-player-mpd-send "status")))))
hunk ./emms-player-mpd.el 390
- (emms-player-mpd-send-and-wait
+ (emms-player-mpd-send
hunk ./emms-player-mpd.el 513
- (emms-player-mpd-send-and-wait
+ (emms-player-mpd-send
hunk ./emms-player-mpd.el 542
- (emms-player-mpd-send-and-wait "currentsong"))))
+ (emms-player-mpd-send "currentsong"))))
}
[emms-player-mpd: Detect when the server has stopped, and call
emms-player-stopped.
Michael Olson <address@hidden>**20060107081052] {
hunk ./emms-player-mpd.el 3
-;; Copyright (C) 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2005, 2006 Free Software Foundation, Inc.
hunk ./emms-player-mpd.el 154
-(defcustom emms-player-mpd-timeout 10
+(defcustom emms-player-mpd-timeout 5
hunk ./emms-player-mpd.el 160
+(defcustom emms-player-mpd-check-interval 2
+ "How long to wait before checking to see whether MusicPD has
+moved on to the next song. This may be an integer or a floating
+point number.
+
+This is used only if `emms-player-mpd-sync-playlist' is non-nil"
+ :type 'integer
+ :group 'emms-player-mpd)
+
hunk ./emms-player-mpd.el 185
-(defcustom emms-player-mpd-check-interval 2
- "The number of seconds to wait before checking to see whether
-MusicPD has moved on to the next song.
-
-This is used only if `emms-player-mpd-sync-playlist' is non-nil"
- :type 'integer
- :group 'emms-player-mpd)
-
hunk ./emms-player-mpd.el 321
-(defun emms-player-mpd-get-playlist-id ()
- "Get the current playlist ID from MusicPD."
- (let ((info (emms-player-mpd-get-alist
- (emms-player-mpd-parse-response
- (emms-player-mpd-send "status")))))
- (cdr (assoc "playlist" info))))
+(defun emms-player-mpd-get-playlist-id (&optional info)
+ "Get the current playlist ID from MusicPD.
+If INFO is specified, use that instead of acquiring the necessary
+info from MusicPD."
+ (unless info
+ (setq info (emms-player-mpd-get-alist
+ (emms-player-mpd-parse-response
+ (emms-player-mpd-send "status")))))
+ (cdr (assoc "playlist" info)))
hunk ./emms-player-mpd.el 331
-(defun emms-player-mpd-get-current-song ()
+(defun emms-player-mpd-get-current-song (&optional info)
hunk ./emms-player-mpd.el 334
-the song on the current playlist."
- (let ((info (emms-player-mpd-get-alist
- (emms-player-mpd-parse-response
- (emms-player-mpd-send "status")))))
- (cdr (assoc "song" info))))
+the song on the current playlist.
+
+If INFO is specified, use that instead of acquiring the necessary
+info from MusicPD."
+ (unless info
+ (setq info (emms-player-mpd-get-alist
+ (emms-player-mpd-parse-response
+ (emms-player-mpd-send "status")))))
+ (cdr (assoc "song" info)))
+
+(defun emms-player-mpd-get-state (&optional info)
+ "Get the current state of the MusicPD server.
+This is either \"play\", \"stop\", or \"pause\".
+
+If INFO is specified, use that instead of acquiring the necessary
+info from MusicPD."
+ (unless info
+ (setq info (emms-player-mpd-get-alist
+ (emms-player-mpd-parse-response
+ (emms-player-mpd-send "status")))))
+ (cdr (assoc "state" info)))
hunk ./emms-player-mpd.el 370
- (let ((song (emms-player-mpd-get-current-song)))
- (unless (or (null emms-player-mpd-current-song)
- (null song)
- (string= song emms-player-mpd-current-song))
- (setq emms-player-mpd-current-song song)
- (run-hooks 'emms-player-stopped-hook)
- (with-current-emms-playlist
- (emms-playlist-select (progn
- (goto-line (1+ (string-to-number song)))
- (point))))
- (run-hooks 'emms-player-started-hook))))
+ (let* ((info (emms-player-mpd-get-alist
+ (emms-player-mpd-parse-response
+ (emms-player-mpd-send "status"))))
+ (song (emms-player-mpd-get-current-song info))
+ (status (emms-player-mpd-get-state info)))
+ (cond ((string= status "stop")
+ (emms-cancel-timer emms-player-mpd-status-timer)
+ (setq emms-player-mpd-status-timer nil)
+ (setq emms-player-stopped-p t)
+ (emms-player-stopped))
+ ((string= status "pause")
+ nil)
+ ((string= status "play")
+ (unless (or (null song)
+ (and emms-player-mpd-current-song
+ (string= song emms-player-mpd-current-song)))
+ (setq emms-player-mpd-current-song song)
+ (run-hooks 'emms-player-stopped-hook)
+ (with-current-emms-playlist
+ (emms-playlist-select (progn
+ (goto-line (1+ (string-to-number song)))
+ (point))))
+ (run-hooks 'emms-player-started-hook))))))
hunk ./emms-player-mpd.el 503
+ (setq emms-player-stopped-p t)
hunk ./emms-player-mpd.el 505
- (run-hooks 'emms-player-stopped-hook))
+ (emms-player-stopped))
}
Context:
[emms-player-mpd: Quote file argument so that filenames with spaces are treated
correctly.
Michael Olson <address@hidden>**20060105014642]
[Move `emms-cancel-timer' to a compatibility section in emms.el
address@hidden
[emms-playing-time: Make sure that we don't start more than one timer instance.
Michael Olson <address@hidden>**20060104224902]
[emms-player-mpd: Make it the default to sync the MusicPD playlist with the
EMMS playlist, since this is what most EMMS users will probably want.
Michael Olson <address@hidden>**20060104224734]
[Make emms-player-mpd work with emms-playing-time.
Michael Olson <address@hidden>**20060104081359]
[emms-player-mpd: Bring this up-to-par with the other backends, in that it can
update the current playlist position and load the contents of the current
playlist into MusicPD.
Michael Olson <address@hidden>**20060104075237]
[Use timers in a way that is compatible with both Emacs and XEmacs.
Michael Olson <address@hidden>**20060104061024]
[emms-player-mpd: Docfix, wait 200 millisecs for process to start, add more
output when verbose mode is enabled.
Michael Olson <address@hidden>**20060103040456]
[emms-player-mpd: Fix documentation. The mpc binary is no longer needed.
Michael Olson <address@hidden>**20060102090752]
[emms-player-mpd: Make sure the process gets closed autommatically when exiting
Emacs.
Michael Olson <address@hidden>**20060101020942]
[Significantly improve (and speed up) MusicPD support.
Michael Olson <address@hidden>**20051231083223]
[`emms-score-set-playing' is not really "set", but "add". Fix this. Same
address@hidden
for `emms-score-set-file-on-line'.
]
[Added `emms-playlist-sort-by-score'.
address@hidden
[Fixed emms-score.el to accommordate with changes in EMMS2. I've also
address@hidden
reorganized the code structure a little bit and added bunches of new
user interface functions.
]
[Move `emms-lyrics-mode' to the end, or it won't work on CVS Emacs.
address@hidden
[fix mode-alter bug
address@hidden
[update manual for playlist-mode
address@hidden
[make emms-playlist-mode emacs21.4 compatible
address@hidden
[fix emms-playlist-save-as-m3u
address@hidden
[killing and yanking in the interactive playlist buffer
address@hidden
[Killing and yanking
address@hidden
[fix manual sectioning
address@hidden
[Fix conflicts in emms-playlist-mode.el
address@hidden
[Fix emms.texinfo for PDF output (thanks twb)
address@hidden
[Added `emms-playlist-mode-go-popup' for popuping emms-playlist as a side
address@hidden
window.
]
[emms-info-mp3info.el (emms-info-mp3find-arguments): use info-tracknumber
instead of info-tracknum, so as to be consistent with ogginfo.
Trent Buck <address@hidden>**20051119150805
emms-info.el: Update documentation.
]
[emms-source-file.el: add missing third clause to AUTOLOAD calls.
Trent Buck <address@hidden>**20051028142538]
[emms-info-libtag.el: Fix a couple of typos.
Trent Buck <address@hidden>**20051119183945]
[Implement an emms-info function using the libtag package.
Trent Buck <address@hidden>**20051119181528]
[Finished rewriting manual
address@hidden
[More manual work, but still only 71 percent done
address@hidden
[Added support for toggling default action in streams
address@hidden
[Added a hook for emms-streams
address@hidden
[debian/emms.emacs-install: Leave symlinks in bytecode dir for
find-library/function/variable.
Trent Buck <address@hidden>**20051027172739]
[debian/rules: swap binary-indep and binary-arch bodies, since emms is packages
as source code.
Trent Buck <address@hidden>**20051027150418]
[Makefile (ChangeLog): Generate ChangeLog from darcs metadata.
Trent Buck <address@hidden>**20051027133919
debian/rules (build-stamp): Have make generate the ChangeLog.
(build-arch): Include ChangeLog and debian/changelog in debian package.
]
[Added simple player "playsound".
Trent Buck <address@hidden>**20051023012053]
[Remove TODO from debian/docs.
Trent Buck <address@hidden>**20050912133353]
[Don't attempt to dh_installchangelogs ChangeLog in debian/rules.
Trent Buck <address@hidden>**20050912125754]
[Add prefix keys support.
address@hidden
[manual 71% done
address@hidden
[fix emms-info-ogginfo laguange
address@hidden
[manual update (68% done)
address@hidden
[emms-metaplaylist fix requested by Lukhas
address@hidden
[A minor spell correction.
address@hidden
[Make emms-mode-line-icon use the good function to get the current track
address@hidden
[Rename `emms-playlist-save-active-as-m3u' to
`emms-playlist-save-current-as-m3u'.
address@hidden
[emms-playlist-sort.el: New file containing various playlist sort
address@hidden
functions.
]
[emms-setup.el: Added `emms-playlist-sort' to `emms-devel'.
address@hidden
[emms-setup.el: Moved `emms-lyrics' and `emms-playing-time' into
address@hidden
`emms-all'.
]
[emms-lyrics.el: New function: `emms-lyrics-restore-mode-line'.
address@hidden
[emms-playing-time.el: New function: `emms-playing-time-restore-mode-line'.
address@hidden
[manual work (57% done)
address@hidden
[emms.el: Should initialize `emms-player-paused-p' to nil at start. Or a
address@hidden
pause + stop would make `emms-player-paused-p' be wrong.
]
[emms-mode-line.el: Made `emms-mode-line-alter' be compatible with
address@hidden
`emms-track-updated-functions'.
]
[emms-mode-line.el: When artist or title info cann't be achieved, show
address@hidden
file name without directory.
]
[emms-mode-line: Changed dead `emms-playlist-current-track-changed-hook'
address@hidden
to `emms-track-updated-functions'.
]
[emms-playlist-mode-switch-buffer
address@hidden
[Yet Another Installment of the manual re-write
address@hidden
[emms-setup.el re-write
address@hidden
[more manual re-writing
address@hidden
[manual work
address@hidden
[Another installment of manual changes
address@hidden
[some manual fixes (just the start)
address@hidden
[Rename emms-default.el to emms-setup.el.
address@hidden
[List all the changes needed in the manual
address@hidden
[Update tracks with a specific function, and provide
emms-track-updated-functions
address@hidden
[emms.el (emms-playlist-new): Use interactive-p rather than
Michael Olson <address@hidden>**20050925165342
called-interactively-p, since the latter is not available in Emacs21.
]
[emms-streams.el: Update `emms-info-file-info-song-artist' so that it
Michael Olson <address@hidden>**20050925160336
can deal with the new interface.
]
[emms-playlist-mode.el: 3rd attempt to not clobber
Michael Olson <address@hidden>**20050924183844
emms-playlist-buffer-p.
]
[rollback patch to fix adding tracks.
address@hidden
[Adding emms-info-ogginfo.el and consiquently modifying emms-default
address@hidden
[add emms-metaplaylist-mode.el
address@hidden
[emms-playing-time.el:
address@hidden
1 New functions: `emms-playing-time-enable',
`emms-playing-time-disable', `emms-playing-time-toggle', for handling
hook stuffs.
2 Removed `emms-playing-time-display-p' where unnecessary now.
3 Updated commentary and author name. :-)
]
[eemms-lyrics.el:
address@hidden
1 New functions: `emms-lyrics-enable', `emms-lyrics-disable',
`emms-lyrics-toggle', for handling hook stuffs.
2 Removed `emms-lyrics-display-p' where unnecessary now.
3 Updated commentary and author name. :-)
]
[emms-lyrics.el: Fixed a bug in `emms-lyrics-start'.
address@hidden
[emms-playing-time.el: Applied standard customization definitions.
address@hidden
[emms-info-mp3info: Provide a way to configure the mp3info output coding system.
address@hidden
[Add documentation of the define symbols for emms-info.el.
address@hidden
[remove emms-metaplaylist-mode code from emms-playlist-mode
address@hidden
[emms-playing-time: Since 'info-playing-time is an int now, changed
address@hidden
`emms-playing-time-display' accordingly.
]
[emms-info-mp3info: Use number for 'info-playing-time.
address@hidden
[emms-playing-time.el: Updated the playing-time retrieval method, so as
address@hidden
to be able to display playing-time again.
]
[emms-playlist-mode: Make sure emms-playlist-buffer-p is set, since we
Michael Olson <address@hidden>**20050922132808
destroy all local variables.
]
[emms-playlist-mode-go: Add buffer-live-p check to circumvent a
Michael Olson <address@hidden>**20050922132424
"selecting deleted buffer" error.
]
[emms-player-mplayer.el: Set resume method to nil to just use pause.
address@hidden
[fix emms-score.el and emms-info-ogg.el borkage
address@hidden
[clean-up emms-info-ogg.el
address@hidden
[fix ogg-info
address@hidden
[emms-info-mp3info ignores files which are not mp3s
address@hidden
[Don't set values mp3info has nothing for
address@hidden
[later-do.el: Run timer after function did run to avoid stacking
address@hidden
[Inefficiency removed: Update each track only once :P
address@hidden
[Ignore read-onliness when updating a track in a playlist buffer
address@hidden
[Use time-less-p instead of <= for times
address@hidden
[later-do.el emms version
address@hidden
[emms-streams shouldn't overwrite `emms-track-initialize-functions'
address@hidden
[Typo fix (findo -> find)
address@hidden
[emms-info-track-description: Fall back to old behavior if no title and artist
address@hidden
[Hotfix for emms-streams due to info changed. Please fix later.
address@hidden
[Fix emms-default.el, and ignore ogg stuff for now.
address@hidden
[Remove emms-info-later-do.el
address@hidden
[Fix emms-default.el for new emms-info.el
address@hidden
[emms-info-mp3info.el updated for newest emms-info.el
address@hidden
[emms-info.el rewrite.
address@hidden
[later-do: Work even if the called function errors out.
address@hidden
[emms-random: Use `emms-playlist-current-select-random'.
address@hidden
[fixing track killing some more
address@hidden
[use insert function for yanking
address@hidden
[Fixed saving/loading for emms-playlist-mode, also added track updating
address@hidden
[Added track updating to emms.
address@hidden
[Added emms-playlist-mode-insert-function (fixed sorting and shuffling
font-lock)
address@hidden
[Fix bugs in lyrics and mode-line modes when switching songs, fix yanking in
playlist buffer
address@hidden
[Fix track switching error and interactive playlist yanking
address@hidden
[Fix track switching error and interactive playlist yanking
address@hidden
[Added 'emms-playlist-clear to the default key-map for emms-playlist-mode
address@hidden
[Make emms-playlist-current-clear an interactive function.
address@hidden
[Added 'emms-playlist-clear to default playlist keymap
address@hidden
[include streaming into emms-default and fix streaming info from within the
*EMMS Streams* buffer
address@hidden
[Make `emms-playlist-clear' interactive so that I can map it to a key.
address@hidden
[Make `with-current-emms-playlist' disable read-onlyness.
address@hidden
[fix emms-streams.el and emms-player-mplayer.el
address@hidden
[comment out emms-info-playlist breakage
address@hidden
[emms-playlist-set-playlist-buffer: Ensure the selected buffer is a playlist.
address@hidden
[Ignore read-onliness when opening a playlist-mode-buffer.
address@hidden
[fixing errors after breakage
address@hidden
[Big renaming for current buffer/current playlist distinction.
address@hidden
All playlist functions which work on the current playlist now are named
`emms-playlist-current-...'. Other functions named `emms-playlist-...'
work on the current buffer.
This affects the following functions:
emms-playlist-clear => emms-playlist-current-clear
emms-playlist-selected-track => emms-playlist-current-selected-track
emms-playlist-select-next => emms-playlist-current-select-next
emms-playlist-select-previous => emms-playlist-current-select-previous
emms-playlist-select-random => emms-playlist-current-select-random
emms-playlist-select-first => emms-playlist-current-select-first
emms-playlist-select-last => emms-playlist-current-select-last
emms-playlist-insert-source => emms-playlist-current-insert-source
]
[emms-playlist-new: No, it's a major mode, DONT pass an argument!
address@hidden
[Making emms-default now emms-playlist-mode compatible
address@hidden
[emms-playlist-new: Pass positive argument to mode function.
address@hidden
[Renaming the "playlist" source to "streamlist".
address@hidden
Things might be broken.
]
[clean-up pseudo font-locking
address@hidden
["font-locking" for inserted, unselected tracks
address@hidden
[emms.el missing quote fix, emms-playlist-mode.el kill-track fix
address@hidden
[Adding a bunch of FIXME tags for the playlist source
address@hidden
When we come to a consensus on the naming, we'll just fix it.
Yrk should have a word about it, stream-playlist sounds good.
]
[Fixing emms-playlist-mode-open-buffer
address@hidden
[emms-playlist-select should not switch to the playlist buffer.
address@hidden
[Renaming emms-playlist-save to emms-playlist-mode-save-buffer
address@hidden
[Added docstrings and clean-up for emms-playlist-mode.el
address@hidden
[A kinder, gentler emms-playlist-mode-go
address@hidden
[clean-up and emms-playlist-mode-center-current
address@hidden
[emms-player-mplayer.el: mplayer also knows rm, rmvb, mp4, ...etc.
address@hidden
[multiple fixes to emms-playlist-mode.el
address@hidden
[emms-show now knows when nothing is playing.
address@hidden
[Inhibit read-only in `emms-playlist-insert-track'
address@hidden
[mpd-updates
Michael Olson <address@hidden>**20050917021138
emms-player-mpd.el: Add handler for 'resume.
(emms-player-mpd-paused-p): Remove, since we already have
emms-player-paused-p.
(emms-player-mpd-pause): Use toggle instead of either play or
pause.
]
[Making emms-playlist-mode-go respect emms-playlist-buffer
address@hidden
[Add `emms-ensure-player-playing-p'
address@hidden
[Adding emms-playlist-mode-save and -open
address@hidden
[Small fixes
address@hidden
[Be able to clear the playlist buffer even if it's killed.
address@hidden
[Adding emms-playlist-save-active-as-m3u
address@hidden
[Fixing a typo in emms-playlist-save-active
address@hidden
[Docstrings for playlist saving functions
address@hidden
[Adding m3u playlist format for saving.
address@hidden
[Added emms-playlist-mode.el
address@hidden
[Shuffle, sort and source-add don't move point anymore.
address@hidden
[Provide source insertion
address@hidden
[Cleaned up `emms-playlist-save' a bit
address@hidden
[Adding emms-playlist-save and -active-save
address@hidden
Opening will come soon.
]
[Fix emms-playlist-new and make emms-playlist-clear use it.
address@hidden
[Removing the old emms-save-playlist
address@hidden
[emms-source-add now checks for an as of yet unset marker, too.
address@hidden
[Add `emms-playlist-buffer-p'.
address@hidden
[emms-lyrics.el: Changed to `emms-player-seeked-hook' to
address@hidden
`emms-player-seeked-functions', defined in `emms.el'.
]
[emms-playing-time.el: Changed to `emms-player-seeked-hook' to
address@hidden
`emms-player-seeked-functions', defined in `emms.el'.
]
[emms.el: Fix seek bug in `emms-player-seek'.
address@hidden
[emms-lyrics.el: Updated commentary and applied standard customization
address@hidden
definitions.
]
[ogg-comment.el: Define macros before using them.
address@hidden
[Add more mikmod command line args.
address@hidden
[Added mikmod support (thanks to Martin Schoenmakers)
address@hidden
[emms-playlist-new, emms-playlist-set-playlist-buffer: New commands.
address@hidden
[Add `emms-player-simple-regexp'. Also, use it as appropriate.
address@hidden
[Fixing typo in file regexps for gstreamer
address@hidden
[Updated define-emms-simple-player examples in emms.texinfo
address@hidden
[Call widen in shuffle and sort.
address@hidden
[Added `emms-playlist-delete-track-function'.
address@hidden
[Remove emms-playlist-kill-track.
address@hidden
[Fix shuffling in combined sources.
address@hidden
[Call `emms-shuffle' to shuffle a source.
address@hidden
[Cleanup of the shuffle/sort stuff
address@hidden
[emms-shuffle-all: Depend on the value of current, not of emms-player-playing-p
address@hidden
[Don't make emms-playlist-sort and emms-playlist-shuffle interactive.
address@hidden
[Keep the selected song correct for shuffling and sorting
address@hidden
[Throw errors for `emms-next' and `emms-previous' at the end/beginning of the
playlist
address@hidden
[Added `emms-randomÃ' (idea by twb)
address@hidden
[Add shuffling and sorting.
address@hidden
[Lots of condition-case fixes.
address@hidden
[First attempt at reading playing time for .ogg
address@hidden
Problem : it's a bit long to read the info now.
We need to optimize that.
]
[Move gstreamer support into simple player.
address@hidden
[Add pause and resume to the simple player.
address@hidden
[emms-stream-info.el: Use emms-playlist-selected-track.
address@hidden
[Removed old gstreamer wrappers
address@hidden
[Added new generic wrapper for gstreamer
address@hidden
[Fixed typo in emms.el
address@hidden
Non quoted hook variable
]
[Rewrote emms-player-gstreamer
address@hidden
[Typo: It's emms-playlist-insert-track, not ...-track-insert.
address@hidden
[emms-player-mpd doesn't need emms-player-extensions anymore.
address@hidden
[FAQ: Typo fix (Thes -> The)
address@hidden
[Fixing the extensions problem.
address@hidden
Just removed the requires, and added require mplayer
in emms-default.
]
[Select a track after adding, too, if none is selected.
address@hidden
[Rename emms-mpd.el to emms-player-mpd.el
address@hidden
[Rename emms-lyric.el to emms-lyrics.el
address@hidden
[Add speex support
address@hidden
[Add pause and seek support to emms.el.
address@hidden
This factors out the mplayer support into emms-player-mplayer.el,
and removes emms-player-extensions.el.
]
[renaming the provide, Emacs complains otherwise
address@hidden
[Fixed emms-mode-line-icon and -playing-time
address@hidden
[Rename emms-gstreamer.el to emms-player-gstreamer.el
address@hidden
[fixing emms-lyric.el and emms-mode-line.el
address@hidden
I don't have any lyric file, so I can't test it. But
there are no errors :)
]
[emms.el (with-current-emms-playlist): Also recreate when the buffer is
address@hidden
dead.
]
[emms.el (emms-next-noerror): Always return non-nil when
address@hidden
`emms-playlist-select-next' doesn't error out.
]
[Playlist buffer rewrite
address@hidden
[Initial commit (CVS 2005-09-11)
address@hidden
Patch bundle hash:
5cf8aeab056449287f35e725e832ea503f1d2f85
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emms-patches] darcs patch: New XEmacs compatibility function: emms-... (and 6 more),
Michael Olson <=