Mercurial > emacs
annotate lisp/gnus/gnus-audio.el @ 38588:08a4c6c00af0
(init_from_display_pos): If POS is in an overlay string,
deal with the first overlay string having an image `display'
property.
(try_window_reusing_current_matrix, compute_line_metrics): Fix
computation of row's visible height for the case that part of the
row is invisible above and part of the row is at the same time
invisible below the window.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Fri, 27 Jul 2001 15:29:16 +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 |