emms-patches
[Top][All Lists]
Advanced

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

[Emms-patches] darcs patch: Remove emms-pbi*.el at forcer's request.


From: Michael Olson
Subject: [Emms-patches] darcs patch: Remove emms-pbi*.el at forcer's request.
Date: Sat, 01 Apr 2006 14:37:17 -0500

Sat Apr  1 14:33:06 EST 2006  Michael Olson <address@hidden>
  * Remove emms-pbi*.el at forcer's request.
New patches:

[Remove emms-pbi*.el at forcer's request.
Michael Olson <address@hidden>**20060401193306] {
hunk ./emms-pbi-filter.el 1
-;;; emms-pbi-filter.el --- Filtering functions for the PBI
-
-;; Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
-
-;; Author: Ulrik Jensen <address@hidden>
-;; Keywords: 
-
-;; This file is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; This file is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
-;; Boston, MA 02110-1301 USA
-
-;;; Commentary:
-
-;; This file provides a way to filter the playlist to only show
-;; certain parts of a big playlist, and only play after those.
-
-;;; Code:
-
-(require 'emms-pbi)
-
-(defvar emms-pbi-not-filtered nil
-  "A list of trackindexes in `emms-playlist' that aren't filtered
-out.")
-
-(defun emms-pbi-filter-region (beg end)
-  "Hide the lines spanning the region from BEG to END."
-  (interactive "r")
-  (save-excursion
-    (set-buffer emms-pbi-playlist-buffer-name)
-    (goto-char beg)
-    (let ((startofregion (point-at-bol)))
-      (goto-char end)
-      (let ((endofregion (point-at-eol)))
-       (let ((hideoverlay (make-overlay startofregion  endofregion))
-             (newlineoverlay (make-overlay (- startofregion 1) startofregion))
-             (intangibleoverlay (make-overlay (- startofregion 1) (+  
endofregion 1))))
-         (overlay-put newlineoverlay 'after-string "\n")
-         (overlay-put newlineoverlay 'invisible t)
-         (overlay-put newlineoverlay 'emms-id 'emms-pbi-filter-overlay)
-         (overlay-put intangibleoverlay 'intangible t)
-         (overlay-put intangibleoverlay 'emms-id 'emms-pbi-filter-overlay)
-         (overlay-put hideoverlay 'emms-id 'emms-pbi-filter-overlay)
-         (overlay-put hideoverlay 'invisible t))))))
-
-(defun emms-pbi-unfilter-region (beg end)
-  "Show all hidden lines between BEG and END."
-  (interactive "r")
-  (let ((overlays (overlays-in beg end)))
-    (while overlays
-      (when (equal (overlay-get (car overlays) 'emms-id) 
'emms-pbi-filter-overlay)
-       (delete-overlay (car overlays)))
-      (setq overlays (cdr overlays)))))
-
-(provide 'emms-pbi-filter)
-;;; emms-pbi-filter.el ends here
rmfile ./emms-pbi-filter.el
hunk ./emms-pbi-mark.el 1
-;;; emms-pbi-mark.el --- Mark-functions for the EMMS playlist
-
-;; Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-
-;; Author: Ulrik Jensen <address@hidden>
-;; Keywords: 
-
-;; This file is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; This file is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
-;; Boston, MA 02110-1301 USA
-
-;;; Commentary:
-
-;; This file provides a mark-facility for the EMMS playlist-buffer
-;; interface.
-
-;; To use it, add:
-
-;; (require 'emms-pbi-mark)
-;; (emms-pbi-mark 1)
-
-;; To your ~/.emacs. 
-
-;;; Code:
-
-;; $Revision: 1.7 $
-;; $Id: emms-pbi-mark.el,v 1.7 2005/07/09 11:56:00 forcer Exp $
-
-;; Customs
-(defgroup emms-pbi-mark nil
-  "Marking utilities for the EMMS playlist"
-  :prefix "emms-pbi-mark-"
-  :group 'emms-pbi)
-
-(defface emms-pbi-mark-marked-face
-  '((((class color))
-     (:foreground "green" :weight bold)))
-  "Face used for marked files"
-  :group 'emms-pbi-mark)
-
-;; variables
-(defvar emms-pbi-mark-indices nil
-  "A list containing the indices of the marked elements.")
-
-;; Entry
-(defun emms-pbi-mark (arg)
-  "Activate mark-mode for the EMMS-playlist."
-  (interactive "p")
-  (if (and arg (< 0 arg))
-      (progn
-       (add-hook 'emms-pbi-current-line-face-changed-hook 
'emms-pbi-add-mark-face)
-       (add-hook 'emms-playlist-changed-hook 'emms-pbi-mark-invalidate-marks)
-       (add-hook 'emms-pbi-mode-hook 'emms-pbi-mark-add-keybindings))
-    (remove-hook 'emms-pbi-current-line-face-changed-hook 
'emms-pbi-add-mark-face)
-    (remove-hook 'emms-pbi-mode-hook 'emms-pbi-mark-add-keybindings)
-    (remove-hook 'emms-playlist-changed-hook 'emms-pbi-mark-invalidate-marks)))
-
-(defun emms-pbi-mark-invalidate-marks ()
-  "Force a reset of marked tracks."
-  (when (get-buffer emms-pbi-playlist-buffer-name)
-    (emms-pbi-mark-clear-marked))
-  (setq emms-pbi-mark-indices nil))
-
-(defun emms-pbi-mark-add-keybindings ()
-  "Adds keybindings for the mark-functions to a *Playlist* buffer."
-  (local-set-key (kbd "m") 'emms-pbi-mark-mark-file)
-  (local-set-key (kbd "M-u") 'emms-pbi-mark-clear-marked)
-  (local-set-key (kbd "u") 'emms-pbi-mark-unmark-file))
-
-(defun emms-pbi-mark-current-line-marked-p ()
-  "Return non-nil if the current line is marked, nil otherwise."
-  (let ((idx (emms-pbi-return-current-line-index)))
-    (if (not idx)
-       nil
-      (member idx emms-pbi-mark-indices))))
-
-(defun emms-pbi-mark-current-line-mark ()
-  "Mark the current line."
-  (let ((idx (emms-pbi-return-current-line-index)))
-    (when (emms-pbi-valid-index-p idx)
-      (add-to-list 'emms-pbi-mark-indices idx)
-      (emms-pbi-add-mark-face))))
-
-(defun emms-pbi-mark-current-line-unmark ()
-  "Unmark the current line."
-  (let ((idx (emms-pbi-return-current-line-index)))
-    (when (and (emms-pbi-valid-index-p idx)
-              (emms-pbi-mark-current-line-marked-p))
-      (setq emms-pbi-mark-indices (remove idx emms-pbi-mark-indices))
-      (emms-pbi-remove-mark-face))))
-
-(defun emms-pbi-add-mark-face ()
-  "Add a face to the current line, if it is marked."
-  (when (emms-pbi-mark-current-line-marked-p)
-    (put-text-property (point-at-bol) (point-at-eol) 'face 
'emms-pbi-mark-marked-face)))
-
-(defun emms-pbi-remove-mark-face ()
-  "Remove the marked-face from the current-line, if it's no longer
-marked."
-  (when (not (emms-pbi-mark-current-line-marked-p))
-    (let ((inhibit-read-only t))
-      (remove-text-properties (point-at-bol) (point-at-eol) '(face))
-      (emms-pbi-add-properties-current-line))))
-
-;; Programming interface functions
-(defun emms-pbi-mark-get-marked ()
-  "Return a list of tracks marked in the playlist"
-  (let ((indices emms-pbi-mark-indices)
-       (tracks nil))
-    (while indices
-      (let ((idx (car indices)))
-       (when (emms-pbi-valid-index-p idx)
-         (add-to-list 'tracks (emms-playlist-get-track idx))))
-       (setq indices (cdr indices)))
-    tracks))
-
-;; User Interface functions
-(defun emms-pbi-mark-clear-marked ()
-  "Clear all marks from the playlist-buffer"
-  (interactive)
-  (save-excursion
-    (set-buffer (get-buffer emms-pbi-playlist-buffer-name))
-    (let ((indices emms-pbi-mark-indices)
-         (tracks nil))
-      (while emms-pbi-mark-indices
-       (let ((idx (car emms-pbi-mark-indices)))          
-         (when (emms-pbi-valid-index-p idx)
-           (goto-line (1+ idx))
-           (emms-pbi-mark-current-line-unmark)))))))
-
-(defun emms-pbi-mark-mark-file (arg)
-  "Marks the current line in the playlist.
-
-With prefix argument, mark the following ARG lines."
-  (interactive "p")
-  (let ((marksleft arg)
-       (inhibit-read-only t))
-    (while (> marksleft 0)
-      (emms-pbi-mark-current-line-mark)
-      (forward-line 1)
-      (setq marksleft (1- marksleft)))))
-
-(defun emms-pbi-mark-unmark-file (arg)
-  "Removes a mark from the current line in the playlist.
-
-With prefix argument, unmark the following ARG lines."
-  (interactive "p")
-  (let ((marksleft arg)
-       (inhibit-read-only t))
-    (while (> marksleft 0)
-      (emms-pbi-mark-current-line-unmark)
-      (forward-line 1)
-      (setq marksleft (1- marksleft)))))
-
-(provide 'emms-pbi-mark)
-;;; emms-pbi-mark.el ends here
rmfile ./emms-pbi-mark.el
hunk ./emms-pbi-popup.el 1
-;;; emms-pbi-popup.el --- Playlist-popup functionality for EMMS
-
-;; Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-
-;; Author: Ulrik Jensen <address@hidden>
-;; Keywords: 
-
-;; This file is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; This file is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
-;; Boston, MA 02110-1301 USA
-
-;;; Commentary:
-
-;; 
-
-;;; Code:
-(require 'emms-pbi)
-
-(defvar emms-pbi-popup-version "0.2 $Revision: 1.7 $"
-  "EMMS pbi popup version string.")
-;; $Id: emms-pbi-popup.el,v 1.7 2005/07/09 11:56:00 forcer Exp $
-
-(defgroup emms-pbi-popup nil
-  "*Module for popping up the playlist in a keystroke."
-  :group 'emms-pbi
-  :prefix "emms-pbi-popup-")
-
-(defcustom emms-pbi-popup-default-width (+ (or 
emms-pbi-playlist-entry-max-length 36) 4)
-  "*The default width of the window to popup the playlist in.
-
-This defaults to `emms-pbi-playlist-entry-max-length' + 4, or 40 if
-`emms-pbi-playlist-entry-max-length' is nil."
-  :group 'emms-pbi-popup
-  :type 'number)
-
-(defcustom emms-pbi-popup-default-side-left nil
-  "*Boolean determining whether to popup in the left-side as a
-default. If nil, the popup will appear in the right side."
-  :type 'boolean
-  :group 'emms-pbi-popup)
-
-(defvar emms-pbi-popup-old-conf nil
-  "The window-configuration when popping up the playlist.")
-
-(defun emms-pbi-popup-forget-conf ()
-  "Forget the previously saved configuration, and make the changes
-final."
-  (setq emms-pbi-popup-old-conf nil)
-  ;; Remove the special bindings
-  (emms-pbi-popup-revert)
-  ;; Remove this function again, it will get addded when a new
-  ;; configuration is saved anyway
-  (remove-hook 'window-configuration-change-hook 'emms-pbi-popup-forget-conf))
-
-(defun emms-pbi-popup-revert ()
-  "Revert to the window-configuration from before if there is one,
-otherwise just remove the special bindings from the playlist."
-  (interactive)
-   (remove-hook 'emms-pbi-manually-change-song-hook 'emms-pbi-popup-revert)
-  (let ((playlistbuffer (get-buffer emms-pbi-playlist-buffer-name)))
-    (when playlistbuffer
-      (save-excursion
-       (set-buffer playlistbuffer)
-       (local-unset-key (kbd "q"))
-       (local-unset-key (kbd "TAB")))))
-  (when emms-pbi-popup-old-conf
-    (set-window-configuration emms-pbi-popup-old-conf)))
-
-;; Entry-point
-(defun emms-pbi-popup-playlist (&optional popup-left popup-width )
-  "Pops up the playlist temporarily, for selecting a new song.
-
-If POPUP-LEFT is non-nil, the window will appear in the left side of
-the current window, otherwise it will appear in the right side. 
-
-POPUP-WIDTH is the width of the new frame, defaulting to
-`emms-pbi-popup-default-width'."
-  (interactive)
-  (setq popup-width (or popup-width emms-pbi-popup-default-width)
-       popup-left (or popup-left emms-pbi-popup-default-side-left))
-  ;; Split the current screen, and make the playlist popup
-  (let ((new-window-width (- (window-width) popup-width)))
-    (if (not (> new-window-width 0))
-       ;; consider just opening the playlist here instead of arguing
-       ;; semantics with the user?
-       (error "Current window not wide enough to popup playlist!")
-      ;; Negative value to popup in the left side
-      (when popup-left
-       (setq new-window-width (- new-window-width)))
-      ;; Make sure EMMS is actually playing before continuing
-      (if (or (not (emms-playlist-get-playlist)) (= (length 
(emms-playlist-get-playlist)) 0))
-         ;; we haven't got a playlist, exit.
-         (error "Can't popup playlist-buffer until a playlist has been 
loaded!")
-       ;; if 
-       ;; Save the current window-configuration
-       (setq emms-pbi-popup-old-conf (current-window-configuration))
-       ;; Split and select the playlist
-       (let ((buffer-on-the-right
-              (split-window-horizontally new-window-width)))
-         (unless popup-left
-           (select-window buffer-on-the-right)))
-       (unless (get-buffer emms-pbi-playlist-buffer-name)
-         ;; No playlist-buffer yet, create it.
-         (emms-pbi 1))     
-       (switch-to-buffer emms-pbi-playlist-buffer-name t)
-       ;; Now, modify the playlist functionality to revert to the
-      ;; window-configuration from before when a song is selected
-       (add-hook 'emms-pbi-manually-change-song-hook 'emms-pbi-popup-revert)
-       (local-set-key (kbd "TAB") 'emms-pbi-popup-revert)
-       (local-set-key (kbd "q") 'delete-window)
-       ;; Also, forget about the whole thing if the user does something
-       ;; to the window-configuration
-       (add-hook 'window-configuration-change-hook 
'emms-pbi-popup-forget-conf)))))
-
-
-(provide 'emms-pbi-popup)
-;;; emms-pbi-popup.el ends here
rmfile ./emms-pbi-popup.el
hunk ./emms-pbi.el 1
-;;; pbi.el --- Playlist-buffer interface for emms.el
-
-;; Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-
-;; Author: Ulrik Jensen <address@hidden>
-;; Keywords: 
-
-;; This file is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; This file is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
-;; Boston, MA 02110-1301 USA
-
-;;; Commentary:
-
-;; This module provices a playlist-buffer interface (pbi) to EMMS.
-
-;; To use it, just add the following to your emms-configuration
-;; (.emacs, for example):
-
-;; (require 'emms-pbi)
-
-;; If you want the playlist to be generated automagically when you
-;; start playing your music, use the following:
-
-;; (emms-pbi 1)                               
-
-;; Another common usage, is to just load the playlist when you need
-;; it. This can be achieved by starting emms, and then typing M-x
-;; emms-pbi RET.
-
-;; The default look of the playlist depends on the value of
-;; `emms-track-description-function'. This function takes a
-;; track-value and returns a string, that will then be formatted
-;; further, and inserted into the playlist-buffer. If you want a
-;; different function to handle the base-description, but you only
-;; want that function for emms-pbi, you can override
-;; `emms-pbi-track-description-function', which will fall back to
-;; `emms-track-description-function' when nil
-
-;; You'll probably also want to customize the faces, in which case,
-;; you do M-x customize-group RET emms-pbi RET and tweak.
-
-;; To get id3-tags, and ogg-info, you should look at
-;; emms-info.el. This file provides amongst other things, functions
-;; suitable as values of `emms-track-description-function' (or if you
-;; only want the info in emms-pbi, values of
-;; `emms-pbi-track-description-function').
-
-;; If you use a big playlist, and info, you probably don't want info
-;; to load everything right at once. This can be accomplished through
-;; the `emms-info-later-do'-module, which will gradually load the
-;; playlist. A note on how to make it work with the PBI as well, is
-;; included in that file (and also a part of emms-default.el,
-;; currently the 'cvs-setup)
-
-;; Linenumbering (Changed!)  
-;;
-;; Prior versions of emms-pbi had their own linenumbering
-;; functions. But these functions were either error prone or damn
-;; slow. And besides there was already a emacs mode that does exactly
-;; the same: setnu.el So we remove the linenumbering functions in
-;; favour of setnu. You can get setnu from
-;; http://www.wonderworks.com/download/setnu.el. To get linenumbers
-;; just put the following code in your ~/.emacs and put setnu.el
-;; somewhere on your loadpath:
-;;
-;; (require 'setnu)
-;; (add-hook 'emms-pbi-after-build-hook (lambda () (setnu-mode 1)))
-
-;;; Code:
-
-(require 'emms)
-(require 'cl)
-
-(defvar emms-pbi-version "0.2 $Revision: 1.37 $"
-  "EMMS pbi version string.")
-;; $Id: emms-pbi.el,v 1.37 2005/07/09 19:14:57 yonirabkin Exp $
-
-;; Customizations
-
-(defgroup emms-pbi nil
-  "*A playlist-buffer user-interface for EMMS."
-  :group 'emms
-  :prefix "emms-pbi-")
-
-(defcustom emms-pbi-playlist-entry-generate-function 'identity
-  "*The function to call for generating a single item of the
-playlist. This will be called with a string argument FILENAME, and
-should return the text to be inserted in the playlist."
-  :type 'function
-  :group 'emms-pbi)
-
-(defcustom emms-pbi-playlist-entry-max-length nil
-  "*The maximum length of an entry in the playlist. If this is nil,
-the entire string provided by `emms-track-description-function'.
-will be used. Beware, the output of that function is cut off to fit
-the max-length before running
-`emms-pbi-playlist-entry-generate-function'."
-  :type '(restricted-sexp :match-alternatives (integerp 'nil))
-  :group 'emms-pbi)
-
-(defcustom emms-pbi-playlist-buffer-name "*Playlist*"
-  "Name of the buffer to use as a playlist-buffer"
-  :type 'string
-  :group 'emms-pbi)
-
-(defcustom emms-pbi-track-description-function nil
-  "Returns a description for the playlist.
-
-Take track as only argument. If `emms-pbi-track-description-function' is nil,
-`emms-track-description-function' is used instead."
-  :type 'function
-  :group 'emms-pbi)
-
-;; Hooks
-
-(defcustom emms-pbi-after-build-hook nil
-  "Hook that is run after the playlist buffer is built.
-That might be usefull to change the playlist buffer before the
-buffer is set read-only."
-  :type 'hook
-  :group 'emms-pbi)
-
-(defcustom emms-pbi-current-line-face-changed-hook nil
-  "Hook that is called when the face of the current line changes."
-  :type 'hook
-  :group 'emms-pbi)
-
-(defcustom emms-pbi-manually-change-song-hook nil
-  "Hook that is called when the song is manually changed."
-  :type 'hook
-  :group 'emms-pbi)
-
-;; Faces
-(defface emms-pbi-song-face
-  '((((class color) (background light))
-     (:foreground "red"))
-    (((class color) (background dark))
-     (:foreground "red")))
-  "Face used for songs"
-  :group 'emms-pbi)
-
-(defface emms-pbi-current-face
-  '((((class color)(background light))
-     (:foreground "blue" :weight bold))
-    (((class color)(background dark))
-     (:foreground "yellow" :weight bold)))
-  "Face used for the currently played song"
-  :group 'emms-pbi)
-
-;; Variables
-(defvar emms-pbi-suspend-hooks nil
-  "When this variable is t, the hooks updating the playlist stop
-reacting.
-
-If you do something with `emms-playlist', and don't want to regenerate
-the entire playlist-buffer, a good idea is to bind
-`emms-pbi-suspend-hooks' to t when you set `emms-playlist'.")
-
-(defvar emms-pbi-current-overlay nil
-  "Overlay moving with the current track.")
-
-(defvar emms-kill-ring ()
-  "Kill-ring for the playlist buffer.")
-
-(defvar emms-pbi-longest-line 0
-  "The length of the longest line yet inserted.")
-
-;; Entry points
-(defun emms-pbi (arg)
-  "Turn on emms-playlist if prefix argument ARG is a positive integer,
-off otherwise."
-  (interactive "p")
-  (if (and arg (> arg 0))
-      (progn
-       (add-hook 'emms-player-started-hook 'emms-pbi-update-current-face)
-       ;; make sure this is appended!
-       (add-hook 'emms-playlist-changed-hook 'emms-pbi-rebuild-playlist-buffer 
t)
-       ;; build the playlist, if we have a playlist
-       (if (> (length emms-playlist) 0)
-           (progn 
-             (emms-pbi-build-playlist-buffer)
-             (switch-to-buffer emms-pbi-playlist-buffer-name))
-         (message "Empty playlist, won't build playlist-buffer!")))
-    (remove-hook 'emms-player-stopped-hook 'emms-pbi-remove-current-face)
-    (remove-hook 'emms-player-starter-hook 'emms-pbi-add-current-face)
-    (remove-hook 'emms-playlist-changed-hook 
'emms-pbi-rebuild-playlist-buffer)))
-
-(defun emms-pbi-shorten-entry-to-max-length (entry)
-  "Cut off an entry-text to make sure it's no longer than
-`emms-pbi-playlist-entry-max-length' characters long."
-  (if (and emms-pbi-playlist-entry-max-length
-          (> (length entry) emms-pbi-playlist-entry-max-length))
-      (substring entry 0 emms-pbi-playlist-entry-max-length)
-    entry))
-
-(defun emms-position-vector (elt vector)
-  "Returns the index of elt in vector"
-  (let ((curidx 0)
-       (residx nil))
-    (while (and (< curidx (length vector)) (eq residx nil))
-      (let ((curelt (aref vector curidx)))
-       (when (equal elt curelt)
-         (setq residx curidx)))
-      (setq curidx (1+ curidx)))
-    residx))
-
-;; This function should probably be phased out, since it depends too
-;; much on emms-info. All uses should be replaced by the function
-;; below:
-(defun emms-pbi-entry-info-updated (track info)
-  "Update the track-entry based on the info"
-  (save-excursion
-    (set-buffer emms-pbi-playlist-buffer-name)
-    (let ((inhibit-read-only t)
-         (pos (emms-position-vector track emms-playlist)))
-      ;; find the entry in the playlist, corresponding to TRACK    
-      (when 
-         (goto-line (1+ pos))      
-       ;; update the text of it - by generating it again simply
-       ;; first, find the index of the entry in the playlist.
-       ;; and save the current properties
-       (delete-region (point-at-bol) (point-at-eol))
-       (emms-pbi-insert-entry (emms-playlist-get-track pos))
-       ;; and update them
-       (emms-pbi-add-properties-current-line)))))
-
-(defun emms-pbi-entry-update-track (track)
-  "Update the playlist entry for TRACK."
-  (let ((trackidx
-        (loop for i from 0 for a across (emms-playlist-get-playlist)
-              if (equal a track) return i)))
-    (when (and trackidx (emms-pbi-valid-index-p trackidx))
-      (emms-pbi-entry-update-idx trackidx))))
-
-(defun emms-pbi-entry-update-idx (trackidx)
-  "Update the playlist entry for the track at index TRACKIDX."
-  (save-excursion
-    (set-buffer emms-pbi-playlist-buffer-name)
-    ;; Find the track
-    (when (emms-pbi-valid-index-p trackidx)
-      (let ((lineidx (1+ trackidx)))
-       (let ((inhibit-read-only t))
-         ;; Erase the line
-         (goto-line lineidx)
-         (delete-region (point-at-bol) (point-at-eol))
-         ;; Insert the track and add properties
-         (emms-pbi-insert-entry (emms-playlist-get-track trackidx))
-         (emms-pbi-add-properties-current-line)
-         ;; Make sure the overlay is in place
-         (emms-pbi-update-current-face))))))
-
-(defun emms-pbi-entry-generate (track)
-  "Generate an entry for TRACK in the playlist-buffer.
-
-This uses `emms-pbi-track-description-function', or if that is nil, it defaults
-to `emms-track-description'."
-  (if emms-pbi-track-description-function
-      (funcall emms-pbi-track-description-function track)
-    ;; default to the emms way
-    (funcall emms-track-description-function track)))
-
-(defun emms-pbi-insert-entry (track)
-  "Insert an entry for TRACK in the playlist."
-  (let ((inhibit-read-only t)
-       (line (emms-pbi-shorten-entry-to-max-length
-              (emms-pbi-entry-generate track))))
-    (insert line)
-    (emms-pbi-add-properties-current-line)
-    ;; for the convenience of other modules, keep track of the longest
-    ;; line yet.
-    (setq emms-pbi-longest-line (max emms-pbi-longest-line (length line)))))
-
-(defun emms-pbi-rebuild-playlist-buffer ()
-  "This function rebuilds the playlist-buffer if necessary."
-  (unless emms-pbi-suspend-hooks
-    (emms-pbi-build-playlist-buffer)))
-
-;; Function for building the playlist
-
-(defun emms-pbi-build-playlist-buffer ()
-  "Build a playlist-buffer based on the current playlist."
-  (save-excursion
-    (set-buffer (get-buffer-create emms-pbi-playlist-buffer-name))
-    (let ((playlist-length (length emms-playlist))
-         (idx 0)
-         (inhibit-read-only t))
-      ;; reset the buffer
-      (erase-buffer)
-      ;; insert all elements
-      (while (< idx playlist-length)
-       (emms-pbi-insert-entry (emms-playlist-get-track idx))
-       (insert "\n")
-       (setq idx (1+ idx)))
-      ;; Initialise the buffer variables
-      ;; remove the last line
-      (emms-pbi-update-current-face)
-      (delete-backward-char 1)
-      (run-hooks 'emms-pbi-after-build-hook)
-      (setq buffer-read-only t)
-      (emms-pbi-mode)
-      ;; as the last thing we do, update the current-face.
-      (when emms-player-playing-p
-       (emms-pbi-update-current-face)))))
-
-;; Updating the currently playing face
-(defun emms-pbi-update-current-face ()
-  "Updates the file line with the current-face"
-  (when (get-buffer emms-pbi-playlist-buffer-name)
-    (save-excursion
-      (set-buffer emms-pbi-playlist-buffer-name)
-      (let ((inhibit-read-only t))
-       ;; don't try to `1+' the value `nil' 
-       (unless (null emms-playlist-current)
-         (goto-line (1+ emms-playlist-current))
-         (if (overlayp emms-pbi-current-overlay)
-             (move-overlay emms-pbi-current-overlay
-                           (point-at-bol) (point-at-eol))
-           (setq emms-pbi-current-overlay 
-                 (make-overlay (point-at-bol) (point-at-eol)))
-           (overlay-put emms-pbi-current-overlay 'face 
'emms-pbi-current-face)))))))
-                       
-;;Handling faces & properties
-(defun emms-pbi-add-properties-current-line ()
-  "Adds the correct faces and other properties to the current line"
-  ;; Default face
-  (let ((idx (emms-pbi-return-current-line-index)))
-    (add-text-properties (point-at-bol) (point-at-eol)
-                        '(face emms-pbi-song-face))
-    (run-hooks 'emms-pbi-current-line-face-changed-hook)))
-
-(defun emms-pbi-play-current-line ()
-  "Play the current line"
-  (interactive)  
-  (let ((new-idx (emms-pbi-return-current-line-index)))
-    ;; check boundaries
-    (when (and new-idx (> new-idx -1) (< new-idx (length emms-playlist)))
-      (emms-stop)
-      (emms-playlist-set-current new-idx)
-      (emms-start)
-      (run-hooks 'emms-pbi-manually-change-song-hook))))
-
-(defun emms-pbi-show-current-line ()
-  "Show filename and info for track on current line."
-  (interactive)  
-  (let ((idx (emms-pbi-return-current-line-index)))
-    (message "Filename: %s; Info: %s" 
-            (emms-track-name 
-             (emms-playlist-get-track idx)) 
-            (emms-playlist-get idx))))
-
-;; Major-mode for the playlist-buffer
-(define-derived-mode emms-pbi-mode fundamental-mode "EMMS playlist"
-  (suppress-keymap emms-pbi-mode-map t)
-  (define-key emms-pbi-mode-map (kbd "n")         'emms-next)
-  (define-key emms-pbi-mode-map (kbd "p")         'emms-previous)
-  (define-key emms-pbi-mode-map (kbd "c")         'emms-pbi-recenter)
-  (define-key emms-pbi-mode-map (kbd "l")         'emms-pbi-recenter)
-  (define-key emms-pbi-mode-map (kbd "C-x C-s")   'emms-pbi-export-playlist)
-  (define-key emms-pbi-mode-map (kbd "C-k")       'emms-pbi-kill-line)
-  (define-key emms-pbi-mode-map (kbd "d")         'emms-pbi-kill-line)
-  (define-key emms-pbi-mode-map (kbd "C-y")       'emms-pbi-yank)
-  (define-key emms-pbi-mode-map (kbd "s")         'emms-stop)
-  (define-key emms-pbi-mode-map (kbd "f")         'emms-pbi-show-current-line)
-  (define-key emms-pbi-mode-map (kbd "RET")       'emms-pbi-play-current-line)
-  (define-key emms-pbi-mode-map (kbd "q")         'bury-buffer)
-  (define-key emms-pbi-mode-map (kbd "<mouse-2>") 'emms-pbi-play-current-line)
-  (define-key emms-pbi-mode-map (kbd "Q")         'emms-pbi-quit)
-  (define-key emms-pbi-mode-map (kbd "?")         'describe-mode))
-
-(defun emms-pbi-quit ()
-  "Stops emms and kill the playlist buffer"
-  (interactive)
-  (emms-stop) 
-  (kill-buffer emms-pbi-playlist-buffer-name))
-
-(defun emms-playlist-empty-p ()
-  (= (length emms-playlist) 0))
-
-(defun emms-pbi-kill-line ()
-  "Kill the playlist line the cursor is currently on and update
-  the playlist accordingly."
-  (interactive)
-  (if (emms-playlist-empty-p)
-      (message "One cannot remove what is not there grasshopper")
-    (let ((idx (emms-pbi-return-current-line-index))
-         (inhibit-read-only t))
-      ;; remove from buffer
-      (goto-char (point-at-bol))
-      (kill-line 1)
-      ;; push track onto emms-kill-ring
-      (push (aref emms-playlist idx)
-           emms-kill-ring)
-      ;; now delete the entry from the playlist. - making sure that
-      ;; the entire list isn't regenerated
-      (let ((emms-pbi-suspend-hooks t))
-       (emms-playlist-remove idx))
-      (if (numberp emms-playlist-current)
-         ;; this deals with edge cases, explicit
-         (cond ((and emms-player-playing-p
-                     (= idx emms-playlist-current))
-                (emms-stop) (emms-start)
-                (emms-pbi-update-current-face))
-               ((= idx emms-playlist-current)
-                (emms-pbi-update-current-face))
-               ((< idx emms-playlist-current)
-                (setq emms-playlist-current
-                      (1- emms-playlist-current))))
-       (emms-stop))))) ;; stop if playlist empty after kill
-
-(defun emms-pbi-yank ()
-  "Yank a filename from `kill-ring' into the playlist."
-  (interactive)
-  (let ((track (pop emms-kill-ring))
-       (inhibit-read-only t)
-       (idx (emms-pbi-return-current-line-index)))
-    (if (and track (emms-player-for track))
-       ;; only insert files that actually exist, and can be played.
-       ;; insert it into the buffer
-       (save-excursion
-         (goto-char (point-at-bol))
-         (insert "\n")
-         (forward-line -1)
-         (goto-char (point-at-bol))
-         (emms-pbi-insert-entry track)
-         ;; insert it into the playlist
-         (let ((emms-pbi-suspend-hooks t))
-           (emms-playlist-add (list track) idx))))
-    (message "No playable track in emms-kill-ring!")))
-
-(defun emms-pbi-return-current-line-index ()
-  "Return the index position in the playlist of the current line." 
-  (1- (count-lines (point-min) (point-at-eol))))
-
-(defun emms-pbi-valid-index-p (idx)
-  "Return non-nil if IDX is a valid index in the current playlist."
-  (and idx (> idx -1) (< idx (length emms-playlist))))
-
-(defun emms-pbi-recenter ()
-  "Center on current playing track"
-  (interactive)
-  (let ((line (1+ emms-playlist-current)))
-    (goto-line line)
-    (recenter)))
-
-(defun emms-pbi-export-playlist (file)
-  (interactive "Fsave playlist:")
-  (let ((buffer (find-file-noselect file t)))
-    (set-buffer buffer)
-    (prin1 emms-playlist buffer)
-    (save-buffer)
-    (kill-buffer buffer)))
-
-(defun emms-pbi-open-playlist (file)
-  (interactive "fOpen playlist:")
-  (let ((buffer (find-file-noselect file)))
-    (set-buffer buffer)
-    (beginning-of-buffer)
-    (emms-playlist-set-playlist (read buffer))
-    (kill-buffer buffer)))
-
-(provide 'emms-pbi)
-;;; emms-pbi.el ends here
rmfile ./emms-pbi.el
}

Context:

[emms-streams.el (emms-stream-default-list): Add "Voices from Within"
address@hidden 
[All stable extentions documented
address@hidden 
[emms-player-mpd.el (emms-info-mpd): Prevent an error when we can't connect to 
a MusicPD instance.  This prevents EMMS from causing Emacs to stop reading 
initialization settings.
Michael Olson <address@hidden>**20060326230003] 
[Added MusicPD to the Emms manual.
address@hidden 
[Added `emms-playlist-sort' to the Emms manual.
address@hidden 
[re-organization of emms-setup levels
address@hidden 
[emms-player-mpd: Make importing of MusicPD playlist a bit less error-prone.
Michael Olson <address@hidden>**20060323135109] 
[emms-player-mpd: Make pausing work after importing a playlist from MusicPD.
Michael Olson <address@hidden>**20060320071337] 
[emms-player-mpd: Try to get values for name and port from environment.  Fix 
awkwardness in `emms-player-mpd-block'.
Michael Olson <address@hidden>**20060320065153] 
[emms-player-mpd: Implement importing the current MusicPD playlist into EMMS 
and fix a couple of bugs.
Michael Olson <address@hidden>**20060320061455] 
[finished updating copyrights
address@hidden 
[fixed copyright years and copyright holder
address@hidden 
[emms-source-file: Yes, playlist does work. (Removed comment)
address@hidden 
[emms-player-simple.el (alsaplayer): Fixed regexp.
address@hidden 
[emms-player-simple.el: Added alsaplayer support. Thanks to indio on #emacs.
address@hidden 
[emms-player-mpd: Do a seek when the song has changed in case several seconds 
have elapsed between detection and song change.
Michael Olson <address@hidden>**20060302032315] 
[playlist mode yank bug fix
address@hidden 
[update README file
address@hidden 
[Pass correct parameter to `run-at-time', to make sure only one timer is
address@hidden
 running.
] 
[add two macros, one to emms.el and the other to emms-playlist-mode.el. The 
former fixes a bug in which the software attempts to access a completely 
narrowed buffer and the latter because it looks nicer.
address@hidden 
[emms-player-mpd: Detect when the server has stopped, and call 
emms-player-stopped.
Michael Olson <address@hidden>**20060107081052] 
[emms-player-mpd: Implement blocking so that code in timers doesn't conflict.
Michael Olson <address@hidden>**20060107064358] 
[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] 
[Use emms-replace-regexp-in-string.
Michael Olson <address@hidden>**20060106032400] 
[emms-player-mpd: Escape specials in filenames like the other MPD clients do.
Michael Olson <address@hidden>**20060106032121] 
[emms-stream-info: Use emms-replace-regexp-in-string.
Michael Olson <address@hidden>**20060106032048] 
[New XEmacs compatibility function: emms-replace-regexp-in-string
Michael Olson <address@hidden>**20060105172144] 
[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:
7baa17de0b0b0f4c4c6cfdd64ccf21c61f67513d

reply via email to

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