123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- /*
- * 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 Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1, 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser 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>
- #include "libspeechd_version.h"
- #include "speechd_types.h"
- /* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* *INDENT-ON* */
- /* Speech Dispatcher's default port for inet communication */
- #define SPEECHD_DEFAULT_PORT 6560
- /* 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_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;
- void SPDConnectionAddress__free(SPDConnectionAddress * address);
- 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 --------------------------*/
- /* Opening 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);
- SPDVoiceType spd_get_voice_type(SPDConnection *);
- 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_get_voice_rate(SPDConnection * connection);
- 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_get_voice_pitch(SPDConnection * connection);
- 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_get_volume(SPDConnection * connection);
- 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);
- char *spd_get_language(SPDConnection * connection);
- 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);
- void free_spd_modules(char **);
- char *spd_get_output_module(SPDConnection * connection);
- char **spd_list_voices(SPDConnection * connection);
- SPDVoice **spd_list_synthesis_voices(SPDConnection * connection);
- void free_spd_voices(SPDVoice ** voices);
- 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);
- /* *INDENT-OFF* */
- #ifdef __cplusplus
- }
- #endif /* __cplusplus */
- /* *INDENT-ON* */
- #endif /* ifndef _LIBSPEECHD_H */
|