emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/erc/erc-sound.el,v


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/lisp/erc/erc-sound.el,v
Date: Mon, 20 Nov 2006 06:50:31 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Miles Bader <miles>     06/11/20 06:50:29

Index: lisp/erc/erc-sound.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/erc/erc-sound.el,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- lisp/erc/erc-sound.el       12 Feb 2006 20:25:00 -0000      1.2
+++ lisp/erc/erc-sound.el       20 Nov 2006 06:50:29 -0000      1.3
@@ -21,9 +21,26 @@
 
 ;;; Commentary:
 
-;; This used to be in erc.el, I (Jorgen) just extracted it from there
-;; and put it in this file.  Bugs and features are those of the
-;; original author.
+;; Play sounds when users send you CTCP SOUND messages.
+
+;; This file also defines the command /sound so that you can send
+;; sound requests to other users.
+
+;;; Usage:
+
+;; Add the following to your .emacs if you want to play sounds.
+;;
+;; (require 'erc-soud)
+;; (erc-sound-enable)
+;;
+;; To send requests to other users from within query buffers, type the
+;; following:
+;;
+;; /sound filename optional-message-text
+;;
+;; You can also type the following:
+;;
+;; /ctcp nickname sound filename optional-message
 
 ;;; Code:
 
@@ -34,9 +51,11 @@
   "In ERC sound mode, the client will respond to CTCP SOUND requests
 and play sound files as requested."
   ;; Enable:
-  ((define-key erc-mode-map "\C-c\C-s" 'erc-toggle-sound))
+  ((add-hook 'erc-ctcp-query-SOUND-hook 'erc-ctcp-query-SOUND)
+   (define-key erc-mode-map "\C-c\C-s" 'erc-toggle-sound))
   ;; Disable:
-  ((define-key erc-mode-map "\C-c\C-s" 'undefined)))
+  ((remove-hook 'erc-ctcp-query-SOUND-hook 'erc-ctcp-query-SOUND)
+   (define-key erc-mode-map "\C-c\C-s" 'undefined)))
 
 (erc-define-catalog-entry 'english 'CTCP-SOUND "%n (address@hidden) plays 
%s:%m")
 
@@ -45,7 +64,7 @@
   :group 'erc)
 
 (defcustom erc-play-sound t
-  "*Play sound on SOUND ctcp requests (used in ICQ chat)."
+  "*Play sounds when you receive CTCP SOUND requests."
   :group 'erc-sound
   :type 'boolean)
 
@@ -55,18 +74,22 @@
   :type '(repeat directory))
 
 (defcustom erc-default-sound nil
-  "Play this sound if the requested file was not found."
+  "Play this sound if the requested file was not found.
+If this is set to nil or the file doesn't exist a beep will sound."
   :group 'erc-sound
   :type '(choice (const nil)
                 file))
 
-(defcustom erc-play-command "play"
-  "Command for playing sound samples."
-  :group 'erc-sound
-  :type 'string)
+(defvar erc-ctcp-query-SOUND-hook nil
+  "Hook to run after receiving a CTCP SOUND request.")
 
 (defun erc-cmd-SOUND (line &optional force)
-  "Play the sound given in LINE."
+  "Send a CTCP SOUND message to the default target.
+If `erc-play-sound' is non-nil, play the sound as well.
+
+/sound filename optional-message-text
+
+LINE is the text entered, including the command."
   (cond
    ((string-match "^\\s-*\\(\\S-+\\)\\(\\s-.*\\)?$" line)
     (let ((file (match-string 1 line))
@@ -84,8 +107,8 @@
       t))
    (t nil)))
 
-(defvar erc-ctcp-query-SOUND-hook '(erc-ctcp-query-SOUND))
 (defun erc-ctcp-query-SOUND (proc nick login host to msg)
+  "Display a CTCP SOUND message and play sound if `erc-play-sound' is non-nil."
   (when (string-match 
"^SOUND\\s-+\\(\\S-+\\)\\(\\(\\s-+.*\\)\\|\\(\\s-*\\)\\)$" msg)
     (let ((sound (match-string 1 msg))
          (comment (match-string 2 msg)))
@@ -96,42 +119,16 @@
   nil)
 
 (defun erc-play-sound (file)
-  "Plays a sound file located in one of the directories in `erc-sound-path'
-with a command `erc-play-command'."
+  "Play a sound file located in one of the directories in `erc-sound-path'.
+See also `play-sound-file'."
   (let ((filepath (erc-find-file file erc-sound-path)))
     (if (and (not filepath) erc-default-sound)
        (setq filepath erc-default-sound))
     (cond ((and filepath (file-exists-p filepath))
-          (if (and (fboundp 'device-sound-enabled-p)
-                   (device-sound-enabled-p))
-              ; For XEmacs
-              (play-sound-file filepath)
-;           (start-process "erc-sound" nil erc-play-command filepath)
-            (start-process "erc-sound" nil "/bin/tcsh"  "-c"
-                           (concat erc-play-command " " filepath))))
+           (play-sound-file filepath))
          (t (beep)))
     (erc-log (format "Playing sound file %S" filepath))))
 
-;(defun erc-play-sound (file)
-;  "Plays a sound file located in one of the directories in `erc-sound-path'
-;   with a command `erc-play-command'."
-;  (let ((filepath nil)
-;      (paths erc-sound-path))
-;    (while (and paths
-;              (progn (setq filepath (expand-file-name file (car paths)))
-;                     (not (file-exists-p filepath))))
-;      (setq paths (cdr paths)))
-;    (if (and (not (and filepath (file-exists-p filepath)))
-;           erc-default-sound)
-;      (setq filepath erc-default-sound))
-;    (cond ((and filepath (file-exists-p filepath))
-;;        (start-process "erc-sound" nil erc-play-command filepath)
-;         (start-process "erc-sound" nil "/bin/tcsh"  "-c"
-;                        (concat erc-play-command " " filepath))
-;         )
-;        (t (beep)))
-;    (erc-log (format "Playing sound file %S" filepath))))
-
 (defun erc-toggle-sound (&optional arg)
   "Toggles playing sounds on and off.  With positive argument,
   turns them on.  With any other argument turns sounds off."




reply via email to

[Prev in Thread] Current Thread [Next in Thread]