1
0
Fork 0
forked from len0rd/rockbox

rbutil: tts and encoders: preparation for cli interface. installers: make sure all installers correctly emit a done signal.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16255 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dominik Wenger 2008-02-09 18:58:14 +00:00
parent 37dc15b672
commit 683da04ce4
10 changed files with 62 additions and 49 deletions

View file

@ -22,6 +22,8 @@
#ifndef CONSOLE #ifndef CONSOLE
#include "encodersgui.h" #include "encodersgui.h"
#else
#include "encodersguicli.h"
#endif #endif
static QMap<QString,QString> encoderList; static QMap<QString,QString> encoderList;
@ -53,20 +55,18 @@ EncBase* getEncoder(QString encoder)
return encoderCache.value(encoder); return encoderCache.value(encoder);
EncBase* enc; EncBase* enc;
if(encoder == "rbspeex") if(encoder == "lame")
{
enc = new EncRbSpeex();
encoderCache[encoder] = enc;
return enc;
}
else if(encoder == "lame")
{ {
enc = new EncExes(encoder); enc = new EncExes(encoder);
encoderCache[encoder] = enc; encoderCache[encoder] = enc;
return enc; return enc;
} }
else else // rbspeex is default
return NULL; {
enc = new EncRbSpeex();
encoderCache[encoder] = enc;
return enc;
}
} }
@ -81,7 +81,7 @@ QStringList getEncoderList()
/********************************************************************* /*********************************************************************
* Encoder Base * Encoder Base
**********************************************************************/ **********************************************************************/
EncBase::EncBase(QWidget *parent): QDialog(parent) EncBase::EncBase(QObject *parent): QObject(parent)
{ {
} }
@ -89,7 +89,7 @@ EncBase::EncBase(QWidget *parent): QDialog(parent)
/********************************************************************* /*********************************************************************
* GEneral Exe Encoder * GEneral Exe Encoder
**********************************************************************/ **********************************************************************/
EncExes::EncExes(QString name,QWidget *parent) : EncBase(parent) EncExes::EncExes(QString name,QObject *parent) : EncBase(parent)
{ {
m_name = name; m_name = name;
@ -132,7 +132,11 @@ bool EncExes::encode(QString input,QString output)
void EncExes::showCfg() void EncExes::showCfg()
{ {
#ifndef CONSOLE
EncExesGui gui; EncExesGui gui;
#else
EncExesGuiCli gui;
#endif
gui.setCfg(settings); gui.setCfg(settings);
gui.showCfg(m_name); gui.showCfg(m_name);
} }
@ -152,7 +156,7 @@ bool EncExes::configOk()
/********************************************************************* /*********************************************************************
* RB SPEEX ENCODER * RB SPEEX ENCODER
**********************************************************************/ **********************************************************************/
EncRbSpeex::EncRbSpeex(QWidget *parent) : EncBase(parent) EncRbSpeex::EncRbSpeex(QObject *parent) : EncBase(parent)
{ {
defaultQuality = 8.f; defaultQuality = 8.f;
@ -208,7 +212,11 @@ bool EncRbSpeex::encode(QString input,QString output)
void EncRbSpeex::showCfg() void EncRbSpeex::showCfg()
{ {
#ifndef CONSOLE
EncRbSpeexGui gui; EncRbSpeexGui gui;
#else
EncRbSpeexGuiCli gui;
#endif
gui.setCfg(settings); gui.setCfg(settings);
gui.showCfg(defaultQuality,defaultVolume,defaultComplexity,defaultBand); gui.showCfg(defaultQuality,defaultVolume,defaultComplexity,defaultBand);
} }

View file

@ -40,11 +40,11 @@ QString getEncoderName(QString encoder);
QStringList getEncoderList(void); QStringList getEncoderList(void);
class EncBase : public QDialog class EncBase : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
EncBase(QWidget *parent ); EncBase(QObject *parent );
virtual bool encode(QString input,QString output) virtual bool encode(QString input,QString output)
{(void)input; (void)output; return false;} {(void)input; (void)output; return false;}
@ -71,7 +71,7 @@ class EncExes : public EncBase
{ {
Q_OBJECT Q_OBJECT
public: public:
EncExes(QString name,QWidget *parent = NULL); EncExes(QString name,QObject *parent = NULL);
virtual bool encode(QString input,QString output); virtual bool encode(QString input,QString output);
virtual bool start(); virtual bool start();
virtual bool stop() {return true;} virtual bool stop() {return true;}
@ -90,7 +90,7 @@ class EncRbSpeex : public EncBase
{ {
Q_OBJECT Q_OBJECT
public: public:
EncRbSpeex(QWidget *parent = NULL); EncRbSpeex(QObject *parent = NULL);
virtual bool encode(QString input,QString output); virtual bool encode(QString input,QString output);
virtual bool start(); virtual bool start();
virtual bool stop() {return true;} virtual bool stop() {return true;}

View file

@ -62,7 +62,7 @@ void ZipInstaller::installContinue()
m_dp->addItem(tr("Installation finished successfully."),LOGOK); m_dp->addItem(tr("Installation finished successfully."),LOGOK);
m_dp->abort(); m_dp->abort();
emit done(false); emit done(true);
return; return;
} }
@ -89,27 +89,17 @@ void ZipInstaller::installStart()
getter->setProxy(m_proxy); getter->setProxy(m_proxy);
if(m_cache.exists()) { if(m_cache.exists()) {
getter->setCache(m_cache); getter->setCache(m_cache);
qDebug() << "installzip: setting cache to" << m_cache;
} }
getter->setFile(downloadFile); getter->setFile(downloadFile);
getter->getFile(QUrl(m_url)); getter->getFile(QUrl(m_url));
connect(getter, SIGNAL(done(bool)), this, SLOT(downloadDone(bool))); connect(getter, SIGNAL(done(bool)), this, SLOT(downloadDone(bool)));
connect(getter, SIGNAL(downloadDone(int, bool)), this, SLOT(downloadRequestFinished(int, bool)));
connect(getter, SIGNAL(dataReadProgress(int, int)), this, SLOT(updateDataReadProgress(int, int))); connect(getter, SIGNAL(dataReadProgress(int, int)), this, SLOT(updateDataReadProgress(int, int)));
connect(m_dp, SIGNAL(aborted()), getter, SLOT(abort())); connect(m_dp, SIGNAL(aborted()), getter, SLOT(abort()));
} }
void ZipInstaller::downloadRequestFinished(int id, bool error)
{
qDebug() << "Install::downloadRequestFinished" << id << error;
qDebug() << "error:" << getter->errorString();
downloadDone(error);
}
void ZipInstaller::downloadDone(bool error) void ZipInstaller::downloadDone(bool error)
{ {
qDebug() << "Install::downloadDone, error:" << error; qDebug() << "Install::downloadDone, error:" << error;
@ -125,14 +115,14 @@ void ZipInstaller::downloadDone(bool error)
if(getter->httpResponse() != 200 && !getter->isCached()) { if(getter->httpResponse() != 200 && !getter->isCached()) {
m_dp->addItem(tr("Download error: received HTTP error %1.").arg(getter->httpResponse()),LOGERROR); m_dp->addItem(tr("Download error: received HTTP error %1.").arg(getter->httpResponse()),LOGERROR);
m_dp->abort(); m_dp->abort();
emit done(true); emit done(false);
return; return;
} }
if(getter->isCached()) m_dp->addItem(tr("Cached file used."), LOGINFO); if(getter->isCached()) m_dp->addItem(tr("Cached file used."), LOGINFO);
if(error) { if(error) {
m_dp->addItem(tr("Download error: %1").arg(getter->errorString()),LOGERROR); m_dp->addItem(tr("Download error: %1").arg(getter->errorString()),LOGERROR);
m_dp->abort(); m_dp->abort();
emit done(true); emit done(false);
return; return;
} }
else m_dp->addItem(tr("Download finished."),LOGOK); else m_dp->addItem(tr("Download finished."),LOGOK);

View file

@ -56,7 +56,6 @@ signals:
private slots: private slots:
void updateDataReadProgress(int, int); void updateDataReadProgress(int, int);
void downloadDone(bool); void downloadDone(bool);
void downloadRequestFinished(int, bool);
void installStart(void); void installStart(void);
void installContinue(void); void installContinue(void);

View file

@ -60,10 +60,10 @@ bool TalkFileCreator::createTalkFiles(ProgressloggerInterface* logger)
connect(logger,SIGNAL(aborted()),this,SLOT(abort())); connect(logger,SIGNAL(aborted()),this,SLOT(abort()));
m_logger->setProgressMax(0); m_logger->setProgressMax(0);
QDirIterator::IteratorFlags flags = QDirIterator::NoIteratorFlags; QDirIterator::IteratorFlags flags = QDirIterator::NoIteratorFlags;
if(m_recursive) if(m_recursive)
flags = QDirIterator::Subdirectories; flags = QDirIterator::Subdirectories;
QDirIterator it(m_dir,flags); QDirIterator it(m_dir,flags);
QSettings installlog(m_mountpoint + "/.rockbox/rbutil.log", QSettings::IniFormat, 0); QSettings installlog(m_mountpoint + "/.rockbox/rbutil.log", QSettings::IniFormat, 0);
installlog.beginGroup("talkfiles"); installlog.beginGroup("talkfiles");
@ -141,6 +141,7 @@ bool TalkFileCreator::createTalkFiles(ProgressloggerInterface* logger)
m_logger->abort(); m_logger->abort();
m_tts->stop(); m_tts->stop();
m_enc->stop(); m_enc->stop();
return false; return false;
} }
QApplication::processEvents(); QApplication::processEvents();
@ -152,6 +153,7 @@ bool TalkFileCreator::createTalkFiles(ProgressloggerInterface* logger)
m_logger->abort(); m_logger->abort();
m_tts->stop(); m_tts->stop();
m_enc->stop(); m_enc->stop();
return false; return false;
} }
QApplication::processEvents(); QApplication::processEvents();

View file

@ -48,7 +48,7 @@ public:
void setStripExtensions(bool ov) {m_stripExtensions = ov;} void setStripExtensions(bool ov) {m_stripExtensions = ov;}
void setTalkFolders(bool ov) {m_talkFolders = ov;} void setTalkFolders(bool ov) {m_talkFolders = ov;}
void setTalkFiles(bool ov) {m_talkFiles = ov;} void setTalkFiles(bool ov) {m_talkFiles = ov;}
private slots: private slots:
void abort(); void abort();

View file

@ -130,7 +130,11 @@ bool TTSExes::voice(QString text,QString wavfile)
void TTSExes::showCfg() void TTSExes::showCfg()
{ {
#ifndef CONSOLE
TTSExesGui gui; TTSExesGui gui;
#else
TTSExesGuiCli gui;
#endif
gui.setCfg(settings); gui.setCfg(settings);
gui.showCfg(m_name); gui.showCfg(m_name);
} }
@ -270,7 +274,11 @@ bool TTSSapi::stop()
void TTSSapi::showCfg() void TTSSapi::showCfg()
{ {
#ifndef CONSOLE
TTSSapiGui gui(this); TTSSapiGui gui(this);
#else
TTSSapiGuiCli gui(this);
#endif
gui.setCfg(settings); gui.setCfg(settings);
gui.showCfg(); gui.showCfg();
} }

View file

@ -27,6 +27,8 @@
#ifndef CONSOLE #ifndef CONSOLE
#include "ttsgui.h" #include "ttsgui.h"
#else
#include "ttsguicli.h"
#endif #endif
class TTSBase; class TTSBase;

View file

@ -54,6 +54,7 @@ bool VoiceFileCreator::createVoiceFile(ProgressloggerInterface* logger)
{ {
m_logger->addItem(tr("failed to open rockbox-info.txt"),LOGERROR); m_logger->addItem(tr("failed to open rockbox-info.txt"),LOGERROR);
m_logger->abort(); m_logger->abort();
emit done(false);
return false; return false;
} }
@ -94,22 +95,12 @@ bool VoiceFileCreator::createVoiceFile(ProgressloggerInterface* logger)
getter->getFile(genlangUrl); getter->getFile(genlangUrl);
connect(getter, SIGNAL(done(bool)), this, SLOT(downloadDone(bool))); connect(getter, SIGNAL(done(bool)), this, SLOT(downloadDone(bool)));
connect(getter, SIGNAL(downloadDone(int, bool)), this, SLOT(downloadRequestFinished(int, bool)));
connect(getter, SIGNAL(dataReadProgress(int, int)), this, SLOT(updateDataReadProgress(int, int))); connect(getter, SIGNAL(dataReadProgress(int, int)), this, SLOT(updateDataReadProgress(int, int)));
connect(m_logger, SIGNAL(aborted()), getter, SLOT(abort())); connect(m_logger, SIGNAL(aborted()), getter, SLOT(abort()));
return true; return true;
} }
void VoiceFileCreator::downloadRequestFinished(int id, bool error)
{
qDebug() << "Install::downloadRequestFinished" << id << error;
qDebug() << "error:" << getter->errorString();
downloadDone(error);
}
void VoiceFileCreator::downloadDone(bool error) void VoiceFileCreator::downloadDone(bool error)
{ {
qDebug() << "Voice creator::downloadDone, error:" << error; qDebug() << "Voice creator::downloadDone, error:" << error;
@ -124,12 +115,14 @@ void VoiceFileCreator::downloadDone(bool error)
if(getter->httpResponse() != 200 && !getter->isCached()) { if(getter->httpResponse() != 200 && !getter->isCached()) {
m_logger->addItem(tr("Download error: received HTTP error %1.").arg(getter->httpResponse()),LOGERROR); m_logger->addItem(tr("Download error: received HTTP error %1.").arg(getter->httpResponse()),LOGERROR);
m_logger->abort(); m_logger->abort();
emit done(false);
return; return;
} }
if(getter->isCached()) m_logger->addItem(tr("Cached file used."), LOGINFO); if(getter->isCached()) m_logger->addItem(tr("Cached file used."), LOGINFO);
if(error) { if(error) {
m_logger->addItem(tr("Download error: %1").arg(getter->errorString()),LOGERROR); m_logger->addItem(tr("Download error: %1").arg(getter->errorString()),LOGERROR);
m_logger->abort(); m_logger->abort();
emit done(false);
return; return;
} }
else m_logger->addItem(tr("Download finished."),LOGOK); else m_logger->addItem(tr("Download finished."),LOGOK);
@ -143,6 +136,7 @@ void VoiceFileCreator::downloadDone(bool error)
{ {
m_logger->addItem(tr("failed to open downloaded file"),LOGERROR); m_logger->addItem(tr("failed to open downloaded file"),LOGERROR);
m_logger->abort(); m_logger->abort();
emit done(false);
return; return;
} }
@ -156,6 +150,7 @@ void VoiceFileCreator::downloadDone(bool error)
m_logger->addItem(errStr,LOGERROR); m_logger->addItem(errStr,LOGERROR);
m_logger->addItem(tr("Init of TTS engine failed"),LOGERROR); m_logger->addItem(tr("Init of TTS engine failed"),LOGERROR);
m_logger->abort(); m_logger->abort();
emit done(false);
return; return;
} }
@ -168,6 +163,7 @@ void VoiceFileCreator::downloadDone(bool error)
m_logger->addItem(tr("Init of Encoder engine failed"),LOGERROR); m_logger->addItem(tr("Init of Encoder engine failed"),LOGERROR);
m_tts->stop(); m_tts->stop();
m_logger->abort(); m_logger->abort();
emit done(false);
return; return;
} }
@ -210,6 +206,7 @@ void VoiceFileCreator::downloadDone(bool error)
m_logger->addItem(tr("The downloaded file was empty!"),LOGERROR); m_logger->addItem(tr("The downloaded file was empty!"),LOGERROR);
m_logger->abort(); m_logger->abort();
m_tts->stop(); m_tts->stop();
emit done(false);
return; return;
} }
@ -225,6 +222,7 @@ void VoiceFileCreator::downloadDone(bool error)
m_logger->addItem("aborted.",LOGERROR); m_logger->addItem("aborted.",LOGERROR);
m_logger->abort(); m_logger->abort();
m_tts->stop(); m_tts->stop();
emit done(false);
return; return;
} }
@ -269,13 +267,15 @@ void VoiceFileCreator::downloadDone(bool error)
{ {
m_logger->addItem(tr("Error opening downloaded file"),LOGERROR); m_logger->addItem(tr("Error opening downloaded file"),LOGERROR);
m_logger->abort(); m_logger->abort();
emit done(false);
return; return;
} }
FILE* output = fopen(QString(m_mountpoint + "/.rockbox/langs/" + m_lang + ".voice").toUtf8(), "wb"); FILE* output = fopen(QString(m_mountpoint + "/.rockbox/langs/" + m_lang + ".voice").toUtf8(), "wb");
if (output == NULL) if (output == NULL)
{ {
m_logger->addItem(tr("Error opening output file"),LOGERROR); m_logger->addItem(tr("Error opening output file"),LOGERROR);
emit done(false);
return; return;
} }
@ -290,7 +290,9 @@ void VoiceFileCreator::downloadDone(bool error)
m_logger->setProgressMax(100); m_logger->setProgressMax(100);
m_logger->setProgressValue(100); m_logger->setProgressValue(100);
m_logger->addItem(tr("successfully created."),LOGOK); m_logger->addItem(tr("successfully created."),LOGOK);
m_logger->abort(); m_logger->abort();
emit done(true);
} }
void VoiceFileCreator::updateDataReadProgress(int read, int total) void VoiceFileCreator::updateDataReadProgress(int read, int total)

View file

@ -53,9 +53,11 @@ public:
void setWavtrimThreshold(int th){m_wavtrimThreshold = th;} void setWavtrimThreshold(int th){m_wavtrimThreshold = th;}
void setProxy(QUrl proxy){m_proxy = proxy;} void setProxy(QUrl proxy){m_proxy = proxy;}
signals:
void done(bool error);
private slots: private slots:
void abort(); void abort();
void downloadRequestFinished(int id, bool error);
void downloadDone(bool error); void downloadDone(bool error);
void updateDataReadProgress(int read, int total); void updateDataReadProgress(int read, int total);