diff options
author | Dominik Wenger <domonoky@googlemail.com> | 2009-06-26 20:40:51 +0000 |
---|---|---|
committer | Dominik Wenger <domonoky@googlemail.com> | 2009-06-26 20:40:51 +0000 |
commit | 20bf8aaf181dc5f24bad2628953c4d53782533cb (patch) | |
tree | 640787672cbe49dbbb23b8322d5a90595c2edf06 /rbutil/rbutilqt/base/talkgenerator.h | |
parent | 73d25744fb01844cc28402dfc4b48a030d270579 (diff) | |
download | rockbox-20bf8aaf181dc5f24bad2628953c4d53782533cb.tar.gz rockbox-20bf8aaf181dc5f24bad2628953c4d53782533cb.zip |
rbutil: improve voice and talk generation.
- introduce a talkgenerator to better share code between voice and talk generation.
- name intermediate .talkfiles after the md5sum of the text. (prevents naming problems).
- do not directly use the logger, instead emit signals.
- move talkfile and voicefile generation to base/
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21524 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/rbutilqt/base/talkgenerator.h')
-rw-r--r-- | rbutil/rbutilqt/base/talkgenerator.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/rbutil/rbutilqt/base/talkgenerator.h b/rbutil/rbutilqt/base/talkgenerator.h new file mode 100644 index 0000000000..eb08df8d51 --- /dev/null +++ b/rbutil/rbutilqt/base/talkgenerator.h @@ -0,0 +1,78 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * + * Copyright (C) 2007 by Dominik Wenger + * $Id$ + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + + +#ifndef TALKGENERATOR_H +#define TALKGENERATOR_H + +#include <QtCore> +#include "progressloggerinterface.h" + +#include "encoders.h" +#include "tts.h" + +//! \brief Talk generator, generates .wav and .talk files out of a list. +class TalkGenerator :public QObject +{ + Q_OBJECT +public: + enum Status + { + eOK, + eWARNING, + eERROR + }; + + struct TalkEntry + { + QString toSpeak; + QString wavfilename; + QString talkfilename; + QString target; + bool voiced; + bool encoded; + }; + + TalkGenerator(QObject* parent); + + Status process(QList<TalkEntry>* list,int wavtrimth = -1); + +public slots: + void abort(); + +signals: + void done(bool); + void logItem(QString, int); //! set logger item + void logProgress(int, int); //! set progress bar. + +private: + Status voiceList(QList<TalkEntry>* list,int wavetrimth); + Status encodeList(QList<TalkEntry>* list); + + TTSBase* m_tts; + EncBase* m_enc; + + bool m_abort; +}; + + +#endif + |