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
This commit is contained in:
Dominik Riebeling 2012-09-09 11:26:11 +02:00
parent 6be7dabdd9
commit 469a614349
3 changed files with 59 additions and 20 deletions

View file

@ -20,6 +20,7 @@
#include "ttsfestival.h" #include "ttsfestival.h"
#include "ttssapi.h" #include "ttssapi.h"
#include "ttssapi4.h"
#include "ttsexes.h" #include "ttsexes.h"
#if defined(Q_OS_MACX) #if defined(Q_OS_MACX)
#include "ttscarbon.h" #include "ttscarbon.h"
@ -42,7 +43,10 @@ void TTSBase::initTTSList()
ttsList["flite"] = tr("Flite TTS Engine"); ttsList["flite"] = tr("Flite TTS Engine");
ttsList["swift"] = tr("Swift TTS Engine"); ttsList["swift"] = tr("Swift TTS Engine");
#if defined(Q_OS_WIN) #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 #endif
#if defined(Q_OS_LINUX) #if defined(Q_OS_LINUX)
ttsList["festival"] = tr("Festival TTS Engine"); ttsList["festival"] = tr("Festival TTS Engine");
@ -56,36 +60,26 @@ void TTSBase::initTTSList()
TTSBase* TTSBase::getTTS(QObject* parent,QString ttsName) TTSBase* TTSBase::getTTS(QObject* parent,QString ttsName)
{ {
TTSBase* tts; TTSBase* tts = 0;
#if defined(Q_OS_WIN) #if defined(Q_OS_WIN)
if(ttsName == "sapi") if(ttsName == "sapi")
{
tts = new TTSSapi(parent); tts = new TTSSapi(parent);
return tts; else if (ttsName == "sapi4")
} tts = new TTSSapi4(parent);
else else
#endif #elif defined(Q_OS_LINUX)
#if defined(Q_OS_LINUX)
if (ttsName == "festival") if (ttsName == "festival")
{
tts = new TTSFestival(parent); tts = new TTSFestival(parent);
return tts;
}
else else
#endif #elif defined(Q_OS_MACX)
#if defined(Q_OS_MACX)
if(ttsName == "carbon") if(ttsName == "carbon")
{
tts = new TTSCarbon(parent); tts = new TTSCarbon(parent);
return tts;
}
else else
#endif #endif
if (true) // fix for OS other than WIN or LINUX // fix for OS other than WIN or LINUX
{ if (true)
tts = new TTSExes(ttsName,parent); tts = new TTSExes(ttsName, parent);
return tts; return tts;
}
} }
// get the list of encoders, nice names // get the list of encoders, nice names

View file

@ -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

View file

@ -113,6 +113,7 @@ HEADERS += \
base/ttsexes.h \ base/ttsexes.h \
base/ttsfestival.h \ base/ttsfestival.h \
base/ttssapi.h \ base/ttssapi.h \
base/ttssapi4.h \
../../tools/wavtrim.h \ ../../tools/wavtrim.h \
../../tools/voicefont.h \ ../../tools/voicefont.h \
base/voicefile.h \ base/voicefile.h \