#!/usr/bin/tclsh
# $Id$
# Description:  Speech server
#Usage: tcl speech-server port device-specific-script
#Example: tclsh 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$ |
#  $Revision$ | 
# Location undetermined
#

#}}}
#{{{ Copyright:  
#Copyright (C) 1995 -- 2017, T. V. Raman 
# 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
package require Tclx
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 ..."
# No longer support TCL older than 7.5
    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

#no more connections
close $server
#cue incoming connection
#launch speech synthesizer code
source [lindex $argv 1]
#}}}
#{{{ Emacs local variables  

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

#}}}
