File: speech-server

package info (click to toggle)
emacspeak 11.0-3
  • links: PTS
  • area: main
  • in suites: potato
  • size: 2,796 kB
  • ctags: 2,652
  • sloc: lisp: 25,857; sh: 856; makefile: 550; tcl: 474; perl: 266; cpp: 109
file content (92 lines) | stat: -rwxr-xr-x 2,701 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# $Id: speech-server,v 11.0 1999/11/29 16:58:57 raman Exp $
# Description:  Speech server
#Usage: tcl speech-server port device-specific-script
#Example: tcl speech-server 2222 dtk-exp
# Keywords: Emacspeak, Speech, TCL
# {{{ LCD Entry: 

# LCD Archive Entry:
# emacspeak| T. V. Raman |raman@cs.cornell.edu 
# A speech interface to Emacs |
# $Date: 1999/11/29 16:58:57 $ |
#  $Revision: 11.0 $ | 
# Location undetermined
#

# }}}
# {{{ Copyright:  

# Copyright (c) 1995, 1996, 1997, 1998, 1999  T. V. Raman, Adobe Systems
# Incorporated.
#All Rights Reserved
#
# This file is not part of GNU Emacs, but the same permissions apply.
#
# GNU Emacs is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# GNU Emacs is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Emacs; see the file COPYING.  If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

# }}}
# {{{Initialize and get ready

set port [lindex $argv 0]
#start up the server
set server [server_create -myport  $port -reuseaddr]
puts "Started speech server ..."
# and wait for a connection
set server_p 1
puts "Waiting for a connection on port $port ..."
#play program
if {[info exists env(EMACSPEAK_PLAY_PROGRAM)] } {
set play  $env(EMACSPEAK_PLAY_PROGRAM)
} else {
    set play "play"
}
set sound "train.au"
catch "exec $play $sound >& /dev/null &" errCode
set v [info tclversion]
if {[string match {7.5} $v]
    || [string match 7.6 $v]
    || [string match 7.7 $v]
    || [string match 7.8 $v]
    || [string match 7.9 $v]
    || [string match 8.0 $v]} {
    set handles [server_accept -nobuf  $server]
    #Now, connect the read and write handles to stdin and stdout
    dup $handles  stdout
    dup $handles stderr
    dup $handles stdin
} else {
    set handles [server_accept -twoids  $server]
    #Now, connect the read and write handles to stdin and stdout
    dup [lindex $handles 1] stdout
    dup [lindex $handles 1] stderr
    dup [lindex $handles 0] stdin
}

#no more connections
close $server
#cue incoming connection
catch "exec $play $sound >& /dev/null &" errCode
#launch speech synthesizer code
source [lindex $argv 1]
# }}}
# {{{ Emacs local variables  

### Local variables:
### major-mode: tcl-mode 
### voice-lock-mode: t
### folded-file: t
### End:

# }}}