diff options
Diffstat (limited to 'Plugins/eSpeak/eSpeak/fifo.h')
-rw-r--r-- | Plugins/eSpeak/eSpeak/fifo.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/Plugins/eSpeak/eSpeak/fifo.h b/Plugins/eSpeak/eSpeak/fifo.h new file mode 100644 index 0000000..b3699ff --- /dev/null +++ b/Plugins/eSpeak/eSpeak/fifo.h @@ -0,0 +1,58 @@ +#ifndef FIFO_H +#define FIFO_H + +// Helps to add espeak commands in a first-in first-out queue +// and run them asynchronously. + +#include "espeak_command.h" +#include "speak_lib.h" + +// Initialize the fifo component. +// First function to be called. +void fifo_init(); + +// Add an espeak command. +// +// Note: this function fails if too many commands are already buffered. +// In such a case, the calling function could wait and then add again its command. +// +// Return: EE_OK: operation achieved +// EE_BUFFER_FULL: the command can not be buffered; +// you may try after a while to call the function again. +// EE_INTERNAL_ERROR. +espeak_ERROR fifo_add_command (t_espeak_command* c); + +// Add two espeak commands in a single transaction. +// +// Note: this function fails if too many commands are already buffered. +// In such a case, the calling function could wait and then add again these commands. +// +// Return: EE_OK: operation achieved +// EE_BUFFER_FULL: at least one command can not be buffered; +// you may try after a while to call the function again. +// EE_INTERNAL_ERROR. +espeak_ERROR fifo_add_commands (t_espeak_command* c1, t_espeak_command* c2); + +// The current running command must be stopped and the awaiting commands are cleared. +// Return: EE_OK: operation achieved +// EE_INTERNAL_ERROR. +espeak_ERROR fifo_stop (); + +// Is there a running command? +// Returns 1 if yes; 0 otherwise. +int fifo_is_busy (); + +// Terminate the fifo component. +// Last function to be called. +void fifo_terminate(); + +// Indicates if the running command is still enabled. +// +// Note: this function is mainly called by the SynthCallback (speak_lib.cpp) +// It indicates if the actual wave sample can still be played. It is helpful for +// stopping speech as soon as a cancel command is applied. +// +// Returns 1 if yes, or 0 otherwise. +int fifo_is_command_enabled(); + +#endif |