summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-accessibility/speech-dispatcher/files/speech-dispatcher-0.9.1-fno-common.patch')
-rw-r--r--app-accessibility/speech-dispatcher/files/speech-dispatcher-0.9.1-fno-common.patch466
1 files changed, 466 insertions, 0 deletions
diff --git a/app-accessibility/speech-dispatcher/files/speech-dispatcher-0.9.1-fno-common.patch b/app-accessibility/speech-dispatcher/files/speech-dispatcher-0.9.1-fno-common.patch
new file mode 100644
index 00000000000..0914566a8a3
--- /dev/null
+++ b/app-accessibility/speech-dispatcher/files/speech-dispatcher-0.9.1-fno-common.patch
@@ -0,0 +1,466 @@
+From f1c01ccc0ca3f82313ebff3f336d808acee225c8 Mon Sep 17 00:00:00 2001
+From: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date: Fri, 6 Dec 2019 10:27:39 +0100
+Subject: [PATCH] Fix global varibles definitions
+
+---
+ src/clients/say/options.c | 24 +++++++++++++++++++
+ src/clients/say/options.h | 42 ++++++++++++++++-----------------
+ src/modules/festival_client.c | 2 ++
+ src/modules/festival_client.h | 2 +-
+ src/modules/module_utils.c | 20 ++++++++++++++++
+ src/modules/module_utils.h | 24 +++++++++----------
+ src/server/compare.c | 1 +
+ src/server/compare.h | 4 ++--
+ src/server/configuration.c | 3 +++
+ src/server/configuration.h | 4 ++--
+ src/server/speaking.c | 10 ++++++++
+ src/server/speaking.h | 14 +++++------
+ src/server/speechd.c | 33 ++++++++++++++++++++++++++
+ src/server/speechd.h | 44 +++++++++++++++++------------------
+ 14 files changed, 160 insertions(+), 67 deletions(-)
+
+diff --git a/src/clients/say/options.c b/src/clients/say/options.c
+index f75ec7de..cb937d37 100644
+--- a/src/clients/say/options.c
++++ b/src/clients/say/options.c
+@@ -33,6 +33,30 @@
+ #include "options.h"
+ #include <i18n.h>
+
++signed int rate;
++signed int pitch;
++signed int pitch_range;
++signed int volume;
++
++int list_output_modules;
++char *output_module;
++char *sound_icon;
++char *language;
++char *voice_type;
++char *punctuation_mode;
++char *priority;
++int pipe_mode;
++SPDDataMode ssml_mode;
++int spelling;
++int wait_till_end;
++int stop_previous;
++int cancel_previous;
++int list_synthesis_voices;
++char *synthesis_voice;
++
++char *application_name;
++char *connection_name;
++
+ void options_print_help(char *argv[])
+ {
+ assert(argv);
+diff --git a/src/clients/say/options.h b/src/clients/say/options.h
+index 2fdd3b96..dede6dcc 100644
+--- a/src/clients/say/options.h
++++ b/src/clients/say/options.h
+@@ -22,29 +22,29 @@
+ #include <getopt.h>
+ #include "speechd_types.h"
+
+-signed int rate;
+-signed int pitch;
+-signed int pitch_range;
+-signed int volume;
++extern signed int rate;
++extern signed int pitch;
++extern signed int pitch_range;
++extern signed int volume;
+
+-int list_output_modules;
+-char *output_module;
+-char *sound_icon;
+-char *language;
+-char *voice_type;
+-char *punctuation_mode;
+-char *priority;
+-int pipe_mode;
+-SPDDataMode ssml_mode;
+-int spelling;
+-int wait_till_end;
+-int stop_previous;
+-int cancel_previous;
+-int list_synthesis_voices;
+-char *synthesis_voice;
++extern int list_output_modules;
++extern char *output_module;
++extern char *sound_icon;
++extern char *language;
++extern char *voice_type;
++extern char *punctuation_mode;
++extern char *priority;
++extern int pipe_mode;
++extern SPDDataMode ssml_mode;
++extern int spelling;
++extern int wait_till_end;
++extern int stop_previous;
++extern int cancel_previous;
++extern int list_synthesis_voices;
++extern char *synthesis_voice;
+
+-char *application_name;
+-char *connection_name;
++extern char *application_name;
++extern char *connection_name;
+
+ static struct option long_options[] = {
+ {"rate", 1, 0, 'r'},
+diff --git a/src/modules/festival_client.c b/src/modules/festival_client.c
+index bb15cb86..f8327d46 100644
+--- a/src/modules/festival_client.c
++++ b/src/modules/festival_client.c
+@@ -75,6 +75,8 @@
+ /* For testing endianness */
+ int fapi_endian_loc = 1;
+
++int festival_connection_crashed;
++
+ static char *socket_receive_file_to_buff(int fd, int *size);
+
+ /* --- MANAGING FT STRUCTURES --- */
+diff --git a/src/modules/festival_client.h b/src/modules/festival_client.h
+index 21acdda2..dfbaac15 100644
+--- a/src/modules/festival_client.h
++++ b/src/modules/festival_client.h
+@@ -44,7 +44,7 @@
+ #define FESTIVAL_DEFAULT_SERVER_PORT 1314
+ #define FESTIVAL_DEFAULT_TEXT_MODE "fundamental"
+
+-int festival_connection_crashed;
++extern int festival_connection_crashed;
+
+ typedef struct FT_Info {
+ int encoding;
+diff --git a/src/modules/module_utils.c b/src/modules/module_utils.c
+index 0a3d3308..99e71fcb 100644
+--- a/src/modules/module_utils.c
++++ b/src/modules/module_utils.c
+@@ -35,6 +35,26 @@ extern char *module_index_mark;
+
+ pthread_mutex_t module_stdout_mutex = PTHREAD_MUTEX_INITIALIZER;
+
++int log_level;
++
++AudioID *module_audio_id;
++
++SPDMsgSettings msg_settings;
++SPDMsgSettings msg_settings_old;
++
++int current_index_mark;
++
++int Debug;
++FILE *CustomDebugFile;
++
++configfile_t *configfile;
++configoption_t *module_dc_options;
++int module_num_dc_options;
++
++const char *module_name;
++
++char *module_index_mark;
++
+ char *do_message(SPDMessageType msgtype)
+ {
+ int ret;
+diff --git a/src/modules/module_utils.h b/src/modules/module_utils.h
+index 12382d3b..87c5f813 100644
+--- a/src/modules/module_utils.h
++++ b/src/modules/module_utils.h
+@@ -49,23 +49,23 @@ typedef struct SPDMarks {
+ gboolean stop;
+ } SPDMarks;
+
+-int log_level;
++extern int log_level;
+
+-AudioID *module_audio_id;
++extern AudioID *module_audio_id;
+
+-SPDMsgSettings msg_settings;
+-SPDMsgSettings msg_settings_old;
++extern SPDMsgSettings msg_settings;
++extern SPDMsgSettings msg_settings_old;
+
+-int current_index_mark;
++extern int current_index_mark;
+
+-int Debug;
+-FILE *CustomDebugFile;
++extern int Debug;
++extern FILE *CustomDebugFile;
+
+-configfile_t *configfile;
+-configoption_t *module_dc_options;
+-int module_num_dc_options;
++extern configfile_t *configfile;
++extern configoption_t *module_dc_options;
++extern int module_num_dc_options;
+
+-const char *module_name;
++extern const char *module_name;
+
+ #define CLEAN_OLD_SETTINGS_TABLE() do { \
+ msg_settings_old.rate = -101;\
+@@ -395,7 +395,7 @@ configoption_t *add_config_option(configoption_t * options,
+ #define INDEX_MARK_BODY_LEN 6
+ #define INDEX_MARK_BODY "__spd_"
+
+-char *module_index_mark;
++extern char *module_index_mark;
+
+ /* This macro must be placed at the initialization of the module so that the
+ later functions are possible to use */
+diff --git a/src/server/compare.c b/src/server/compare.c
+index aa08ed79..8d36c39d 100644
+--- a/src/server/compare.c
++++ b/src/server/compare.c
+@@ -29,6 +29,7 @@
+ #include "compare.h"
+
+ /* Pointer to compare_message_uid */
++gint(*p_msg_lc) ();
+ gint(*p_msg_uid_lc) () = compare_message_uid;
+
+ gint compare_message_uid(gconstpointer element, gconstpointer value, gpointer x)
+diff --git a/src/server/compare.h b/src/server/compare.h
+index f0c730c5..380c9ed2 100644
+--- a/src/server/compare.h
++++ b/src/server/compare.h
+@@ -27,7 +27,7 @@ gint compare_message_uid(gconstpointer element, gconstpointer value,
+ gpointer x);
+
+ /* Pointer to function compare_message_uid */
+-gint(*p_msg_lc) ();
+-gint(*p_msg_uid_lc) ();
++extern gint(*p_msg_lc) ();
++extern gint(*p_msg_uid_lc) ();
+
+ #endif /* COMPARE_H */
+diff --git a/src/server/configuration.c b/src/server/configuration.c
+index a21b60c9..ba145995 100644
+--- a/src/server/configuration.c
++++ b/src/server/configuration.c
+@@ -33,6 +33,9 @@
+ #include "symbols.h"
+ #include <fdsetconv.h>
+
++configoption_t *spd_options;
++int spd_num_options;
++
+ static TFDSetClientSpecific *cl_spec_section;
+
+ /* So that gcc doesn't comply about casts to char* */
+diff --git a/src/server/configuration.h b/src/server/configuration.h
+index 5850c63b..bd87a0d5 100644
+--- a/src/server/configuration.h
++++ b/src/server/configuration.h
+@@ -29,8 +29,8 @@
+ #define SPEECHD_DEFAULT_PORT 6560
+
+ /* Loading options from DotConf */
+-configoption_t *spd_options;
+-int spd_num_options;
++extern configoption_t *spd_options;
++extern int spd_num_options;
+
+ configoption_t *load_config_options(int *num_options);
+ void free_config_options(configoption_t * opts, int *num);
+diff --git a/src/server/speaking.c b/src/server/speaking.c
+index 2160c250..61463f3f 100644
+--- a/src/server/speaking.c
++++ b/src/server/speaking.c
+@@ -46,6 +46,16 @@ static SPDPriority highest_priority = 0;
+ int SPEAKING = 0;
+ int poll_count;
+
++OutputModule *speaking_module;
++int speaking_uid;
++int speaking_gid;
++
++/* Pause and resume handling */
++int pause_requested;
++int pause_requested_fd;
++int pause_requested_uid;
++int resume_requested;
++
+ /*
+ Speak() is responsible for getting right text from right
+ queue in right time and saying it loud through the corresponding
+diff --git a/src/server/speaking.h b/src/server/speaking.h
+index 690db600..48752dfa 100644
+--- a/src/server/speaking.h
++++ b/src/server/speaking.h
+@@ -26,15 +26,15 @@
+
+ #include <speechd_types.h>
+
+-OutputModule *speaking_module;
+-int speaking_uid;
+-int speaking_gid;
++extern OutputModule *speaking_module;
++extern int speaking_uid;
++extern int speaking_gid;
+
+ /* Pause and resume handling */
+-int pause_requested;
+-int pause_requested_fd;
+-int pause_requested_uid;
+-int resume_requested;
++extern int pause_requested;
++extern int pause_requested_fd;
++extern int pause_requested_uid;
++extern int resume_requested;
+
+ /* Speak() is responsible for getting right text from right
+ * queue in right time and saying it loud through corresponding
+diff --git a/src/server/speechd.c b/src/server/speechd.c
+index 8d3c1de4..6f6e51a5 100644
+--- a/src/server/speechd.c
++++ b/src/server/speechd.c
+@@ -65,6 +65,39 @@ gint server_timeout_source = 0;
+
+ int client_count = 0;
+
++struct SpeechdOptions SpeechdOptions;
++struct SpeechdStatus SpeechdStatus;
++
++pthread_t speak_thread;
++pthread_mutex_t logging_mutex;
++pthread_mutex_t element_free_mutex;
++pthread_mutex_t output_layer_mutex;
++pthread_mutex_t socket_com_mutex;
++
++GHashTable *fd_settings;
++GHashTable *language_default_modules;
++GHashTable *fd_uid;
++
++TSpeechDQueue *MessageQueue;
++GList *MessagePausedList;
++
++GList *client_specific_settings;
++
++GList *last_p5_block;
++
++TFDSetElement GlobalFDSet;
++
++int speaking_pipe[2];
++
++GHashTable *speechd_sockets_status;
++
++FILE *logfile;
++FILE *custom_logfile;
++char *custom_log_kind;
++FILE *debug_logfile;
++
++TSpeechDMode spd_mode;
++
+ static gboolean speechd_client_terminate(gpointer key, gpointer value, gpointer user);
+ static gboolean speechd_reload_dead_modules(gpointer user_data);
+ static gboolean speechd_load_configuration(gpointer user_data);
+diff --git a/src/server/speechd.h b/src/server/speechd.h
+index c0730b76..b23bbb69 100644
+--- a/src/server/speechd.h
++++ b/src/server/speechd.h
+@@ -123,7 +123,7 @@ typedef enum {
+ SPD_MODE_SINGLE /* */
+ } TSpeechDMode;
+
+-TSpeechDMode spd_mode;
++extern TSpeechDMode spd_mode;
+
+ /* TSpeechDQueue is a queue for messages. */
+ typedef struct {
+@@ -148,7 +148,7 @@ typedef struct {
+ #include "alloc.h"
+ #include "speaking.h"
+
+-struct {
++extern struct SpeechdOptions {
+ char *communication_method;
+ int communication_method_set;
+ char *socket_path;
+@@ -172,48 +172,48 @@ struct {
+ int server_timeout_set;
+ } SpeechdOptions;
+
+-struct {
++extern struct SpeechdStatus {
+ int max_uid; /* The largest assigned uid + 1 */
+ int max_gid; /* The largest assigned gid + 1 */
+ int max_fd;
+ } SpeechdStatus;
+
+ /* speak() thread defined in speaking.c */
+-pthread_t speak_thread;
+-pthread_mutex_t logging_mutex;
+-pthread_mutex_t element_free_mutex;
+-pthread_mutex_t output_layer_mutex;
+-pthread_mutex_t socket_com_mutex;
++extern pthread_t speak_thread;
++extern pthread_mutex_t logging_mutex;
++extern pthread_mutex_t element_free_mutex;
++extern pthread_mutex_t output_layer_mutex;
++extern pthread_mutex_t socket_com_mutex;
+
+ /* Table of all configured (and succesfully loaded) output modules */
+ extern GList *output_modules;
+
+ /* Table of settings for each active client (=each active socket)*/
+-GHashTable *fd_settings;
++extern GHashTable *fd_settings;
+ /* Table of default output modules for different languages */
+-GHashTable *language_default_modules;
++extern GHashTable *language_default_modules;
+ /* Table of relations between client file descriptors and their uids */
+-GHashTable *fd_uid;
++extern GHashTable *fd_uid;
+
+ /* Speech Dispatcher main priority queue for messages */
+-TSpeechDQueue *MessageQueue;
++extern TSpeechDQueue *MessageQueue;
+ /* List of messages from paused clients waiting for resume */
+-GList *MessagePausedList;
++extern GList *MessagePausedList;
+
+ /* List of different entries of client-specific configuration */
+-GList *client_specific_settings;
++extern GList *client_specific_settings;
+
+ /* Saves the last received priority progress message */
+-GList *last_p5_block;
++extern GList *last_p5_block;
+
+ /* Global default settings */
+-TFDSetElement GlobalFDSet;
++extern TFDSetElement GlobalFDSet;
+
+ /* Inter thread comm pipe */
+-int speaking_pipe[2];
++extern int speaking_pipe[2];
+
+ /* Managing sockets communication */
+-GHashTable *speechd_sockets_status;
++extern GHashTable *speechd_sockets_status;
+ typedef struct {
+ int awaiting_data;
+ int inside_block;
+@@ -234,10 +234,10 @@ void MSG2(int level, char *kind, char *format, ...);
+ #define FATAL(msg) do { fatal_error(); MSG(-1,"Fatal error [%s:%d]:"msg, __FILE__, __LINE__); exit(EXIT_FAILURE); } while (0)
+ #define DIE(msg) do { MSG(0,"Error [%s:%d]:"msg, __FILE__, __LINE__); exit(EXIT_FAILURE); } while (0)
+
+-FILE *logfile;
+-FILE *custom_logfile;
+-char *custom_log_kind;
+-FILE *debug_logfile;
++extern FILE *logfile;
++extern FILE *custom_logfile;
++extern char *custom_log_kind;
++extern FILE *debug_logfile;
+
+ /* For debugging purposes, does nothing */
+ void fatal_error(void);