Index: third_party/speech-dispatcher/libspeechd.h |
diff --git a/third_party/speech-dispatcher/libspeechd.h b/third_party/speech-dispatcher/libspeechd.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..869254057a0eb890afa11afd1678fb97a4bbfd03 |
--- /dev/null |
+++ b/third_party/speech-dispatcher/libspeechd.h |
@@ -0,0 +1,276 @@ |
+ |
+/* |
+ * libspeechd.h - Shared library for easy acces to Speech Dispatcher functions (header) |
+ * |
+ * Copyright (C) 2001, 2002, 2003, 2004 Brailcom, o.p.s. |
+ * |
+ * This 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. |
+ * |
+ * This software 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 this package; see the file COPYING. If not, write to |
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
+ * Boston, MA 02110-1301, USA. |
+ * |
+ * $Id: libspeechd.h,v 1.29 2008-07-30 09:47:00 hanke Exp $ |
+ */ |
+ |
+#ifndef _LIBSPEECHD_H |
+#define _LIBSPEECHD_H |
+ |
+#include <stdio.h> |
+#include <stddef.h> |
+#include <pthread.h> |
+ |
+#ifdef __cplusplus |
+extern "C" { |
+#endif |
+ |
+#ifdef LIBSPEECHD_DEBUG |
+/* Debugging */ |
+FILE* spd_debug; |
+#endif |
+ |
+/* Unless there is an fatal error, it doesn't print anything */ |
+#define SPD_FATAL(msg) { printf("Fatal error (libspeechd) [%s:%d]:"msg, __FILE__, __LINE__); fflush(stdout); exit(EXIT_FAILURE); } |
+ |
+/* Arguments for spd_send_data() */ |
+#define SPD_WAIT_REPLY 1 /* Wait for reply */ |
+#define SPD_NO_REPLY 0 /* No reply requested */ |
+ |
+ |
+/* --------------------- Public data types ------------------------ */ |
+ |
+typedef enum{ |
+ SPD_PUNCT_ALL = 0, |
+ SPD_PUNCT_NONE = 1, |
+ SPD_PUNCT_SOME = 2 |
+}SPDPunctuation; |
+ |
+typedef enum{ |
+ SPD_CAP_NONE = 0, |
+ SPD_CAP_SPELL = 1, |
+ SPD_CAP_ICON = 2 |
+}SPDCapitalLetters; |
+ |
+typedef enum{ |
+ SPD_SPELL_OFF = 0, |
+ SPD_SPELL_ON = 1 |
+}SPDSpelling; |
+ |
+typedef enum{ |
+ SPD_DATA_TEXT = 0, |
+ SPD_DATA_SSML = 1 |
+}SPDDataMode; |
+ |
+typedef enum{ |
+ SPD_MALE1 = 1, |
+ SPD_MALE2 = 2, |
+ SPD_MALE3 = 3, |
+ SPD_FEMALE1 = 4, |
+ SPD_FEMALE2 = 5, |
+ SPD_FEMALE3 = 6, |
+ SPD_CHILD_MALE = 7, |
+ SPD_CHILD_FEMALE = 8 |
+}SPDVoiceType; |
+ |
+ |
+typedef struct{ |
+ char *name; /* Name of the voice (id) */ |
+ char *language; /* 2-letter ISO language code */ |
+ char *variant; /* a not-well defined string describing dialect etc. */ |
+}SPDVoice; |
+ |
+typedef enum{ |
+ SPD_BEGIN = 1, |
+ SPD_END = 2, |
+ SPD_INDEX_MARKS = 4, |
+ SPD_CANCEL = 8, |
+ SPD_PAUSE = 16, |
+ SPD_RESUME = 32 |
+}SPDNotification; |
+ |
+typedef enum{ |
+ SPD_IMPORTANT = 1, |
+ SPD_MESSAGE = 2, |
+ SPD_TEXT = 3, |
+ SPD_NOTIFICATION = 4, |
+ SPD_PROGRESS = 5 |
+}SPDPriority; |
+ |
+typedef enum{ |
+ SPD_EVENT_BEGIN, |
+ SPD_EVENT_END, |
+ SPD_EVENT_CANCEL, |
+ SPD_EVENT_PAUSE, |
+ SPD_EVENT_RESUME, |
+ SPD_EVENT_INDEX_MARK |
+}SPDNotificationType; |
+ |
+typedef enum{ |
+ SPD_MODE_SINGLE = 0, |
+ SPD_MODE_THREADED = 1 |
+}SPDConnectionMode; |
+ |
+typedef enum{ |
+ SPD_METHOD_UNIX_SOCKET = 0, |
+ SPD_METHOD_INET_SOCKET = 1, |
+}SPDConnectionMethod; |
+ |
+typedef struct{ |
+ SPDConnectionMethod method; |
+ char *unix_socket_name; |
+ char *inet_socket_host; |
+ int inet_socket_port; |
+ char *dbus_bus; |
+}SPDConnectionAddress; |
+ |
+typedef void (*SPDCallback)(size_t msg_id, size_t client_id, SPDNotificationType state); |
+typedef void (*SPDCallbackIM)(size_t msg_id, size_t client_id, SPDNotificationType state, char *index_mark); |
+ |
+typedef struct{ |
+ |
+ /* PUBLIC */ |
+ SPDCallback callback_begin; |
+ SPDCallback callback_end; |
+ SPDCallback callback_cancel; |
+ SPDCallback callback_pause; |
+ SPDCallback callback_resume; |
+ SPDCallbackIM callback_im; |
+ |
+ /* PRIVATE */ |
+ int socket; |
+ FILE *stream; |
+ SPDConnectionMode mode; |
+ |
+ pthread_mutex_t *ssip_mutex; |
+ |
+ pthread_t *events_thread; |
+ pthread_mutex_t *comm_mutex; |
+ pthread_cond_t *cond_reply_ready; |
+ pthread_mutex_t *mutex_reply_ready; |
+ pthread_cond_t *cond_reply_ack; |
+ pthread_mutex_t *mutex_reply_ack; |
+ |
+ char *reply; |
+ |
+}SPDConnection; |
+ |
+/* -------------- Public functions --------------------------*/ |
+ |
+/* Openning and closing Speech Dispatcher connection */ |
+SPDConnectionAddress* spd_get_default_address(char** error); |
+SPDConnection* spd_open(const char* client_name, const char* connection_name, const char* user_name, |
+ SPDConnectionMode mode); |
+SPDConnection* spd_open2(const char* client_name, const char* connection_name, const char* user_name, |
+ SPDConnectionMode mode, SPDConnectionAddress *address, int autospawn, |
+ char **error_result); |
+ |
+void spd_close(SPDConnection* connection); |
+ |
+/* Speaking */ |
+int spd_say(SPDConnection* connection, SPDPriority priority, const char* text); |
+int spd_sayf(SPDConnection* connection, SPDPriority priority, const char *format, ...); |
+ |
+/* Speech flow */ |
+int spd_stop(SPDConnection* connection); |
+int spd_stop_all(SPDConnection* connection); |
+int spd_stop_uid(SPDConnection* connection, int target_uid); |
+ |
+int spd_cancel(SPDConnection* connection); |
+int spd_cancel_all(SPDConnection* connection); |
+int spd_cancel_uid(SPDConnection* connection, int target_uid); |
+ |
+int spd_pause(SPDConnection* connection); |
+int spd_pause_all(SPDConnection* connection); |
+int spd_pause_uid(SPDConnection* connection, int target_uid); |
+ |
+int spd_resume(SPDConnection* connection); |
+int spd_resume_all(SPDConnection* connection); |
+int spd_resume_uid(SPDConnection* connection, int target_uid); |
+ |
+/* Characters and keys */ |
+int spd_key(SPDConnection* connection, SPDPriority priority, const char *key_name); |
+int spd_char(SPDConnection* connection, SPDPriority priority, const char *character); |
+int spd_wchar(SPDConnection* connection, SPDPriority priority, wchar_t wcharacter); |
+ |
+/* Sound icons */ |
+int spd_sound_icon(SPDConnection* connection, SPDPriority priority, const char *icon_name); |
+ |
+/* Setting parameters */ |
+int spd_set_voice_type(SPDConnection*, SPDVoiceType type); |
+int spd_set_voice_type_all(SPDConnection*, SPDVoiceType type); |
+int spd_set_voice_type_uid(SPDConnection*, SPDVoiceType type, unsigned int uid); |
+ |
+int spd_set_synthesis_voice(SPDConnection*, const char *voice_name); |
+int spd_set_synthesis_voice_all(SPDConnection*, const char *voice_name); |
+int spd_set_synthesis_voice_uid(SPDConnection*, const char *voice_name, unsigned int uid); |
+ |
+int spd_set_data_mode(SPDConnection *connection, SPDDataMode mode); |
+ |
+int spd_set_notification_on(SPDConnection* connection, SPDNotification notification); |
+int spd_set_notification_off(SPDConnection* connection, SPDNotification notification); |
+int spd_set_notification(SPDConnection* connection, SPDNotification notification, const char* state); |
+ |
+int spd_set_voice_rate(SPDConnection* connection, signed int rate); |
+int spd_set_voice_rate_all(SPDConnection* connection, signed int rate); |
+int spd_set_voice_rate_uid(SPDConnection* connection, signed int rate, unsigned int uid); |
+ |
+int spd_set_voice_pitch(SPDConnection* connection, signed int pitch); |
+int spd_set_voice_pitch_all(SPDConnection* connection, signed int pitch); |
+int spd_set_voice_pitch_uid(SPDConnection* connection, signed int pitch, unsigned int uid); |
+ |
+int spd_set_volume(SPDConnection* connection, signed int volume); |
+int spd_set_volume_all(SPDConnection* connection, signed int volume); |
+int spd_set_volume_uid(SPDConnection* connection, signed int volume, unsigned int uid); |
+ |
+int spd_set_punctuation(SPDConnection* connection, SPDPunctuation type); |
+int spd_set_punctuation_all(SPDConnection* connection, SPDPunctuation type); |
+int spd_set_punctuation_uid(SPDConnection* connection, SPDPunctuation type, unsigned int uid); |
+ |
+int spd_set_capital_letters(SPDConnection* connection, SPDCapitalLetters type); |
+int spd_set_capital_letters_all(SPDConnection* connection, SPDCapitalLetters type); |
+int spd_set_capital_letters_uid(SPDConnection* connection, SPDCapitalLetters type, unsigned int uid); |
+ |
+int spd_set_spelling(SPDConnection* connection, SPDSpelling type); |
+int spd_set_spelling_all(SPDConnection* connection, SPDSpelling type); |
+int spd_set_spelling_uid(SPDConnection* connection, SPDSpelling type, unsigned int uid); |
+ |
+int spd_set_language(SPDConnection* connection, const char* language); |
+int spd_set_language_all(SPDConnection* connection, const char* language); |
+int spd_set_language_uid(SPDConnection* connection, const char* language, unsigned int uid); |
+ |
+int spd_set_output_module(SPDConnection* connection, const char* output_module); |
+int spd_set_output_module_all(SPDConnection* connection, const char* output_module); |
+int spd_set_output_module_uid(SPDConnection* connection, const char* output_module, unsigned int uid); |
+ |
+int spd_get_client_list(SPDConnection *connection, char **client_names, int *client_ids, int* active); |
+int spd_get_message_list_fd(SPDConnection *connection, int target, int *msg_ids, char **client_names); |
+ |
+char** spd_list_modules(SPDConnection *connection); |
+char** spd_list_voices(SPDConnection *connection); |
+SPDVoice** spd_list_synthesis_voices(SPDConnection *connection); |
+char** spd_execute_command_with_list_reply(SPDConnection *connection, char* command); |
+ |
+ |
+/* Direct SSIP communication */ |
+int spd_execute_command(SPDConnection* connection, char* command); |
+int spd_execute_command_with_reply(SPDConnection *connection, char* command, char **reply); |
+int spd_execute_command_wo_mutex(SPDConnection *connection, char* command); |
+char* spd_send_data(SPDConnection* connection, const char *message, int wfr); |
+char* spd_send_data_wo_mutex(SPDConnection *connection, const char *message, int wfr); |
+ |
+ |
+ |
+#ifdef __cplusplus |
+} |
+#endif /* __cplusplus */ |
+ |
+#endif /* ifndef _LIBSPEECHD_H */ |