diff options
Diffstat (limited to 'rbutil/rbutilqt/tts.h')
-rw-r--r-- | rbutil/rbutilqt/tts.h | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/rbutil/rbutilqt/tts.h b/rbutil/rbutilqt/tts.h index 7c21fd0d65..d225d46853 100644 --- a/rbutil/rbutilqt/tts.h +++ b/rbutil/rbutilqt/tts.h | |||
@@ -23,9 +23,13 @@ | |||
23 | #ifndef TTS_H | 23 | #ifndef TTS_H |
24 | #define TTS_H | 24 | #define TTS_H |
25 | 25 | ||
26 | |||
27 | #include "rbsettings.h" | 26 | #include "rbsettings.h" |
28 | #include <QtCore> | 27 | #include <QtCore> |
28 | #include <QProcess> | ||
29 | #include <QProgressDialog> | ||
30 | #include <QDateTime> | ||
31 | #include <QRegExp> | ||
32 | #include <QTcpSocket> | ||
29 | 33 | ||
30 | #ifndef CONSOLE | 34 | #ifndef CONSOLE |
31 | #include "ttsgui.h" | 35 | #include "ttsgui.h" |
@@ -33,14 +37,18 @@ | |||
33 | #include "ttsguicli.h" | 37 | #include "ttsguicli.h" |
34 | #endif | 38 | #endif |
35 | 39 | ||
36 | 40 | enum TTSStatus{ FatalError, NoError, Warning }; | |
41 | class TTSSapi; | ||
42 | #if defined(Q_OS_LINUX) | ||
43 | class TTSFestival; | ||
44 | #endif | ||
37 | class TTSBase : public QObject | 45 | class TTSBase : public QObject |
38 | { | 46 | { |
39 | Q_OBJECT | 47 | Q_OBJECT |
40 | public: | 48 | public: |
41 | TTSBase(); | 49 | TTSBase(); |
42 | virtual bool voice(QString text,QString wavfile) | 50 | virtual TTSStatus voice(QString text,QString wavfile, QString* errStr) |
43 | { (void)text; (void)wavfile; return false; } | 51 | { (void) text; (void) wavfile; (void) errStr; return FatalError;} |
44 | virtual bool start(QString *errStr) { (void)errStr; return false; } | 52 | virtual bool start(QString *errStr) { (void)errStr; return false; } |
45 | virtual bool stop() { return false; } | 53 | virtual bool stop() { return false; } |
46 | virtual void showCfg(){} | 54 | virtual void showCfg(){} |
@@ -72,7 +80,7 @@ class TTSSapi : public TTSBase | |||
72 | Q_OBJECT | 80 | Q_OBJECT |
73 | public: | 81 | public: |
74 | TTSSapi(); | 82 | TTSSapi(); |
75 | virtual bool voice(QString text,QString wavfile); | 83 | virtual TTSStatus voice(QString text,QString wavfile, QString *errStr); |
76 | virtual bool start(QString *errStr); | 84 | virtual bool start(QString *errStr); |
77 | virtual bool stop(); | 85 | virtual bool stop(); |
78 | virtual void showCfg(); | 86 | virtual void showCfg(); |
@@ -99,7 +107,7 @@ class TTSExes : public TTSBase | |||
99 | Q_OBJECT | 107 | Q_OBJECT |
100 | public: | 108 | public: |
101 | TTSExes(QString name); | 109 | TTSExes(QString name); |
102 | virtual bool voice(QString text,QString wavfile); | 110 | virtual TTSStatus voice(QString text,QString wavfile, QString *errStr); |
103 | virtual bool start(QString *errStr); | 111 | virtual bool start(QString *errStr); |
104 | virtual bool stop() {return true;} | 112 | virtual bool stop() {return true;} |
105 | virtual void showCfg(); | 113 | virtual void showCfg(); |
@@ -115,4 +123,26 @@ class TTSExes : public TTSBase | |||
115 | QMap<QString,QString> m_TemplateMap; | 123 | QMap<QString,QString> m_TemplateMap; |
116 | }; | 124 | }; |
117 | 125 | ||
126 | class TTSFestival : public TTSBase | ||
127 | { | ||
128 | Q_OBJECT | ||
129 | public: | ||
130 | ~TTSFestival(); | ||
131 | virtual bool configOk(); | ||
132 | virtual bool start(QString *errStr); | ||
133 | virtual bool stop(); | ||
134 | virtual void showCfg(); | ||
135 | virtual TTSStatus voice(QString text,QString wavfile, QString *errStr); | ||
136 | |||
137 | QStringList getVoiceList(); | ||
138 | QString getVoiceInfo(QString voice); | ||
139 | private: | ||
140 | inline void startServer(); | ||
141 | inline void ensureServerRunning(); | ||
142 | QString queryServer(QString query, int timeout = -1); | ||
143 | QProcess serverProcess; | ||
144 | QStringList voices; | ||
145 | QMap<QString, QString> voiceDescriptions; | ||
146 | }; | ||
147 | |||
118 | #endif | 148 | #endif |