emms-patches
[Top][All Lists]
Advanced

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

[Emms-patches] darcs patch: emms-player-mpd: Docfix, wait 200 millis...


From: Michael Olson
Subject: [Emms-patches] darcs patch: emms-player-mpd: Docfix, wait 200 millis... (and 2 more)
Date: Wed, 04 Jan 2006 02:55:43 -0500

Mon Jan  2 23:04:56 EST 2006  Michael Olson <address@hidden>
  * emms-player-mpd: Docfix, wait 200 millisecs for process to start, add more 
output when verbose mode is enabled.

Wed Jan  4 01:10:24 EST 2006  Michael Olson <address@hidden>
  * Use timers in a way that is compatible with both Emacs and XEmacs.

Wed Jan  4 02:52:37 EST 2006  Michael Olson <address@hidden>
  * 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.
New patches:

[emms-player-mpd: Docfix, wait 200 millisecs for process to start, add more 
output when verbose mode is enabled.
Michael Olson <address@hidden>**20060103040456] {
hunk ./emms-player-mpd.el 59
-;; Add "emms-player-mpd" to the top of `emms-player-list'.  If you use
-;; absolute file names in your m3u playlists (which is most likely),
-;; make sure you set `emms-player-mpd-music-directory' to the value of
-;; "music_directory" from your MusicPD config.
+;; Add the following to your config.
+;;
+;; (require 'emms-player-mpd)
hunk ./emms-player-mpd.el 63
-;; To get track info from MusicPD, do the following.
+;; Adjust `emms-player-mpd-server-name' and
+;; `emms-player-mpd-server-port' to match the location and port of
+;; your MusicPD server.
+;;
+;; (setq emms-player-mpd-server-name "localhost")
+;; (setq emms-player-mpd-server-port "6600")
hunk ./emms-player-mpd.el 70
+;; To get track info from MusicPD, do the following.
+;;
hunk ./emms-player-mpd.el 74
+;; Add 'emms-player-mpd to the top of `emms-player-list'.
+;;
+;; (add-to-list 'emms-player-list 'emms-player-mpd)
+
+;; If you use absolute file names in your m3u playlists (which is most
+;; likely), make sure you set `emms-player-mpd-music-directory' to the
+;; value of "music_directory" from your MusicPD config.  There are
+;; additional options available as well, but the defaults should be
+;; sufficient for most uses.
+
hunk ./emms-player-mpd.el 197
-          ((memq status '(run listen open))
+          ((memq status '(run open))
+           (when emms-player-mpd-verbose
+             (message "MusicPD process started successfully")))
+          (t
hunk ./emms-player-mpd.el 202
-             (message "MusicPD process started successfully"))))))
+             (message "Other MusicPD status change: %s" status))))))
hunk ./emms-player-mpd.el 224
-      (process-kill-without-query emms-player-mpd-process))))
+      (process-kill-without-query emms-player-mpd-process))
+    ;; wait a bit for the process to finish starting
+    (accept-process-output emms-player-mpd-process 0 200)))
}

[Use timers in a way that is compatible with both Emacs and XEmacs.
Michael Olson <address@hidden>**20060104061024] {
hunk ./emms-lyrics.el 181
-    (cancel-function-timers 'emms-lyrics-display)
+    (mapc #'emms-cancel-timer emms-lyrics-timers)
hunk ./emms-playing-time.el 72
+(defvar emms-playing-time-display-timer nil)
+
hunk ./emms-playing-time.el 86
-  (cancel-function-timers 'emms-playing-time-display))
+  (emms-cancel-timer emms-playing-time-display-timer)
+  (setq emms-playing-time-display-timer nil))
hunk ./emms-playing-time.el 93
-    (run-at-time t 1 'emms-playing-time-display)))
+    (setq emms-playing-time-display-timer
+         (run-at-time t 1 'emms-playing-time-display))))
hunk ./emms.el 365
+
+(defun emms-cancel-timer (timer)
+  "Cancel the given TIMER."
+  (when timer
+    (cond ((fboundp 'cancel-timer)
+           (cancel-timer timer))
+          ((fboundp 'delete-itimer)
+           (delete-itimer timer)))))
}

[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] {
hunk ./emms-player-mpd.el 84
+;; You will have to set `emms-player-mpd-sync-playlist' to non-nil if
+;; you want to use MusicPD in a similar way as most other EMMS
+;; backends.  If your EMMS playlist contains music files rather than
+;; playlists, set this to non-nil, otherwise if your EMMS playlist
+;; contains stored playlists, leave this set to nil.
+
hunk ./emms-player-mpd.el 92
-;; If you try to play individual songs, the tracks will not advance.
-;; I recommend playing playlists instead.  This should be addresed
-;; eventually, though, perhaps with a timer watching the mpd process.
-;;
-;; It might also be good to "sync" the mpd playlist with the emms one.
-;; Currently we just clear the mpd playlist, add the track, and play,
-;; for each track.  Not the best approach, unless your track is a
-;; playlist in itself, in which case all tracks from the playlist are
-;; added immediately after clearing the mpd playlist.
+;; Write a function that imports the current MusicPD playlist into
+;; EMMS.
hunk ./emms-player-mpd.el 169
+(defcustom emms-player-mpd-sync-playlist nil
+  "Whether to syncronize the EMMS playlist with the MusicPD playlist.
+
+If your EMMS playlist contains stored playlists, leave this set
+to nil.
+
+If your EMMS playlist contains music files rather than playlists,
+set this to non-nil."
+  :type 'boolean
+  :group 'emms-player-mpd)
+
+(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 208
+(defvar emms-player-mpd-playlist-id nil)
+(make-variable-buffer-local 'emms-player-mpd-playlist-id)
+
+(defvar emms-player-mpd-current-song nil)
+(defvar emms-player-mpd-status-timer nil)
+
hunk ./emms-player-mpd.el 249
-    ;; wait a bit for the process to finish starting
+    ;; wait a bit for the process to finish starting, as it likes to
+    ;; send us an "OK" message initially
hunk ./emms-player-mpd.el 285
-        (when (string-match "^OK MPD " (car data))
+        (when (string-match "^OK\\( MPD \\)?" (car data))
hunk ./emms-player-mpd.el 301
-        (string-match "\\`\\([^:]+\\):\\s-*\\(.+\\)" line)
-        (let ((name (match-string 1 line))
-              (value (match-string 2 line)))
-          (when (and name value)
-            (setq name (downcase name))
-            (add-to-list 'alist (cons name value) t))))
+        (when (string-match "\\`\\([^:]+\\):\\s-*\\(.+\\)" line)
+          (let ((name (match-string 1 line))
+                (value (match-string 2 line)))
+            (when (and name value)
+              (setq name (downcase name))
+              (add-to-list 'alist (cons name value) t)))))
hunk ./emms-player-mpd.el 309
+(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-and-wait "status")))))
+    (cdr (assoc "playlist" info))))
+
+(defun emms-player-mpd-get-current-song ()
+  "Get the current song from MusicPD.
+This is in the form of a number that indicates the position of
+the song on the current playlist."
+  (let ((info (emms-player-mpd-get-alist
+               (emms-player-mpd-parse-response
+                (emms-player-mpd-send-and-wait "status")))))
+    (cdr (assoc "song" info))))
+
+(defun emms-player-mpd-sync-from-emms ()
+  "Synchronize the MusicPD playlist with the contents of the
+current EMMS playlist."
+  (emms-player-mpd-clear)
+  (with-current-emms-playlist
+   (save-excursion
+     (mapc #'emms-player-mpd-add
+           (nreverse
+            (emms-playlist-tracks-in-region (point-min) (point-max)))))
+   (setq emms-player-mpd-playlist-id (emms-player-mpd-get-playlist-id))))
+
+(defun emms-player-mpd-detect-song-change ()
+  "Detect whether a song change has occurred.
+This is usually called by a timer."
+  (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)
+      (with-current-emms-playlist
+        (emms-playlist-select (progn
+                                (goto-line (1+ (string-to-number song)))
+                                (point)))))))
+
hunk ./emms-player-mpd.el 364
-(defun emms-player-mpd-add (file)
+(defun emms-player-mpd-add-file (file)
hunk ./emms-player-mpd.el 366
-If we do not succeed in adding the file, return the string from
-the process, nil otherwise."
+If we succeed in adding the file, return non-nil, nil otherwise."
hunk ./emms-player-mpd.el 370
-    (when (car output)
-      (when emms-player-mpd-verbose
-        (message "MusicPD error: %s: %s" file (cdar output)))
-      (cdar output))))
+    (if (car output)
+        (progn
+          (when emms-player-mpd-verbose
+            (message "MusicPD error: %s: %s" file (cdar output)))
+          nil)
+      t)))
hunk ./emms-player-mpd.el 377
-(defun emms-player-mpd-load (playlist)
+(defun emms-player-mpd-add-playlist (playlist)
hunk ./emms-player-mpd.el 383
-  (let ((pls-p (if (string-match "\\.pls\\'" playlist)
-                   t
-                 nil)))
+  (let ((pls-p (if (string-match "\\.pls\\'" playlist) t nil))
+        any-success)
hunk ./emms-player-mpd.el 392
-                (emms-player-mpd-add file)))
+                (when (emms-player-mpd-add-file file)
+                  (setq any-success t))))
hunk ./emms-player-mpd.el 397
-                        "\n"))))
+                        "\n"))
+    any-success))
+
+(defun emms-player-mpd-add (track)
+  "Add TRACK to the MusicPD playlist."
+  (let ((name (emms-track-get track 'name))
+        (type (emms-track-get track 'type)))
+    (cond ((eq type 'url)
+           (emms-player-mpd-add-file name))
+          ((or (eq type 'playlist)
+               (string-match "\\.\\(m3u\\|pls\\)\\'" name))
+           (emms-player-mpd-add-playlist name))
+          ((eq type 'file)
+           (emms-player-mpd-add-file name)))))
hunk ./emms-player-mpd.el 412
-(defun emms-player-mpd-play ()
-  "Play whatever is in the current MusicPD playlist."
-  (emms-player-mpd-send "play"))
+;;; EMMS API
+
+(defun emms-player-mpd-play (&optional id)
+  "Play whatever is in the current MusicPD playlist.
+If ID is specified, play the song at that position in the MusicPD
+playlist."
+  (if id
+      (progn
+        (unless (stringp id)
+          (setq id (number-to-string id)))
+        (emms-player-mpd-send (concat "play " id))
+        (setq emms-player-mpd-current-song id))
+    (emms-player-mpd-send "play")))
+
+(defun emms-player-mpd-start-and-sync (track)
+  "Starts a process playing TRACK.
+This is called if `emms-player-mpd-sync-playlist' is non-nil.
+
+It ensures that MusicPD's playlist is up-to-date with EMMS's
+playlist, and then plays the current track."
+  (let ((id (emms-player-mpd-get-playlist-id)))
+    (unless (and (stringp emms-player-mpd-playlist-id)
+                 (string= emms-player-mpd-playlist-id id))
+      (emms-player-mpd-sync-from-emms))
+    (with-current-emms-playlist
+      (emms-player-mpd-play (1- (line-number-at-pos
+                                 emms-playlist-selected-marker)))))
+  (unless emms-player-mpd-status-timer
+    (setq emms-player-mpd-status-timer
+          (run-at-time t emms-player-mpd-check-interval
+                       'emms-player-mpd-detect-song-change))))
hunk ./emms-player-mpd.el 447
-  (emms-player-mpd-clear)
-  (let ((name (emms-track-get track 'name)))
-    ;; If it's a playlist, we have to `load' rather than `add' it
-    (if (string-match "\\.\\(m3u\\|pls\\)\\'" name)
-        (emms-player-mpd-load name)
-      (emms-player-mpd-add name)))
-  ;; Now that we've added/loaded the file/playlist, play it
-  (emms-player-mpd-play))
+  (if emms-player-mpd-sync-playlist
+      (emms-player-mpd-start-and-sync track)
+    (emms-player-mpd-clear)
+    (when (emms-player-mpd-add track)
+      ;; if we have loaded the item successfully, play it
+      (emms-player-mpd-play))))
hunk ./emms-player-mpd.el 457
+  (emms-cancel-timer emms-player-mpd-status-timer)
+  (setq emms-player-mpd-status-timer nil)
hunk ./emms-player-mpd.el 473
-;; Not currently used by the API (to my knowledge), but I make use of
-;; these to advance my playlists.
-
}

Context:

[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:
744e1cf76bbdbeca4761af5adcb55a02a2670af4

reply via email to

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