X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fsound.el;h=46e277c2dd32d07e67fcfef7cec74d7eab35f55a;hb=5d4fa9d3dabf983244e61796f3a44ae18b1a0aa2;hp=e63c0e91094caadf27d46ef8225218802e11b66f;hpb=976b002b16336930724ae22476014583ad022e7d;p=chise%2Fxemacs-chise.git.1 diff --git a/lisp/sound.el b/lisp/sound.el index e63c0e9..46e277c 100644 --- a/lisp/sound.el +++ b/lisp/sound.el @@ -106,16 +106,19 @@ ) ;; #### This should really be a list. --hniksic -(defcustom sound-extension-list (if (or (eq system-type 'cygwin32) - (eq system-type 'windows-nt)) - ".wav:" ".au:") +(defcustom sound-extension-list (cond ((or (eq system-type 'cygwin32) + (eq system-type 'windows-nt)) + ".wav:") + ((eq system-type 'linux) + ".wav:.au:") + (t + ".au:")) "Filename extensions to complete sound file name with. If more than one extension is used, they should be separated by \":\". " :group 'sound :type 'string) (defcustom default-sound-directory-list (locate-data-directory-list "sounds") - "List of directories which to search for sound files" :group 'sound :type '(repeat directory ) @@ -130,6 +133,11 @@ (defun load-sound-file (filename sound-name &optional volume) "Read in an audio-file and add it to the sound-alist. +FILENAME can either be absolute or relative, in which case the file will +be searched in the directories given by `default-sound-directory-list'. +When looking for the file, the extensions given by `sound-extension-list' are +also tried in the given order. + You can only play sound files if you are running on display 0 of the console of a machine with native sound support or running a NetAudio server and XEmacs has the necessary sound support compiled in. @@ -143,10 +151,18 @@ nVolume (0 for default): ") (error "sound-name not a symbol")) (unless (or (null volume) (integerp volume)) (error "volume not an integer or nil")) - (let (buf - data - (file (locate-file filename default-sound-directory-list - sound-extension-list))) + (let ((file (if (file-name-absolute-p filename) + ;; For absolute file names, we don't have on choice on the + ;; location, but sound extensions however can still be tried + (setq file (locate-file filename + (list (file-name-directory filename)) + (split-string sound-extension-list + ":"))) + (setq file (locate-file filename + default-sound-directory-list + (split-string sound-extension-list + ":"))))) + buf data) (unless file (error "Couldn't load sound file %s" filename)) (unwind-protect @@ -163,12 +179,11 @@ nVolume (0 for default): ") ;; some conses in sound-alist might have been dumped with emacs. (if old (setq sound-alist (delq old (copy-sequence sound-alist))))) (setq sound-alist (cons - (purecopy - (nconc (list sound-name) - (if (and volume (not (eq 0 volume))) - (list ':volume volume)) - (list ':sound data))) - sound-alist))) + (nconc (list sound-name) + (if (and volume (not (eq 0 volume))) + (list ':volume volume)) + (list ':sound data)) + sound-alist))) sound-name) ;;;###autoload