From 469a614349070eb5731acf96988186b2a95493ad Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Sun, 9 Sep 2012 11:26:11 +0200 Subject: [PATCH] Add derived SAPI4 class. Based on the previous change add a derived class for SAPI4 support. Note that SAPI4 support had been disabled, so it's also disabled to not show in the selection dialog for now. Change-Id: Iffda7daafd9327ef8821c4fe4b1b0fc581607f49 --- rbutil/rbutilqt/base/ttsbase.cpp | 34 +++++++++++++------------------ rbutil/rbutilqt/base/ttssapi4.h | 44 ++++++++++++++++++++++++++++++++++++++++ rbutil/rbutilqt/rbutilqt.pri | 1 + 3 files changed, 59 insertions(+), 20 deletions(-) create mode 100644 rbutil/rbutilqt/base/ttssapi4.h diff --git a/rbutil/rbutilqt/base/ttsbase.cpp b/rbutil/rbutilqt/base/ttsbase.cpp index 9cc12fb586..5955f825b4 100644 --- a/rbutil/rbutilqt/base/ttsbase.cpp +++ b/rbutil/rbutilqt/base/ttsbase.cpp @@ -20,6 +20,7 @@ #include "ttsfestival.h" #include "ttssapi.h" +#include "ttssapi4.h" #include "ttsexes.h" #if defined(Q_OS_MACX) #include "ttscarbon.h" @@ -42,7 +43,10 @@ void TTSBase::initTTSList() ttsList["flite"] = tr("Flite TTS Engine"); ttsList["swift"] = tr("Swift TTS Engine"); #if defined(Q_OS_WIN) - ttsList["sapi"] = tr("SAPI TTS Engine"); +#if 0 /* SAPI4 has been disabled since long. Keep support for now. */ + ttsList["sapi4"] = tr("SAPI4 TTS Engine"); +#endif + ttsList["sapi"] = tr("SAPI5 TTS Engine"); #endif #if defined(Q_OS_LINUX) ttsList["festival"] = tr("Festival TTS Engine"); @@ -56,36 +60,26 @@ void TTSBase::initTTSList() TTSBase* TTSBase::getTTS(QObject* parent,QString ttsName) { - TTSBase* tts; + TTSBase* tts = 0; #if defined(Q_OS_WIN) if(ttsName == "sapi") - { tts = new TTSSapi(parent); - return tts; - } + else if (ttsName == "sapi4") + tts = new TTSSapi4(parent); else -#endif -#if defined(Q_OS_LINUX) +#elif defined(Q_OS_LINUX) if (ttsName == "festival") - { tts = new TTSFestival(parent); - return tts; - } else -#endif -#if defined(Q_OS_MACX) +#elif defined(Q_OS_MACX) if(ttsName == "carbon") - { tts = new TTSCarbon(parent); - return tts; - } else #endif - if (true) // fix for OS other than WIN or LINUX - { - tts = new TTSExes(ttsName,parent); - return tts; - } + // fix for OS other than WIN or LINUX + if (true) + tts = new TTSExes(ttsName, parent); + return tts; } // get the list of encoders, nice names diff --git a/rbutil/rbutilqt/base/ttssapi4.h b/rbutil/rbutilqt/base/ttssapi4.h new file mode 100644 index 0000000000..bcfb036107 --- /dev/null +++ b/rbutil/rbutilqt/base/ttssapi4.h @@ -0,0 +1,44 @@ +/*************************************************************************** +* __________ __ ___. +* Open \______ \ ____ ____ | | _\_ |__ _______ ___ +* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / +* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < +* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ +* \/ \/ \/ \/ \/ +* +* Copyright (C) 2012 by Dominik Riebeling +* +* 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 TTSSAPI4_H +#define TTSSAPI4_H + +#include "ttsbase.h" +#include "ttssapi.h" + +class TTSSapi4: public TTSSapi +{ + //! Enum to identify the settings + Q_OBJECT + public: + TTSSapi4(QObject* parent=NULL) + { + m_TTSTemplate = "cscript //nologo \"%exe\" " + "/language:%lang /voice:\"%voice\" " + "/speed:%speed \"%options\" /sapi4"; + m_TTSVoiceTemplate = "cscript //nologo \"%exe\" " + "/language:%lang /listvoices /sapi4"; + m_TTSType = "sapi4"; + } + +}; + +#endif diff --git a/rbutil/rbutilqt/rbutilqt.pri b/rbutil/rbutilqt/rbutilqt.pri index 141c5eea75..b6aac3bb43 100644 --- a/rbutil/rbutilqt/rbutilqt.pri +++ b/rbutil/rbutilqt/rbutilqt.pri @@ -113,6 +113,7 @@ HEADERS += \ base/ttsexes.h \ base/ttsfestival.h \ base/ttssapi.h \ + base/ttssapi4.h \ ../../tools/wavtrim.h \ ../../tools/voicefont.h \ base/voicefile.h \ -- 2.11.4.GIT