Diffstat (limited to 'noncore/apps/opie-reader/flitecmd.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/apps/opie-reader/flitecmd.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/noncore/apps/opie-reader/flitecmd.cpp b/noncore/apps/opie-reader/flitecmd.cpp new file mode 100644 index 0000000..bb7e303 --- a/dev/null +++ b/noncore/apps/opie-reader/flitecmd.cpp @@ -0,0 +1,43 @@ +#include <unistd.h> +#include <sys/types.h> +#include <sys/wait.h> +#include <errno.h> +#include "flitecmd.h" + +void CFliteCmd::output(const QString& txt) +{ + pid_t pid; + if ((pid = fork()) <0) + { + qDebug("No memory"); + } + else if (pid == 0) + { + execlp("flite", "flite", "-t", (const char*)txt, NULL); + _exit(127); + qDebug("Can't find flite"); + } + else + { + int status; + while (waitpid(pid, &status, 0) < 0) + { + if (errno != EINTR) + { + qDebug("Error from flite"); + break; + } + } + qDebug("flite status:%d", status); + } +} + +QString CFliteCmd::about() +{ + return QString("FliteCmd output codec (c) Tim Wentford\n"); +} + +extern "C" +{ + COutput* newcodec() { return new CFliteCmd; } +} |