summaryrefslogtreecommitdiff
path: root/navit/support/espeak/espeak_command.h
diff options
context:
space:
mode:
Diffstat (limited to 'navit/support/espeak/espeak_command.h')
-rw-r--r--navit/support/espeak/espeak_command.h145
1 files changed, 145 insertions, 0 deletions
diff --git a/navit/support/espeak/espeak_command.h b/navit/support/espeak/espeak_command.h
new file mode 100644
index 00000000..b2664be6
--- /dev/null
+++ b/navit/support/espeak/espeak_command.h
@@ -0,0 +1,145 @@
+#ifndef ESPEAK_COMMAND_H
+#define ESPEAK_COMMAND_H
+
+#ifndef PLATFORM_WINDOWS
+#include <unistd.h>
+#endif
+#include "speak_lib.h"
+
+enum t_espeak_type
+ {
+ ET_TEXT,
+ ET_MARK,
+ ET_KEY,
+ ET_CHAR,
+ ET_PARAMETER,
+ ET_PUNCTUATION_LIST,
+ ET_VOICE_NAME,
+ ET_VOICE_SPEC,
+ ET_TERMINATED_MSG
+ };
+
+typedef struct
+{
+ unsigned int unique_identifier;
+ void* text;
+ size_t size;
+ unsigned int position;
+ espeak_POSITION_TYPE position_type;
+ unsigned int end_position;
+ unsigned int flags;
+ void* user_data;
+} t_espeak_text;
+
+typedef struct
+{
+ unsigned int unique_identifier;
+ void* text;
+ size_t size;
+ const char* index_mark;
+ unsigned int end_position;
+ unsigned int flags;
+ void* user_data;
+} t_espeak_mark;
+
+typedef struct
+{
+ unsigned int unique_identifier;
+ void* user_data;
+ wchar_t character;
+} t_espeak_character;
+
+typedef struct
+{
+ unsigned int unique_identifier;
+ void* user_data;
+ const char* key_name;
+} t_espeak_key;
+
+
+typedef struct
+{
+ unsigned int unique_identifier;
+ void* user_data;
+} t_espeak_terminated_msg;
+
+
+typedef struct
+{
+ espeak_PARAMETER parameter;
+ int value;
+ int relative;
+} t_espeak_parameter;
+
+enum t_command_state
+{
+ CS_UNDEFINED, // The command has just been created
+ CS_PENDING, // stored in the fifo
+ CS_PROCESSED // processed
+};
+
+typedef struct
+{
+ enum t_espeak_type type;
+ enum t_command_state state;
+
+ union command
+ {
+ t_espeak_text my_text;
+ t_espeak_mark my_mark;
+ t_espeak_key my_key;
+ t_espeak_character my_char;
+ t_espeak_parameter my_param;
+ const wchar_t* my_punctuation_list;
+ const char *my_voice_name;
+ espeak_VOICE my_voice_spec;
+ t_espeak_terminated_msg my_terminated_msg;
+ } u;
+} t_espeak_command;
+
+
+t_espeak_command* create_espeak_text(const void *text, size_t size, unsigned int position, espeak_POSITION_TYPE position_type, unsigned int end_position, unsigned int flags, void* user_data);
+
+t_espeak_command* create_espeak_mark(const void *text, size_t size, const char *index_mark, unsigned int end_position, unsigned int flags, void* user_data);
+
+t_espeak_command* create_espeak_terminated_msg(unsigned int unique_identifier, void* user_data);
+
+t_espeak_command* create_espeak_key(const char *key_name, void *user_data);
+
+t_espeak_command* create_espeak_char(wchar_t character, void *user_data);
+
+t_espeak_command* create_espeak_parameter(espeak_PARAMETER parameter, int value, int relative);
+
+t_espeak_command* create_espeak_punctuation_list(const wchar_t *punctlist);
+
+t_espeak_command* create_espeak_voice_name(const char *name);
+
+t_espeak_command* create_espeak_voice_spec(espeak_VOICE *voice_spec);
+
+void process_espeak_command( t_espeak_command* the_command);
+
+int delete_espeak_command( t_espeak_command* the_command);
+
+void display_espeak_command(t_espeak_command* the_command);
+
+
+espeak_ERROR sync_espeak_Synth(unsigned int unique_identifier, const void *text, size_t size,
+ unsigned int position, espeak_POSITION_TYPE position_type,
+ unsigned int end_position, unsigned int flags, void* user_data);
+espeak_ERROR sync_espeak_Synth_Mark(unsigned int unique_identifier, const void *text, size_t size,
+ const char *index_mark, unsigned int end_position,
+ unsigned int flags, void* user_data);
+void sync_espeak_Key(const char *key);
+void sync_espeak_Char(wchar_t character);
+void sync_espeak_SetPunctuationList(const wchar_t *punctlist);
+void sync_espeak_SetParameter(espeak_PARAMETER parameter, int value, int relative);
+int sync_espeak_SetVoiceByName(const char *name);
+int sync_espeak_SetVoiceByProperties(espeak_VOICE *voice_selector);
+espeak_ERROR SetVoiceByName(const char *name);
+espeak_ERROR SetVoiceByProperties(espeak_VOICE *voice_selector);
+void SetParameter(int parameter, int value, int relative);
+
+int sync_espeak_terminated_msg(unsigned int unique_identifier, void* user_data);
+
+//>
+#endif