Redo my previous segfault fix in a better way.
[Rockbox.git] / rbutil / rbutilqt / tts.h
blob9c73bfa5e59bf2fa20b50af9819bd11a35156bca
1 /***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
9 * Copyright (C) 2007 by Dominik Wenger
10 * $Id: tts.h 15212 2007-10-19 21:49:07Z domonoky $
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
18 ****************************************************************************/
21 #ifndef TTS_H
22 #define TTS_H
25 #include "rbsettings.h"
26 #include <QtGui>
28 #ifndef CONSOLE
29 #include "ttsgui.h"
30 #endif
32 class TTSBase;
34 //inits the tts List
35 void initTTSList();
36 // function to get a specific tts
37 TTSBase* getTTS(QString ttsname);
38 // get the list of tts, nice names
39 QStringList getTTSList();
42 class TTSBase : public QObject
44 Q_OBJECT
45 public:
46 TTSBase();
47 virtual bool voice(QString text,QString wavfile) {return false;}
48 virtual bool start(QString *errStr){return false;}
49 virtual bool stop(){return false;}
50 virtual void showCfg(){}
51 virtual bool configOk(){return false;}
53 void setCfg(RbSettings* sett){settings = sett;}
55 public slots:
56 virtual void accept(void){}
57 virtual void reject(void){}
58 virtual void reset(void){}
60 protected:
61 RbSettings* settings;
64 class TTSSapi : public TTSBase
66 Q_OBJECT
67 public:
68 TTSSapi();
69 virtual bool voice(QString text,QString wavfile);
70 virtual bool start(QString *errStr);
71 virtual bool stop();
72 virtual void showCfg();
73 virtual bool configOk();
75 QStringList getVoiceList(QString language);
76 private:
78 QProcess* voicescript;
80 QString defaultLanguage;
82 QString m_TTSexec;
83 QString m_TTSOpts;
84 QString m_TTSTemplate;
85 QString m_TTSLanguage;
86 QString m_TTSVoice;
87 QString m_TTSSpeed;
91 class TTSExes : public TTSBase
93 Q_OBJECT
94 public:
95 TTSExes(QString name);
96 virtual bool voice(QString text,QString wavfile);
97 virtual bool start(QString *errStr);
98 virtual bool stop() {return true;}
99 virtual void showCfg();
100 virtual bool configOk();
104 private:
106 QString m_name;
107 QString m_TTSexec;
108 QString m_TTSOpts;
109 QString m_TTSTemplate;
110 QMap<QString,QString> m_TemplateMap;
113 #endif