[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emms-patches] darcs patch: Remove emms-pbi*.el at forcer's request.,
Michael Olson <=