X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fsound.el;h=46e277c2dd32d07e67fcfef7cec74d7eab35f55a;hb=d3c5cd1b305a4b61e27abfc5a43d0d9f711eab8b;hp=2857165bbc7e69f9da736df86a01926bcc1a6ac0;hpb=98a6e4055a1fa624c592ac06f79287d55196ca37;p=chise%2Fxemacs-chise.git.1 diff --git a/lisp/sound.el b/lisp/sound.el index 2857165..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