1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-24 07:20:37 +00:00

Don't require cl.

(gnus-audio): New custom group.
(gnus-audio-inline-sound): Change to work with Emacs.
(gnus-audio-directory, gnus-audio-directory)
(gnus-audio-au-player):  Customize.
(gnus-audio-play): Try external player if play-sound-file fails.
Use file-name-extension, not string-match.
This commit is contained in:
Dave Love 2000-10-06 14:35:27 +00:00
parent 4c19fbcea3
commit 50e488b16b
2 changed files with 60 additions and 32 deletions

View File

@ -1,3 +1,13 @@
2000-10-06 Dave Love <fx@gnu.org>
* gnus-audio.el: Don't require cl.
(gnus-audio): New custom group.
(gnus-audio-inline-sound): Change to work with Emacs.
(gnus-audio-directory, gnus-audio-directory)
(gnus-audio-au-player): Customize.
(gnus-audio-play): Try external player if play-sound-file fails.
Use file-name-extension, not string-match.
2000-10-05 Dave Love <fx@gnu.org>
* rfc1843.el: Require cl when compiling.

View File

@ -1,7 +1,8 @@
;;; gnus-audio.el --- Sound effects for Gnus
;; Copyright (C) 1996 Free Software Foundation
;; Copyright (C) 1996, 2000 Free Software Foundation
;; Author: Steven L. Baur <steve@miranova.com>
;; Keywords: news, mail, multimedia
;; This file is part of GNU Emacs.
@ -21,30 +22,40 @@
;; Boston, MA 02111-1307, USA.
;;; Commentary:
;; This file provides access to sound effects in Gnus.
;; Prerelease: This file is partially stripped to support earcons.el
;; You can safely ignore most of it until Red Gnus. **Evil Laugh**
;; This file is partially stripped to support earcons.el.
;;; Code:
(when (null (boundp 'running-xemacs))
(defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version)))
(require 'nnheader)
(eval-when-compile (require 'cl))
(defgroup gnus-audio nil
"Playing sound in Gnus."
:version "21.1"
:group 'gnus-visual
:group 'multimedia)
(defvar gnus-audio-inline-sound
(and (fboundp 'device-sound-enabled-p)
(device-sound-enabled-p))
"When t, we will not spawn a subprocess to play sounds.")
(or (if (fboundp 'device-sound-enabled-p)
(device-sound-enabled-p)) ; XEmacs
(fboundp 'play-sound)) ; Emacs 21
"Non-nil means try to play sounds without using an external program.")
(defvar gnus-audio-directory (nnheader-find-etc-directory "sounds")
"The directory containing the Sound Files.")
(defcustom gnus-audio-directory (nnheader-find-etc-directory "sounds")
"The directory containing the Sound Files."
:type 'directory
:group 'gnus-audio)
(defvar gnus-audio-au-player "/usr/bin/showaudio"
"Executable program for playing sun AU format sound files.")
(defcustom gnus-audio-au-player "/usr/bin/showaudio"
"Executable program for playing sun AU format sound files."
:group 'gnus-audio
:type 'string)
(defvar gnus-audio-wav-player "/usr/local/bin/play"
"Executable program for playing WAV files.")
(defcustom gnus-audio-wav-player "/usr/local/bin/play"
"Executable program for playing WAV files."
:group 'gnus-audio
:type 'string)
;;; The following isn't implemented yet. Wait for Millennium Gnus.
;;(defvar gnus-audio-effects-enabled t
@ -81,26 +92,33 @@
;;;###autoload
(defun gnus-audio-play (file)
"Play a sound through the speaker."
"Play a sound FILE through the speaker."
(interactive)
(let ((sound-file (if (file-exists-p file)
file
(concat gnus-audio-directory file))))
(expand-file-name file gnus-audio-directory))))
(when (file-exists-p sound-file)
(if gnus-audio-inline-sound
(play-sound-file sound-file)
(cond ((string-match "\\.wav$" sound-file)
(call-process gnus-audio-wav-player
sound-file
0
nil
sound-file))
((string-match "\\.au$" sound-file)
(call-process gnus-audio-au-player
sound-file
0
nil
sound-file)))))))
(cond ((and gnus-audio-inline-sound
(condition-case nil
;; Even if we have audio, we may fail with the
;; wrong sort of sound file.
(progn (play-sound-file sound-file)
t)
(error nil))))
;; If we don't have built-in sound, or playing it failed,
;; try with external program.
((equal "wav" (file-name-extension sound-file))
(call-process gnus-audio-wav-player
sound-file
0
nil
sound-file))
((equal "au" (file-name-extension sound-file))
(call-process gnus-audio-au-player
sound-file
0
nil
sound-file))))))
;;; The following isn't implemented yet, wait for Red Gnus