From f45a01b8e0ea094a7629b8ea7ac709022adf7ed3 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Sun, 16 Dec 2012 18:05:12 +0000 Subject: [PATCH] espeakengine: correctly implement TtsEngine::setAudioFormat. --- android/jni/jni/espeakengine.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/android/jni/jni/espeakengine.cpp b/android/jni/jni/espeakengine.cpp index 273e6613..f9454795 100644 --- a/android/jni/jni/espeakengine.cpp +++ b/android/jni/jni/espeakengine.cpp @@ -129,6 +129,7 @@ char currentLang[10]; char currentCountry[10]; char currentVariant[10]; +int sampleRate = 0; bool hasInitialized = false; /* Functions internal to the eSpeak engine wrapper */ @@ -200,7 +201,7 @@ tts_result attemptInit() { // TODO Make sure that the speech data is loaded in // the directory /sdcard/espeak-data before calling this. - int sampleRate = espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS, 4096, eSpeakDataPath, 0); + sampleRate = espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS, 4096, eSpeakDataPath, 0); if (sampleRate <= 0) { LOGE("eSpeak initialization failed!"); @@ -448,7 +449,9 @@ tts_result TtsEngine::getLanguage(char *language, char *country, char *variant) tts_result TtsEngine::setAudioFormat(tts_audio_format& encoding, uint32_t& rate, int& channels) { LOGE("setAudioFormat(%d, %d, %d) is unsupported", encoding, rate, channels); - // TODO: Fix this! + encoding = TTS_AUDIO_FORMAT_PCM_16_BIT; + rate = sampleRate; + channels = 1; return TTS_SUCCESS; }