Mercurial > emacs
annotate lisp/gnus/gnus-audio.el @ 42811:cf0c0ef57504
*** empty log message ***
| author | Jason Rumney <jasonr@gnu.org> |
|---|---|
| date | Thu, 17 Jan 2002 19:29:24 +0000 |
| parents | a26d9b55abb6 |
| children | 695cf19ef79e d7ddb3e565de |
| rev | line source |
|---|---|
|
38413
a26d9b55abb6
Some fixes to follow coding conventions in files from Gnus.
Pavel Jan?k <Pavel@Janik.cz>
parents:
34327
diff
changeset
|
1 ;;; gnus-audio.el --- sound effects for Gnus |
| 32214 | 2 ;; Copyright (C) 1996, 2000 Free Software Foundation |
| 17493 | 3 |
| 4 ;; Author: Steven L. Baur <steve@miranova.com> | |
| 32214 | 5 ;; Keywords: news, mail, multimedia |
| 17493 | 6 |
| 7 ;; This file is part of GNU Emacs. | |
| 8 | |
| 9 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
| 10 ;; it under the terms of the GNU General Public License as published by | |
| 11 ;; the Free Software Foundation; either version 2, or (at your option) | |
| 12 ;; any later version. | |
| 13 | |
| 14 ;; GNU Emacs is distributed in the hope that it will be useful, | |
| 15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 17 ;; GNU General Public License for more details. | |
| 18 | |
| 19 ;; You should have received a copy of the GNU General Public License | |
| 20 ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
| 21 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
| 22 ;; Boston, MA 02111-1307, USA. | |
| 23 | |
| 24 ;;; Commentary: | |
| 32214 | 25 |
| 17493 | 26 ;; This file provides access to sound effects in Gnus. |
| 32214 | 27 ;; This file is partially stripped to support earcons.el. |
| 28 | |
| 17493 | 29 ;;; Code: |
| 30 | |
| 32214 | 31 (require 'nnheader) |
| 17493 | 32 |
| 32214 | 33 (defgroup gnus-audio nil |
| 34 "Playing sound in Gnus." | |
| 35 :version "21.1" | |
| 36 :group 'gnus-visual | |
| 37 :group 'multimedia) | |
| 17493 | 38 |
| 39 (defvar gnus-audio-inline-sound | |
| 32214 | 40 (or (if (fboundp 'device-sound-enabled-p) |
| 41 (device-sound-enabled-p)) ; XEmacs | |
| 42 (fboundp 'play-sound)) ; Emacs 21 | |
| 43 "Non-nil means try to play sounds without using an external program.") | |
| 44 | |
| 45 (defcustom gnus-audio-directory (nnheader-find-etc-directory "sounds") | |
| 46 "The directory containing the Sound Files." | |
|
34327
51fb7a49a44b
(gnus-audio-directory): Fix :type.
Dave Love <fx@gnu.org>
parents:
32214
diff
changeset
|
47 :type '(choice directory (const nil)) |
| 32214 | 48 :group 'gnus-audio) |
| 17493 | 49 |
| 32214 | 50 (defcustom gnus-audio-au-player "/usr/bin/showaudio" |
| 51 "Executable program for playing sun AU format sound files." | |
| 52 :group 'gnus-audio | |
| 53 :type 'string) | |
| 17493 | 54 |
| 32214 | 55 (defcustom gnus-audio-wav-player "/usr/local/bin/play" |
| 56 "Executable program for playing WAV files." | |
| 57 :group 'gnus-audio | |
| 58 :type 'string) | |
| 17493 | 59 |
|
24357
15fc6acbae7a
Upgrading to Gnus 5.7; see ChangeLog
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
17493
diff
changeset
|
60 ;;; The following isn't implemented yet. Wait for Millennium Gnus. |
|
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
61 ;;(defvar gnus-audio-effects-enabled t |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
62 ;; "When t, Gnus will use sound effects.") |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
63 ;;(defvar gnus-audio-enable-hooks nil |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
64 ;; "Functions run when enabling sound effects.") |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
65 ;;(defvar gnus-audio-disable-hooks nil |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
66 ;; "Functions run when disabling sound effects.") |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
67 ;;(defvar gnus-audio-theme-song nil |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
68 ;; "Theme song for Gnus.") |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
69 ;;(defvar gnus-audio-enter-group nil |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
70 ;; "Sound effect played when selecting a group.") |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
71 ;;(defvar gnus-audio-exit-group nil |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
72 ;; "Sound effect played when exiting a group.") |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
73 ;;(defvar gnus-audio-score-group nil |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
74 ;; "Sound effect played when scoring a group.") |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
75 ;;(defvar gnus-audio-busy-sound nil |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
76 ;; "Sound effect played when going into a ... sequence.") |
| 17493 | 77 |
| 78 | |
| 79 ;;;###autoload | |
|
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
80 ;;(defun gnus-audio-enable-sound () |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
81 ;; "Enable Sound Effects for Gnus." |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
82 ;; (interactive) |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
83 ;; (setq gnus-audio-effects-enabled t) |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
84 ;; (gnus-run-hooks gnus-audio-enable-hooks)) |
| 17493 | 85 |
| 86 ;;;###autoload | |
| 87 ;(defun gnus-audio-disable-sound () | |
|
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
88 ;; "Disable Sound Effects for Gnus." |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
89 ;; (interactive) |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
90 ;; (setq gnus-audio-effects-enabled nil) |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
91 ;; (gnus-run-hooks gnus-audio-disable-hooks)) |
| 17493 | 92 |
| 93 ;;;###autoload | |
| 94 (defun gnus-audio-play (file) | |
| 32214 | 95 "Play a sound FILE through the speaker." |
| 17493 | 96 (interactive) |
| 97 (let ((sound-file (if (file-exists-p file) | |
| 98 file | |
| 32214 | 99 (expand-file-name file gnus-audio-directory)))) |
| 17493 | 100 (when (file-exists-p sound-file) |
| 32214 | 101 (cond ((and gnus-audio-inline-sound |
| 102 (condition-case nil | |
| 103 ;; Even if we have audio, we may fail with the | |
| 104 ;; wrong sort of sound file. | |
| 105 (progn (play-sound-file sound-file) | |
| 106 t) | |
| 107 (error nil)))) | |
| 108 ;; If we don't have built-in sound, or playing it failed, | |
| 109 ;; try with external program. | |
| 110 ((equal "wav" (file-name-extension sound-file)) | |
| 111 (call-process gnus-audio-wav-player | |
| 112 sound-file | |
| 113 0 | |
| 114 nil | |
| 115 sound-file)) | |
| 116 ((equal "au" (file-name-extension sound-file)) | |
| 117 (call-process gnus-audio-au-player | |
| 118 sound-file | |
| 119 0 | |
| 120 nil | |
| 121 sound-file)))))) | |
| 17493 | 122 |
| 123 | |
| 124 ;;; The following isn't implemented yet, wait for Red Gnus | |
|
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
125 ;;(defun gnus-audio-startrek-sounds () |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
126 ;; "Enable sounds from Star Trek the original series." |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
127 ;; (interactive) |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
128 ;; (setq gnus-audio-busy-sound "working.au") |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
129 ;; (setq gnus-audio-enter-group "bulkhead_door.au") |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
130 ;; (setq gnus-audio-exit-group "bulkhead_door.au") |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
131 ;; (setq gnus-audio-score-group "ST_laser.au") |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
132 ;; (setq gnus-audio-theme-song "startrek.au") |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
133 ;; (add-hook 'gnus-select-group-hook 'gnus-audio-startrek-select-group) |
|
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
134 ;; (add-hook 'gnus-exit-group-hook 'gnus-audio-startrek-exit-group)) |
| 17493 | 135 ;;;*** |
| 136 | |
| 137 (defvar gnus-startup-jingle "Tuxedomoon.Jingle4.au" | |
| 138 "Name of the Gnus startup jingle file.") | |
| 139 | |
| 140 (defun gnus-play-jingle () | |
| 141 "Play the Gnus startup jingle, unless that's inhibited." | |
| 142 (interactive) | |
| 143 (gnus-audio-play gnus-startup-jingle)) | |
| 144 | |
| 145 (provide 'gnus-audio) | |
| 146 | |
| 147 (run-hooks 'gnus-audio-load-hook) | |
| 148 | |
| 149 ;;; gnus-audio.el ends here |
