summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/base/tts.h
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/rbutilqt/base/tts.h')
-rw-r--r--rbutil/rbutilqt/base/tts.h180
1 files changed, 0 insertions, 180 deletions
diff --git a/rbutil/rbutilqt/base/tts.h b/rbutil/rbutilqt/base/tts.h
deleted file mode 100644
index f665ed2865..0000000000
--- a/rbutil/rbutilqt/base/tts.h
+++ /dev/null
@@ -1,180 +0,0 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 *
9 * Copyright (C) 2007 by Dominik Wenger
10 * $Id$
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ****************************************************************************/
21
22
23#ifndef TTS_H
24#define TTS_H
25
26#include <QtCore>
27#include <QProcess>
28#include <QDateTime>
29#include <QRegExp>
30#include <QTcpSocket>
31
32#include "encttssettings.h"
33
34enum TTSStatus{ FatalError, NoError, Warning };
35
36class TTSBase : public EncTtsSettingInterface
37{
38 Q_OBJECT
39 public:
40 TTSBase(QObject *parent);
41 //! Child class should generate a clip
42 virtual TTSStatus voice(QString text,QString wavfile, QString* errStr) =0;
43 //! Child class should do startup
44 virtual bool start(QString *errStr) =0;
45 //! child class should stop
46 virtual bool stop() =0;
47
48 // configuration
49 //! Child class should return true, when configuration is good
50 virtual bool configOk()=0;
51 //! Child class should generate and insertSetting(..) its settings
52 virtual void generateSettings() = 0;
53 //! Chlid class should commit the Settings to permanent storage
54 virtual void saveSettings() = 0;
55
56 // static functions
57 static TTSBase* getTTS(QObject* parent,QString ttsname);
58 static QStringList getTTSList();
59 static QString getTTSName(QString tts);
60
61 private:
62 //inits the tts List
63 static void initTTSList();
64
65 protected:
66 static QMap<QString,QString> ttsList;
67};
68
69class TTSSapi : public TTSBase
70{
71 //! Enum to identify the settings
72 enum ESettings
73 {
74 eLANGUAGE,
75 eVOICE,
76 eSPEED,
77 eOPTIONS
78 };
79
80 Q_OBJECT
81 public:
82 TTSSapi(QObject* parent=NULL);
83
84 TTSStatus voice(QString text,QString wavfile, QString *errStr);
85 bool start(QString *errStr);
86 bool stop();
87
88 // for settings
89 bool configOk();
90 void generateSettings();
91 void saveSettings();
92
93 private slots:
94 void updateVoiceList();
95
96 private:
97 QStringList getVoiceList(QString language);
98
99 QProcess* voicescript;
100 QTextStream* voicestream;
101 QString defaultLanguage;
102
103 QString m_TTSexec;
104 QString m_TTSOpts;
105 QString m_TTSTemplate;
106 QString m_TTSLanguage;
107 QString m_TTSVoice;
108 QString m_TTSSpeed;
109 bool m_sapi4;
110};
111
112
113class TTSExes : public TTSBase
114{
115 enum ESettings
116 {
117 eEXEPATH,
118 eOPTIONS
119 };
120
121 Q_OBJECT
122 public:
123 TTSExes(QString name,QObject* parent=NULL);
124 TTSStatus voice(QString text,QString wavfile, QString *errStr);
125 bool start(QString *errStr);
126 bool stop() {return true;}
127
128 // for settings
129 void generateSettings();
130 void saveSettings();
131 bool configOk();
132
133 private:
134 QString m_name;
135 QString m_TTSexec;
136 QString m_TTSOpts;
137 QString m_TTSTemplate;
138 QMap<QString,QString> m_TemplateMap;
139};
140
141class TTSFestival : public TTSBase
142{
143 enum ESettings
144 {
145 eSERVERPATH,
146 eCLIENTPATH,
147 eVOICE,
148 eVOICEDESC
149 };
150
151 Q_OBJECT
152public:
153 TTSFestival(QObject* parent=NULL) :TTSBase(parent) {}
154 ~TTSFestival();
155 bool start(QString *errStr);
156 bool stop();
157 TTSStatus voice(QString text,QString wavfile, QString *errStr);
158
159 // for settings
160 bool configOk();
161 void generateSettings();
162 void saveSettings();
163
164private slots:
165 void updateVoiceList();
166 void updateVoiceDescription();
167 void clearVoiceDescription();
168private:
169 QStringList getVoiceList(QString path ="");
170 QString getVoiceInfo(QString voice,QString path ="");
171
172 inline void startServer(QString path="");
173 inline void ensureServerRunning(QString path="");
174 QString queryServer(QString query, int timeout = -1,QString path="");
175 QProcess serverProcess;
176 QStringList voices;
177 QMap<QString, QString> voiceDescriptions;
178};
179
180#endif