File: speech-server

package info (click to toggle)
emacspeak 7.0-4
  • links: PTS
  • area: main
  • in suites: hamm
  • size: 1,980 kB
  • ctags: 1,977
  • sloc: lisp: 19,030; perl: 548; makefile: 525; sh: 419
file content (87 lines) | stat: -rwxr-xr-x 2,565 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
# $Id: speech-server,v 7.6 1998/02/21 00:23:49 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@adobe.com 
# A speech interface to Emacs |
# $Date: 1998/02/21 00:23:49 $ |
#  $Revision: 7.6 $ | 
# Location undetermined
#

# }}}
# {{{ Copyright:  

# Copyright (c) 1995, 1996, 1997 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
if {[string match 7.5 [info tclversion]]
|| [string match 8.0 [info tclversion]]} {
    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:

# }}}