mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-24 10:38:38 +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:
parent
4c19fbcea3
commit
50e488b16b
@ -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.
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user