summaryrefslogtreecommitdiff
path: root/Plugins/eSpeak/eSpeak/fifo.h
diff options
context:
space:
mode:
Diffstat (limited to 'Plugins/eSpeak/eSpeak/fifo.h')
-rw-r--r--Plugins/eSpeak/eSpeak/fifo.h58
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