2008-12-17  Hynek Hanke  <hanke@mach>

	* Makefile.in: Create conf/desktop/ directory for
	installation.

2008-12-10  Hynek Hanke  <hanke@mach>

	* speechd_config/config.py (Tests.diagnostics.decide_to_test): Set port in
	~/.profile and place speechd.desktop in ~/.config/autostart

	* Makefile.in (all): Handle speechd.desktop.

2008-11-26  Hynek Hanke  <hanke@mach>

	* Makefile.in (maintainer-clean): Maintainer-clean does clean.

2008-10-15  Hynek Hanke  <hanke@mach>

	* Makefile.in: Respect ${DESTDIR}. 

2008-08-11  Hynek Hanke  <hanke@brailcom.org>

	* speechd_config/config.py (Tests.audio_try_play): Use proper os.path.join
	for constructing path to the testing wav file.

2008-07-31  Hynek Hanke  <hanke@brailcom.org>

	* speechd_config/config.py (Tests.diagnostics): Only try hearing
	test if Speech Dispatcher was started successfuly.
	(Tests.diagnostics.decide_to_test): Do not ask whether to
	start/restart but first try to stop and then subsequently
	start via /etc/init.d/ (this covers both cases).

2008-07-14  Hynek Hanke  <hanke@brailcom.org>

	* Makefile.in (clean): Delete speechd_config/paths.py
	(install): Include prefix correctly.
	(sysconfdir): Define sysconfdir.

2008-07-12  Hynek Hanke  <hanke@brailcom.org>

	* speechd_config/config.py (Tests.diagnostics.decide_to_test):
	AudioOutput method is the proper parameter name, not
	DefaultAudioOutput.

2008-07-11  Hynek Hanke  <hanke@brailcom.org>

	* speechd_config/config.py (Options.__init__): Added basic
	description into help message.

	* Makefile.in (all): Typo in directory paths.

	* speechd_config/config.py (Options.__init__): Include summary
	message into help.

2008-07-10  Hynek Hanke  <hanke@brailcom.org>

	* speechd_config/config.py (Options): Restructured.
	test_spd_say: New test.
	Handle SPEECHD_PORT correctly.
	(Tests.write_diagnostics_results): New method. 
	Use TMPDIR correctly.
	(Configuration.
	(Configure.speechd_start_system): Allow also restart.
	Bugfixes.

2008-07-09  Hynek Hanke  <hanke@brailcom.org>

	* speechd_config/config.py (Tests.diagnostics.decide_to_test):
	Also include configuration into debugging archive.

	* speechd_config/spd-conf: Do not call main() since it will
	be called automatically on import.

	* speechd_config/config.py: Typo.

	* Makefile.in (all): speechd_config/paths.py generation moved
	from install.

	* setup.py (speechd_config) New module.

	* Makefile.in (speechd_config): New module.
	Write necessary paths into speech_config/conf_path.py

2008-06-27  Hynek Hanke  <hanke@brailcom.org>

	* speechd/client.py (SSIPClient.set_debug): New method.
	(SSIPClient.set_debug_destination): New method.
	(SSIPClient.set_debug): New method.
	(SSIPClient.set_debug_destination): New method.

2008-02-19  Tomas Cerha  <cerha@brailcom.org>

	* README: New file.

	* speechd/client.py (SSIPClient.__init__): Docstring improved.

2008-02-04  Hynek Hanke  <hanke@mach>

	* Makefile.in: New file. Propagate $prefix correctly.

2008-01-29  Tomas Cerha  <cerha@brailcom.org>

	* speechd/client.py (SSIPClient.__init__): Use the environment
	variable `SPEECHD_HOST' if defined.

2007-11-25  Tomas Cerha  <cerha@brailcom.org>

	* speechd/client.py: Handle TypeError while SPEECHD_PORT value
	conversion.

2007-11-22  Tomas Cerha  <cerha@brailcom.org>

	* speechd/client.py (SSIPClient.__init__): Use the environment
	variable `SPEECHD_PORT' if defined.

2007-07-11  Tomas Cerha  <cerha@brailcom.org>

	* speechd/client.py (SSIPClient.list_synthesis_voices.split):
	Convert empty strings to `None'.  Docstring improved.

2007-07-10  Tomas Cerha  <cerha@brailcom.org>

	* speechd/_test.py (AutomaticTest.test_callbacks): Test also the
	`END' callback, which doesn't currently work with Flite.

2007-07-04  Tomas Cerha  <cerha@brailcom.org>

	* speechd/client.py (SSIPClient.resume, SSIPClient.pause): Send
	the right SSIP commands.

2007-07-03  Tomas Cerha  <cerha@brailcom.org>

	* speechd/client.py (_SSIP_Connection._recv_response): Raise
	exception if the communication thread is not alive.

2007-07-02  Tomas Cerha  <cerha@brailcom.org>

	* speechd/client.py (SSIPCommunicationError): New class.
	(_SSIP_Connection._recv_response): Quit if the communication
	thread is not alive.
	(_SSIP_Connection.send_command, _SSIP_Connection.send_data): Raise
	`SSIPCommunicationError' on socket error.

2007-07-02  Hynek Hanke  <hanke@syrr.buchal.name>

	* speechd/_test.py: Voice list test uncommented.

2007-06-26  Tomas Cerha  <cerha@brailcom.org>

	* speechd/_test.py (VoiceTest.test_lists): New test.

	* speechd/client.py (SSIPClient.list_output_modules)
	(SSIPClient.list_synthesis_voices, SSIPClient.set_output_module)
	(SSIPClient.set_synthesis_voice): New methods.

2007-05-03  Hynek Hanke  <hanke@brailcom.org>

	* Makefile (clean): Remove build.

2007-02-21  Tomas Cerha  <cerha@brailcom.org>

	* speechd/_test.py (AutomaticTest.test_callbacks): Added warning.

2007-02-17  Hynek Hanke  <hanke@brailcom.org>

	* speechd/_test.py (AutomaticTest.test_callbacks): Removed comment
	about Scope.SELF not working.
	Added TODO comment about fixing this test.

2007-02-05  Tomas Cerha  <cerha@brailcom.org>

	* speechd/client.py (_SSIP_Connection.__init__): Thread name
	changed.
	(SSIPClient.__init__): Allocate lock.
	(SSIPClient._callback_handler): Lock before accessing
	`self._callbacks'.
	(SSIPClient.speak): Added more doc.  Lock before accessing
	`self._callbacks'.

2007-01-29  Tomas Cerha  <cerha@brailcom.org>

	* speechd/client.py (SSIPClient._callback_handler)
	(SSIPClient.speak): Removed prints.

	* speechd/_test.py (SSIPClientTest.check_callbacks): Wait for
	callbacks after canceling messages.
	(TestSuite): Class removed.
	(tests): Instance removed.
	(SSIPClientTest): Class split into `AutomaticTest' and `VoiceTest'.
	(_SSIPClientTest, AutomaticTest, VoiceTest): New classes.
	(SpeakerTest): Class removed.
	(get_tests): Function removed.

2007-01-26  Tomas Cerha  <cerha@brailcom.org>

	* speechd/_test.py (SSIPClientTest.check_callbacks): New test.
	(SSIPClientTest.check_notification): Temporarily commented out.

	* speechd/client.py
	(_SSIP_Connection._CALLBACK_TYPE_MAP): New constant.
	(_SSIP_Connection.__init__): Initialize `self._callback' instead
	of `self._callbacks'.
	(_SSIP_Connection._communication): Docstring reformatted.  The
	whole event dispatching rewritten to use `_CALLBACK_TYPE_MAP' and
	use a single callback function.
	(_SSIP_Connection.send_command): Docstring typo fixed.
	(_SSIP_Connection.send_data): Docstring typo fixed.
	(_SSIP_Connection.send_data): Return also server response data.
	(_SSIP_Connection.set_callback): Argument `events' removed.
	Docstring updated and extended.
	(SSIPClient.__init__): Find out and store the client id.  Register
	callback and turn on notifications for all supported event types.
	(SSIPClient._callback_handler): New method.
	(SSIPClient.speak): New keyword arguments `callback' and
	`event_types'.  Docstring extended.  Convert `text' to `utf-8' if
	it is a unicode instance.
	(SSIPClient.char): Convert `char' to `utf-8' if it is a unicode
	instance.
	(SSIPClient.set_notification): Method removed.
	(SSIPClient.close): Only operate on `self._conn' if it is defined.

2006-11-05  Hynek Hanke  <hanke@brailcom.org>

	* speechd/client.py: IMPORTANT: On initialization of the
	connection, new lateral thread is started to handle the
	communication. This thread is terminated when the connection is
	closed.
	(_SSIP_Connection._com_buffer): New attribute.
	(_SSIP_Connection._callbacks): New attribute.
	(_SSIP_Connection._ssip_reply_semaphore): New attribute.
	(_SSIP_Connection._communication_thread): New attribute.
	(_SSIP_Connection.send_command): 'or isinstance(args[0], int)'
	added back again. This is valid SSIP.
	(SSIPClient.set_notification): New public API function.

	* speechd/_test.py
	(SSIPClientTest.check_notification.my_callback): New test.

	* speechd/client.py (_SSIP_Connection.__init__): Start the
	self._communication method in a new thread.
	(_SSIP_Connection._recv_response): 1->True
	(_SSIP_Connection._recv_message): Renamed from _recv_response.
	(SSIPClient.__del__): New destructor.

2006-08-09  Hynek Hanke  <hanke@brailcom.org>

	* setup.py: Use /usr/bin/env instead of /usr/bin/python

	* Makefile (install): Install with correct prefix.

2006-07-13  Hynek Hanke  <hanke@brailcom.org>

	* Makefile: Only attempt to use distutils if python is installed.

2006-07-11  Hynek Hanke  <hanke@chopin>

	* speechd/client.py: Typos in docstrings.
	(Speaker): Docstring clarification.
	Method say() removed.

2006-07-11  Tomas Cerha  <cerha@brailcom.org>

	* speechd/_test.py: `Client' -> `SSIPClient'.
	(ClientTest): -> `SSIPClientTest'.
	(SSIPClientTest.check_escapes)
	(SSIPClientTest.check_voice_properties) 
	(SSIPClientTest.check_other_commands): `say' -> `speak'.
	(SpeakerTest): New test class.

	* speechd/client.py (Module): Docstring updated.
	(Client): Class renamed to `SSIPClient'.
	(SSIPClient): Docstring improved.
	(SSIPClient.__init__): Don't initialize `self._current_priority'.
	(SSIPClient.set_priority): Added docstring.  Always send the
	command.  Don't check `self._current_priority'.
	(SSIPClient.say): Method renamed to `speak'.
	(SSIPClient.speak, SSIPClient.char, SSIPClient.key)
	(SSIPClient.sound_icon): The arguent `priority' removed.  Don't
	set the priority here.
	(Speaker): New class.
	(Client): New class.

2006-07-10  Tomas Cerha  <cerha@brailcom.org>

	* speechd/_test.py: Import `speechd' not `client'.
	(Client): Renamed to `ClientTest'.
	(ClientTest._client): New method.
	(ClientTest.check_escapes, ClientTest.check_voice_properties) 
	(ClientTest.check_other_commands): New methods.
	(ClientTest.check_it): Method split into the above new methods.

	* speechd/client.py: Don't import `string'.
	(SSIPCommandError, SSIPDataError): Docstrings improved.
	(_SSIP_Connection.NEWLINE): Renamed to `_NEWLINE'.
	(_SSIP_Connection.END_OF_DATA_SINGLE): Renamed to
	`_END_OF_DATA_MARKER'.
	(_SSIP_Connection.END_OF_DATA_ESCAPED_SINGLE): Renamed to
	`_END_OF_DATA_MARKER_ESCAPED'.
	(_SSIP_Connection.END_OF_DATA_BEGIN)
	(_SSIP_Connection.END_OF_DATA_ESCAPED_BEGIN): Constants removed.
	(_SSIP_Connection.END_OF_DATA): Renamed to `_END_OF_DATA'.
	(_SSIP_Connection.END_OF_DATA_ESCAPED): Renamed to
	`_END_OF_DATA_ESCAPED'.
	(_SSIP_Connection._readline): Docstring improved.  `self.NEWLINE'
	-> `self._NEWLINE'.
	(_SSIP_Connection.send_command): `self.NEWLINE' ->
	`self._NEWLINE'.
	(_SSIP_Connection.send_data): Use new constant names.
	(Client.__init__): Initialize the `_priority' attribute to None.
	(Client._set_priority): Only set the priority if it is different
	than the last priority stored in the `_priority' attribute.  Set
	this attribute on change.
	(Client.char): Replace the space by `space' as required by SSIP.
	(Client.__init__): `self._priority' renamed to
	`self._current_priority'.
	(Client._set_priority): Renamed to `_set_priority'.
	(Client.set_priority): `self._priority' ->
	`self._current_priority'.
	(Client.char, Client.key, Client.sound_icon, Client.say):
	`self._set_priority' -> `self.set_priority'.
	(Client.pause): Improved docstring formatting.

	* speechd/util.py: File removed.

2006-06-28  Tomas Cerha  <cerha@brailcom.org>

	* speechd/client.py (SSIPCommandError)
	(_CommunicationError): Renamed to `SSIPError'.
	(CommandError): Renamed to `SSIPCommandError'.
	(SendDataError): Renamed to `SSIPDataError'.
	(_SSIP_Connection.send_command): Added an assertion on the 'scope'
	argument for certain commands.
	(_SSIP_Connection.send_command): `CommandError' ->
	`SSIPCommandError'.
	(_SSIP_Connection.send_data): `SendDataError' -> `SSIPDataError'.
	(Scope, Priority): New classes.
	(Client): Derive from `object'.  Some doc added.
	(Client.__init__): The `port' default value set to `None'.
	(Client.__set_priority): Renamed to `_set_priority()'.
	(Client._set_priority): Use the `Priority' constants for
	assertion.
	(__check_scope): Method removed.
	(Client.say, Client.char, Client.key, Client.sound_icon): Use
	`Priority' constants for default values.  `__set_priority()' ->
	`_set_priority()'.  Docstrings updated.
	(Client.char): Don't replace space by "space".
	(Client.cancel, Client.stop, Client.resume, Client.set_language)
	(Client.set_pitch, Client.set_rate, Client.set_volume)
	(Client.set_punctuation, Client.set_spelling)
	(Client.set_cap_let_recogn, Client.set_voice)
	(Client.set_pause_context): Use `Scope' constants for default
	values.  Don't call `__check_scope()'.  Docstrings updated.
	(Client.say): Only set the priority if it's not a 'MESSAGE'.
	(Client.set_rate, _SSIP_Connection.send_command): Use the `Scope'
	constants for assertions.
	(_SSIP_Connection.close): Unset the `_socket' attribute.
	(PunctuationMode): New class.
	(Client.__init__, Client._set_priority): Use the `Scope'
	constants.
	(Client.say): Don't set the priority if it is 'MESSAGE'.
	(Client.set_pitch, Client.set_rate, Client.set_volume)
	(Client.set_voice, Client.set_pause_context): Use `isinstance'
	instead of comparint types.
	(Client.set_punctuation): Use the 'PunctuationMode' constants for
	assertions.

2006-06-27  Tomas Cerha  <cerha@brailcom.org>

	* speechd/client.py (_SSIP_Connection.__init__): Initialize
	the `_buffer' attribute.
	(_SSIP_Connection._readline): Read data from the socket using a
	buffer, not character by character...
	(Client.__init__): Require the `name' argument.  Changed the
	default value of `user' to `unknown' and `component' to `default'.
	(Client.pause): Cosmetical change.

2003-11-20  Tomas Cerha  <cerha@freebsoft.org>

	* speechd/client.py (Client): Changed the port number.

	* speechd/_test.py (get_tests): Don't set the language.

2003-07-22  Tomas Cerha  <cerha@freebsoft.org>

	* speechd/_test.py (Client.check_it): Added tests for `set_rate()'
	and `set_pitch()' methods.
	(Client.check_it): Added test for Czech language.

	* speechd/client.py: `Speech Daemon' changed to `Speech
	Dispatcher'.
	(_SSIP_Connection): New Class.
	(Client.RECV_BUFFER_SIZE, Client.SSIP_NEWLINE)
	(Client._SSIP_END_OF_DATA, Client._SSIP_END_OF_DATA_ESCAPED):
	Constants removed.
	(_Socket): Class removed.
	(Client.__init__): Use `_SSIP_Conection' instead of plain socket.
	(Client._send_command, Client._send_data, Client._recv_response):
	Methods removed.
	(Client.close): Close `self._conn' instead of `self._socket'.
	(Client.say, Client.stop): Use `self._conn.send_command()' instead
	of `self._send_command()'.
	(Client.set_language): New method.
	(Client.set_pitch): New method.
	(Client.set_pitch): New method.
	(Client.get_client_list): Use `self._conn.send_command()' instead
	of `self._send_command()'.

2003-07-17  Tomas Cerha  <cerha@freebsoft.org>

	* speechd/_test.py (Client.check_it): Pass a new `user' argument
	to `Client' constructor.

	* speechd/client.py (Client.__init__._Socket): New class.
	(Client.__init__): Use `_Socket' instead of `socket.socket'.
	(Client._recv_response): Use `_Socket.readline()'.
	(module): The commented out C library code removed.
	(Client.say): Use new priority names.
	(Client.__init__): Arguments `client_name' and `connection_name'
	replaced by `user', `client' and `component'.  Send `self' in the
	'SET self CLIENT_NAME' command.

2003-03-30  Tomas Cerha  <cerha@brailcom.org>

	* speechd/client.py (Client.SPEECH_PORT): Updated docstring.
	(Client.RECV_BUFFER_SIZE, Client.SSIP_NEWLINE)
	(Client._SSIP_END_OF_DATA, Client._SSIP_END_OF_DATA_ESCAPED): New
	constants.
	(Client._send_command, Client._send_data, Client._recv_response):
	Use them.
	(Client._send_data, Client._recv_response): Rewritten, to handle
	multiline responses.  Return response data as third item of
	returned tuple.
	(Client.close): Don't send `BYE' command.
	(Client.say): Don't return server response (isolate client from
	those details). 
	(Client.get_client_list): New method.

2003-03-29  Tomas Cerha  <cerha@freebsoft.org>

	* speechd/client.py (SPEECH_PORT, RECV_BUFFER_SIZE): Moved to
	class `Client'.
	(Client): Documentation added.
	(Client.SPEECH_PORT, Client.RECV_BUFFER_SIZE): New constants.
	(Client.__init__): `SPEECH_PORT' -> `self.SPEECH_PORT'
	(Client._send_command): Cosmetic changes.
	(Client._send_data): Cosmetic changes.
	(Client._recv_response): Commant added. `RECV_BUFFER_SIZE' ->
	`self.RECV_BUFFER_SIZE'.
	(Client.close): Documentation added.
	(Client.stop): New keyword argument `all'.
	(Client.say): Documentation added.  Return the value of respose
	code and message.

2003-03-27  Tomas Cerha  <cerha@freebsoft.org>

	* speechd/client.py: Import `string' module.
	(SPEECH_PORT): Added docstring.
	(RECV_BUFFER_SIZE): New constant.
	(_CommunicationError): New class.
	(CommandError): New class.
	(SendDataError.data): New class.
	(Client.__init__): Make `client_name' and `conn_name' keyword
	args.
	(Client._send_command): Convert `args' to strings.  Handle server
	response.  Return resonse code and message.
	(Client._send_data): New method.
	(Client._recv_response): New method.
	(Client.close): Before closing socket send a `BYE' command.
	(Client.stop): New method.
	(Client.say): New method.

	* speechd/_test.py (Client.check_it): Test the `say()' method.

