tts_sapi5.cpp

来自「Powerful and Portable GPS application --」· C++ 代码 · 共 129 行

CPP
129
字号
/* *  Roadnav *  TTS_SAPI5.cpp * *  Copyright (c) 2004 - 2007 Richard L. Lynch <rllynch@users.sourceforge.net> * *  This program is free software; you can redistribute it and/or *  modify it under the terms of version 2 of the GNU General Public License *  as published by the Free Software Foundation. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA *////////////////////////////////////////////////////////////////////////////////// \file////// Text to speech functions using Microsoft SAPI 5/////////////////////////////////////////////////////////////////////////////////#ifdef HAVE_CONFIG_H#  include <config.h>#endif#ifdef _MSC_VER#pragma warning(disable: 4786)#endif#ifdef USE_SAPI5#include <wx/wx.h>#include "TTS_SAPI5.h"//////////////////////////////////////////////////////////////////////////////////// \brief Initialize TTS/////////////////////////////////////////////////////////////////////////////////TTS_SAPI5::TTS_SAPI5(){	m_cpVoice = NULL;		if (FAILED(m_cpVoice.CoCreateInstance(CLSID_SpVoice)))	{		m_strLastError = wxT("Error initializing Microsoft SAPI 5");		return;	}}//////////////////////////////////////////////////////////////////////////////////// \brief Clean up TTS/////////////////////////////////////////////////////////////////////////////////TTS_SAPI5::~TTS_SAPI5(){	if (m_cpVoice)		m_cpVoice.Release();	m_cpVoice = NULL;}//////////////////////////////////////////////////////////////////////////////////// \brief Name of this TTS engine/////////////////////////////////////////////////////////////////////////////////wxString TTS_SAPI5::Name(){	return wxT("Microsoft SAPI 5");}//////////////////////////////////////////////////////////////////////////////////// \brief Say some stuff using TTS/////////////////////////////////////////////////////////////////////////////////ITTS::ETTSStatus TTS_SAPI5::Speak(const wxString & strText){	if (!m_cpVoice)	{		// not initialized (MS SAPI 5 probably not installed)		return ITTS::TTSErrorDisableGPS;	}	m_cpVoice->Speak(strText.wc_str(*wxConvCurrent), 0, NULL);	return ITTS::TTSStatusOK;}//////////////////////////////////////////////////////////////////////////////////// \brief Retrieve last error message/////////////////////////////////////////////////////////////////////////////////wxString TTS_SAPI5::GetLastError(){	return m_strLastError;}//////////////////////////////////////////////////////////////////////////////////// \brief Retrieve engine status/////////////////////////////////////////////////////////////////////////////////ITTS::ETTSStatus TTS_SAPI5::GetStatus(){	if (!m_cpVoice)	{		// not initialized (MS SAPI 5 probably not installed)		return ITTS::TTSErrorDisableGPS;	}	return ITTS::TTSStatusOK;}#endif // #ifdef USE_SAPI5

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?