Code police.

- remove tabs.
- remove trailing spaces.
- break overly long lines.
- fix indentation errors.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25008 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dominik Riebeling 2010-03-03 22:26:00 +00:00
parent be90f74e89
commit 897e041900
6 changed files with 115 additions and 80 deletions

View file

@ -44,8 +44,10 @@ void TTSExes::generateSettings()
void TTSExes::saveSettings() void TTSExes::saveSettings()
{ {
RbSettings::setSubValue(m_name,RbSettings::TtsPath,getSetting(eEXEPATH)->current().toString()); RbSettings::setSubValue(m_name,RbSettings::TtsPath,
RbSettings::setSubValue(m_name,RbSettings::TtsOptions,getSetting(eOPTIONS)->current().toString()); getSetting(eEXEPATH)->current().toString());
RbSettings::setSubValue(m_name,RbSettings::TtsOptions,
getSetting(eOPTIONS)->current().toString());
RbSettings::sync(); RbSettings::sync();
} }

View file

@ -31,15 +31,15 @@ class TTSExes : public TTSBase
eEXEPATH, eEXEPATH,
eOPTIONS eOPTIONS
}; };
Q_OBJECT Q_OBJECT
public: public:
TTSExes(QString name,QObject* parent=NULL); TTSExes(QString name,QObject* parent=NULL);
TTSStatus voice(QString text,QString wavfile, QString *errStr); TTSStatus voice(QString text, QString wavfile, QString *errStr);
bool start(QString *errStr); bool start(QString *errStr);
bool stop() {return true;} bool stop() {return true;}
// for settings // for settings
void generateSettings(); void generateSettings();
void saveSettings(); void saveSettings();
bool configOk(); bool configOk();

View file

@ -29,19 +29,26 @@ TTSFestival::~TTSFestival()
void TTSFestival::generateSettings() void TTSFestival::generateSettings()
{ {
// server path // server path
QString exepath = RbSettings::subValue("festival-server",RbSettings::TtsPath).toString(); QString exepath = RbSettings::subValue("festival-server",
RbSettings::TtsPath).toString();
if(exepath == "" ) exepath = findExecutable("festival"); if(exepath == "" ) exepath = findExecutable("festival");
insertSetting(eSERVERPATH,new EncTtsSetting(this,EncTtsSetting::eSTRING,"Path to Festival server:",exepath,EncTtsSetting::eBROWSEBTN)); insertSetting(eSERVERPATH,new EncTtsSetting(this,
EncTtsSetting::eSTRING, "Path to Festival server:",
exepath,EncTtsSetting::eBROWSEBTN));
// client path // client path
QString clientpath = RbSettings::subValue("festival-client",RbSettings::TtsPath).toString(); QString clientpath = RbSettings::subValue("festival-client",
RbSettings::TtsPath).toString();
if(clientpath == "" ) clientpath = findExecutable("festival_client"); if(clientpath == "" ) clientpath = findExecutable("festival_client");
insertSetting(eCLIENTPATH,new EncTtsSetting(this,EncTtsSetting::eSTRING, insertSetting(eCLIENTPATH,new EncTtsSetting(this,EncTtsSetting::eSTRING,
tr("Path to Festival client:"),clientpath,EncTtsSetting::eBROWSEBTN)); tr("Path to Festival client:"),
clientpath,EncTtsSetting::eBROWSEBTN));
// voice // voice
EncTtsSetting* setting = new EncTtsSetting(this,EncTtsSetting::eSTRINGLIST, EncTtsSetting* setting = new EncTtsSetting(this,
tr("Voice:"),RbSettings::subValue("festival",RbSettings::TtsVoice),getVoiceList(exepath),EncTtsSetting::eREFRESHBTN); EncTtsSetting::eSTRINGLIST, tr("Voice:"),
RbSettings::subValue("festival", RbSettings::TtsVoice),
getVoiceList(exepath), EncTtsSetting::eREFRESHBTN);
connect(setting,SIGNAL(refresh()),this,SLOT(updateVoiceList())); connect(setting,SIGNAL(refresh()),this,SLOT(updateVoiceList()));
connect(setting,SIGNAL(dataChanged()),this,SLOT(clearVoiceDescription())); connect(setting,SIGNAL(dataChanged()),this,SLOT(clearVoiceDescription()));
insertSetting(eVOICE,setting); insertSetting(eVOICE,setting);
@ -56,9 +63,12 @@ void TTSFestival::generateSettings()
void TTSFestival::saveSettings() void TTSFestival::saveSettings()
{ {
//save settings in user config //save settings in user config
RbSettings::setSubValue("festival-server",RbSettings::TtsPath,getSetting(eSERVERPATH)->current().toString()); RbSettings::setSubValue("festival-server",
RbSettings::setSubValue("festival-client",RbSettings::TtsPath,getSetting(eCLIENTPATH)->current().toString()); RbSettings::TtsPath,getSetting(eSERVERPATH)->current().toString());
RbSettings::setSubValue("festival",RbSettings::TtsVoice,getSetting(eVOICE)->current().toString()); RbSettings::setSubValue("festival-client",
RbSettings::TtsPath,getSetting(eCLIENTPATH)->current().toString());
RbSettings::setSubValue("festival",
RbSettings::TtsVoice,getSetting(eVOICE)->current().toString());
RbSettings::sync(); RbSettings::sync();
} }
@ -66,7 +76,8 @@ void TTSFestival::saveSettings()
void TTSFestival::updateVoiceDescription() void TTSFestival::updateVoiceDescription()
{ {
// get voice Info with current voice and path // get voice Info with current voice and path
QString info = getVoiceInfo(getSetting(eVOICE)->current().toString(),getSetting(eSERVERPATH)->current().toString()); QString info = getVoiceInfo(getSetting(eVOICE)->current().toString(),
getSetting(eSERVERPATH)->current().toString());
getSetting(eVOICEDESC)->setCurrent(info); getSetting(eVOICEDESC)->setCurrent(info);
} }
@ -132,8 +143,10 @@ TTSStatus TTSFestival::voice(QString text, QString wavfile, QString* errStr)
{ {
qDebug() << text << "->" << wavfile; qDebug() << text << "->" << wavfile;
QString path = RbSettings::subValue("festival-client",RbSettings::TtsPath).toString(); QString path = RbSettings::subValue("festival-client",
QString cmd = QString("%1 --server localhost --otype riff --ttw --withlisp --output \"%2\" - ").arg(path).arg(wavfile); RbSettings::TtsPath).toString();
QString cmd = QString("%1 --server localhost --otype riff --ttw --withlisp"
" --output \"%2\" - ").arg(path).arg(wavfile);
qDebug() << cmd; qDebug() << cmd;
QProcess clientProcess; QProcess clientProcess;
@ -162,13 +175,17 @@ TTSStatus TTSFestival::voice(QString text, QString wavfile, QString* errStr)
bool TTSFestival::configOk() bool TTSFestival::configOk()
{ {
QString serverPath = RbSettings::subValue("festival-server",RbSettings::TtsPath).toString(); QString serverPath = RbSettings::subValue("festival-server",
QString clientPath = RbSettings::subValue("festival-client",RbSettings::TtsPath).toString(); RbSettings::TtsPath).toString();
QString clientPath = RbSettings::subValue("festival-client",
RbSettings::TtsPath).toString();
bool ret = QFileInfo(serverPath).isExecutable() && bool ret = QFileInfo(serverPath).isExecutable() &&
QFileInfo(clientPath).isExecutable(); QFileInfo(clientPath).isExecutable();
if(RbSettings::subValue("festival",RbSettings::TtsVoice).toString().size() > 0 && voices.size() > 0) if(RbSettings::subValue("festival",RbSettings::TtsVoice).toString().size() > 0
ret = ret && (voices.indexOf(RbSettings::subValue("festival",RbSettings::TtsVoice).toString()) != -1); && voices.size() > 0)
ret = ret && (voices.indexOf(RbSettings::subValue("festival",
RbSettings::TtsVoice).toString()) != -1);
return ret; return ret;
} }
@ -213,7 +230,8 @@ QString TTSFestival::getVoiceInfo(QString voice,QString path)
if(voiceDescriptions.contains(voice)) if(voiceDescriptions.contains(voice))
return voiceDescriptions[voice]; return voiceDescriptions[voice];
QString response = queryServer(QString("(voice.description '%1)").arg(voice), 3000,path); QString response = queryServer(QString("(voice.description '%1)").arg(voice),
3000,path);
if (response == "") if (response == "")
{ {
@ -221,7 +239,8 @@ QString TTSFestival::getVoiceInfo(QString voice,QString path)
} }
else else
{ {
response = response.remove(QRegExp("(description \"*\")", Qt::CaseInsensitive, QRegExp::Wildcard)); response = response.remove(QRegExp("(description \"*\")",
Qt::CaseInsensitive, QRegExp::Wildcard));
qDebug() << "voiceInfo w/o descr: " << response; qDebug() << "voiceInfo w/o descr: " << response;
response = response.remove(')'); response = response.remove(')');
QStringList responseLines = response.split('(', QString::SkipEmptyParts); QStringList responseLines = response.split('(', QString::SkipEmptyParts);
@ -238,8 +257,10 @@ QString TTSFestival::getVoiceInfo(QString voice,QString path)
int firstSpace = line.indexOf(' '); int firstSpace = line.indexOf(' ');
if (firstSpace > 0) if (firstSpace > 0)
{ {
line = line.insert(firstSpace, ':'); // add a colon between the key and the value // add a colon between the key and the value
line[firstSpace+2] = line[firstSpace+2].toUpper(); // capitalize the value line = line.insert(firstSpace, ':');
// capitalize the value
line[firstSpace+2] = line[firstSpace+2].toUpper();
} }
description += line + "\n"; description += line + "\n";
@ -298,7 +319,8 @@ QString TTSFestival::queryServer(QString query, int timeout,QString path)
emit busyEnd(); emit busyEnd();
return ""; return "";
} }
/* make sure we wait a little as we don't want to flood the server with requests */ /* make sure we wait a little as we don't want to flood the server
* with requests */
QDateTime tmpEndTime = QDateTime::currentDateTime().addMSecs(500); QDateTime tmpEndTime = QDateTime::currentDateTime().addMSecs(500);
while(QDateTime::currentDateTime() < tmpEndTime) while(QDateTime::currentDateTime() < tmpEndTime)
QCoreApplication::processEvents(QEventLoop::AllEvents); QCoreApplication::processEvents(QEventLoop::AllEvents);

View file

@ -33,34 +33,34 @@ class TTSFestival : public TTSBase
eVOICE, eVOICE,
eVOICEDESC eVOICEDESC
}; };
Q_OBJECT
public:
TTSFestival(QObject* parent=NULL) :TTSBase(parent) {}
~TTSFestival();
bool start(QString *errStr);
bool stop();
TTSStatus voice(QString text,QString wavfile, QString *errStr);
// for settings Q_OBJECT
bool configOk(); public:
void generateSettings(); TTSFestival(QObject* parent=NULL) : TTSBase(parent) {}
void saveSettings(); ~TTSFestival();
bool start(QString *errStr);
private slots: bool stop();
void updateVoiceList(); TTSStatus voice(QString text,QString wavfile, QString *errStr);
void updateVoiceDescription();
void clearVoiceDescription(); // for settings
private: bool configOk();
QStringList getVoiceList(QString path =""); void generateSettings();
QString getVoiceInfo(QString voice,QString path =""); void saveSettings();
inline void startServer(QString path=""); private slots:
inline void ensureServerRunning(QString path=""); void updateVoiceList();
QString queryServer(QString query, int timeout = -1,QString path=""); void updateVoiceDescription();
QProcess serverProcess; void clearVoiceDescription();
QStringList voices; private:
QMap<QString, QString> voiceDescriptions; QStringList getVoiceList(QString path ="");
QString getVoiceInfo(QString voice,QString path ="");
inline void startServer(QString path="");
inline void ensureServerRunning(QString path="");
QString queryServer(QString query, int timeout = -1,QString path="");
QProcess serverProcess;
QStringList voices;
QMap<QString, QString> voiceDescriptions;
}; };

View file

@ -24,7 +24,8 @@
TTSSapi::TTSSapi(QObject* parent) : TTSBase(parent) TTSSapi::TTSSapi(QObject* parent) : TTSBase(parent)
{ {
m_TTSTemplate = "cscript //nologo \"%exe\" /language:%lang /voice:\"%voice\" /speed:%speed \"%options\""; m_TTSTemplate = "cscript //nologo \"%exe\" /language:%lang /voice:\"%voice\""
" /speed:%speed \"%options\"";
defaultLanguage ="english"; defaultLanguage ="english";
m_sapi4 =false; m_sapi4 =false;
} }
@ -35,12 +36,15 @@ void TTSSapi::generateSettings()
QStringList languages = SystemInfo::languages(); QStringList languages = SystemInfo::languages();
languages.sort(); languages.sort();
EncTtsSetting* setting =new EncTtsSetting(this,EncTtsSetting::eSTRINGLIST, EncTtsSetting* setting =new EncTtsSetting(this,EncTtsSetting::eSTRINGLIST,
tr("Language:"),RbSettings::subValue("sapi",RbSettings::TtsLanguage),languages); tr("Language:"),RbSettings::subValue("sapi",RbSettings::TtsLanguage),
languages);
connect(setting,SIGNAL(dataChanged()),this,SLOT(updateVoiceList())); connect(setting,SIGNAL(dataChanged()),this,SLOT(updateVoiceList()));
insertSetting(eLANGUAGE,setting); insertSetting(eLANGUAGE,setting);
// voice // voice
setting = new EncTtsSetting(this,EncTtsSetting::eSTRINGLIST, setting = new EncTtsSetting(this,EncTtsSetting::eSTRINGLIST,
tr("Voice:"),RbSettings::subValue("sapi",RbSettings::TtsVoice),getVoiceList(RbSettings::subValue("sapi",RbSettings::TtsLanguage).toString()),EncTtsSetting::eREFRESHBTN); tr("Voice:"),RbSettings::subValue("sapi",RbSettings::TtsVoice),
getVoiceList(RbSettings::subValue("sapi",RbSettings::TtsLanguage).toString()),
EncTtsSetting::eREFRESHBTN);
connect(setting,SIGNAL(refresh()),this,SLOT(updateVoiceList())); connect(setting,SIGNAL(refresh()),this,SLOT(updateVoiceList()));
insertSetting(eVOICE,setting); insertSetting(eVOICE,setting);
//speed //speed
@ -55,10 +59,14 @@ void TTSSapi::generateSettings()
void TTSSapi::saveSettings() void TTSSapi::saveSettings()
{ {
//save settings in user config //save settings in user config
RbSettings::setSubValue("sapi",RbSettings::TtsLanguage,getSetting(eLANGUAGE)->current().toString()); RbSettings::setSubValue("sapi",RbSettings::TtsLanguage,
RbSettings::setSubValue("sapi",RbSettings::TtsVoice,getSetting(eVOICE)->current().toString()); getSetting(eLANGUAGE)->current().toString());
RbSettings::setSubValue("sapi",RbSettings::TtsSpeed,getSetting(eSPEED)->current().toInt()); RbSettings::setSubValue("sapi",RbSettings::TtsVoice,
RbSettings::setSubValue("sapi",RbSettings::TtsOptions,getSetting(eOPTIONS)->current().toString()); getSetting(eVOICE)->current().toString());
RbSettings::setSubValue("sapi",RbSettings::TtsSpeed,
getSetting(eSPEED)->current().toInt());
RbSettings::setSubValue("sapi",RbSettings::TtsOptions,
getSetting(eOPTIONS)->current().toString());
RbSettings::sync(); RbSettings::sync();
} }
@ -168,10 +176,11 @@ QStringList TTSSapi::getVoiceList(QString language)
} }
delete voicescript; delete voicescript;
QFile::setPermissions(QDir::tempPath() +"/sapi_voice.vbs",QFile::ReadOwner |QFile::WriteOwner|QFile::ExeOwner QFile::setPermissions(QDir::tempPath() +"/sapi_voice.vbs",
|QFile::ReadUser| QFile::WriteUser| QFile::ExeUser QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner
|QFile::ReadGroup |QFile::WriteGroup |QFile::ExeGroup | QFile::ReadUser | QFile::WriteUser | QFile::ExeUser
|QFile::ReadOther |QFile::WriteOther |QFile::ExeOther ); | QFile::ReadGroup | QFile::WriteGroup | QFile::ExeGroup
| QFile::ReadOther | QFile::WriteOther | QFile::ExeOther );
QFile::remove(QDir::tempPath() +"/sapi_voice.vbs"); QFile::remove(QDir::tempPath() +"/sapi_voice.vbs");
return result; return result;
} }
@ -198,10 +207,11 @@ bool TTSSapi::stop()
voicescript->waitForFinished(); voicescript->waitForFinished();
delete voicestream; delete voicestream;
delete voicescript; delete voicescript;
QFile::setPermissions(QDir::tempPath() +"/sapi_voice.vbs",QFile::ReadOwner |QFile::WriteOwner|QFile::ExeOwner QFile::setPermissions(QDir::tempPath() +"/sapi_voice.vbs",
|QFile::ReadUser| QFile::WriteUser| QFile::ExeUser QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner
|QFile::ReadGroup |QFile::WriteGroup |QFile::ExeGroup | QFile::ReadUser | QFile::WriteUser | QFile::ExeUser
|QFile::ReadOther |QFile::WriteOther |QFile::ExeOther ); | QFile::ReadGroup | QFile::WriteGroup | QFile::ExeGroup
| QFile::ReadOther | QFile::WriteOther | QFile::ExeOther );
QFile::remove(QDir::tempPath() +"/sapi_voice.vbs"); QFile::remove(QDir::tempPath() +"/sapi_voice.vbs");
return true; return true;
} }
@ -212,3 +222,4 @@ bool TTSSapi::configOk()
return false; return false;
return true; return true;
} }

View file

@ -34,30 +34,30 @@ class TTSSapi : public TTSBase
eSPEED, eSPEED,
eOPTIONS eOPTIONS
}; };
Q_OBJECT Q_OBJECT
public: public:
TTSSapi(QObject* parent=NULL); TTSSapi(QObject* parent=NULL);
TTSStatus voice(QString text,QString wavfile, QString *errStr); TTSStatus voice(QString text,QString wavfile, QString *errStr);
bool start(QString *errStr); bool start(QString *errStr);
bool stop(); bool stop();
// for settings // for settings
bool configOk(); bool configOk();
void generateSettings(); void generateSettings();
void saveSettings(); void saveSettings();
private slots: private slots:
void updateVoiceList(); void updateVoiceList();
private: private:
QStringList getVoiceList(QString language); QStringList getVoiceList(QString language);
QProcess* voicescript; QProcess* voicescript;
QTextStream* voicestream; QTextStream* voicestream;
QString defaultLanguage; QString defaultLanguage;
QString m_TTSexec; QString m_TTSexec;
QString m_TTSOpts; QString m_TTSOpts;
QString m_TTSTemplate; QString m_TTSTemplate;