summaryrefslogtreecommitdiff
blob: 0914566a8a35625aa761ea657c8dad88aec79e4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
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);