<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | <manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||||
package="com.googlecode.eyesfree.espeak" | |||||
package="com.reecedunn.espeak" | |||||
android:versionCode="7" | android:versionCode="7" | ||||
android:versionName="1.46.02_r7" > | android:versionName="1.46.02_r7" > | ||||
</activity> | </activity> | ||||
<provider | <provider | ||||
android:name="com.googlecode.eyesfree.espeak.providers.SettingsProvider" | |||||
android:authorities="com.googlecode.eyesfree.espeak.providers.SettingsProvider" /> | |||||
android:name="com.reecedunn.espeak.providers.SettingsProvider" | |||||
android:authorities="com.reecedunn.espeak.providers.SettingsProvider" /> | |||||
</application> | </application> | ||||
</manifest> | </manifest> |
} | } | ||||
JNIEXPORT jboolean | JNIEXPORT jboolean | ||||
JNICALL Java_com_googlecode_eyesfree_espeak_SpeechSynthesis_nativeClassInit( | |||||
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeClassInit( | |||||
JNIEnv* env, jclass clazz) { | JNIEnv* env, jclass clazz) { | ||||
if (DEBUG) LOGV("%s", __FUNCTION__); | if (DEBUG) LOGV("%s", __FUNCTION__); | ||||
METHOD_nativeSynthCallback = env->GetMethodID(clazz, "nativeSynthCallback", "([B)V"); | METHOD_nativeSynthCallback = env->GetMethodID(clazz, "nativeSynthCallback", "([B)V"); | ||||
} | } | ||||
JNIEXPORT jboolean | JNIEXPORT jboolean | ||||
JNICALL Java_com_googlecode_eyesfree_espeak_SpeechSynthesis_nativeCreate( | |||||
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeCreate( | |||||
JNIEnv *env, jobject object, jstring path) { | JNIEnv *env, jobject object, jstring path) { | ||||
if (DEBUG) LOGV("%s", __FUNCTION__); | if (DEBUG) LOGV("%s", __FUNCTION__); | ||||
native_data_t *nat = new native_data_t; | native_data_t *nat = new native_data_t; | ||||
} | } | ||||
JNIEXPORT jboolean | JNIEXPORT jboolean | ||||
JNICALL Java_com_googlecode_eyesfree_espeak_SpeechSynthesis_nativeDestroy( | |||||
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeDestroy( | |||||
JNIEnv *env, jobject object) { | JNIEnv *env, jobject object) { | ||||
if (DEBUG) LOGV("%s", __FUNCTION__); | if (DEBUG) LOGV("%s", __FUNCTION__); | ||||
native_data_t *nat = getNativeData(env, object); | native_data_t *nat = getNativeData(env, object); | ||||
} | } | ||||
JNIEXPORT jint | JNIEXPORT jint | ||||
JNICALL Java_com_googlecode_eyesfree_espeak_SpeechSynthesis_nativeGetSampleRate( | |||||
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeGetSampleRate( | |||||
JNIEnv *env, jobject object) { | JNIEnv *env, jobject object) { | ||||
if (DEBUG) LOGV("%s", __FUNCTION__); | if (DEBUG) LOGV("%s", __FUNCTION__); | ||||
const native_data_t *nat = getNativeData(env, object); | const native_data_t *nat = getNativeData(env, object); | ||||
} | } | ||||
JNIEXPORT jint | JNIEXPORT jint | ||||
JNICALL Java_com_googlecode_eyesfree_espeak_SpeechSynthesis_nativeGetChannelCount( | |||||
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeGetChannelCount( | |||||
JNIEnv *env, jobject object) { | JNIEnv *env, jobject object) { | ||||
if (DEBUG) LOGV("%s", __FUNCTION__); | if (DEBUG) LOGV("%s", __FUNCTION__); | ||||
const native_data_t *nat = getNativeData(env, object); | const native_data_t *nat = getNativeData(env, object); | ||||
} | } | ||||
JNIEXPORT jint | JNIEXPORT jint | ||||
JNICALL Java_com_googlecode_eyesfree_espeak_SpeechSynthesis_nativeGetAudioFormat( | |||||
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeGetAudioFormat( | |||||
JNIEnv *env, jobject object) { | JNIEnv *env, jobject object) { | ||||
if (DEBUG) LOGV("%s", __FUNCTION__); | if (DEBUG) LOGV("%s", __FUNCTION__); | ||||
const native_data_t *nat = getNativeData(env, object); | const native_data_t *nat = getNativeData(env, object); | ||||
} | } | ||||
JNIEXPORT jint | JNIEXPORT jint | ||||
JNICALL Java_com_googlecode_eyesfree_espeak_SpeechSynthesis_nativeGetBufferSizeInMillis( | |||||
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeGetBufferSizeInMillis( | |||||
JNIEnv *env, jobject object) { | JNIEnv *env, jobject object) { | ||||
if (DEBUG) LOGV("%s", __FUNCTION__); | if (DEBUG) LOGV("%s", __FUNCTION__); | ||||
const native_data_t *nat = getNativeData(env, object); | const native_data_t *nat = getNativeData(env, object); | ||||
} | } | ||||
JNIEXPORT jobjectArray | JNIEXPORT jobjectArray | ||||
JNICALL Java_com_googlecode_eyesfree_espeak_SpeechSynthesis_nativeGetAvailableVoices( | |||||
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeGetAvailableVoices( | |||||
JNIEnv *env, jobject object) { | JNIEnv *env, jobject object) { | ||||
if (DEBUG) LOGV("%s", __FUNCTION__); | if (DEBUG) LOGV("%s", __FUNCTION__); | ||||
} | } | ||||
JNIEXPORT jboolean | JNIEXPORT jboolean | ||||
JNICALL Java_com_googlecode_eyesfree_espeak_SpeechSynthesis_nativeSetVoiceByProperties( | |||||
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeSetVoiceByProperties( | |||||
JNIEnv *env, jobject object, jstring name, jstring languages, jint gender, jint age, | JNIEnv *env, jobject object, jstring name, jstring languages, jint gender, jint age, | ||||
jint variant) { | jint variant) { | ||||
const char *c_name = name ? env->GetStringUTFChars(name, NULL) : NULL; | const char *c_name = name ? env->GetStringUTFChars(name, NULL) : NULL; | ||||
} | } | ||||
JNIEXPORT jboolean | JNIEXPORT jboolean | ||||
JNICALL Java_com_googlecode_eyesfree_espeak_SpeechSynthesis_nativeSetRate( | |||||
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeSetRate( | |||||
JNIEnv *env, jobject object, jint rate) { | JNIEnv *env, jobject object, jint rate) { | ||||
const int wpm = ((float)rate / 100) * espeak_GetParameter(espeakRATE, 0); | const int wpm = ((float)rate / 100) * espeak_GetParameter(espeakRATE, 0); | ||||
if (DEBUG) LOGV("%s(rate=%d, wpm=%d)", __FUNCTION__, rate, wpm); | if (DEBUG) LOGV("%s(rate=%d, wpm=%d)", __FUNCTION__, rate, wpm); | ||||
} | } | ||||
JNIEXPORT jboolean | JNIEXPORT jboolean | ||||
JNICALL Java_com_googlecode_eyesfree_espeak_SpeechSynthesis_nativeSetPitch( | |||||
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeSetPitch( | |||||
JNIEnv *env, jobject object, jint pitch) { | JNIEnv *env, jobject object, jint pitch) { | ||||
// The values of pitch from android range from 50 - 200, with 100 being normal. | // The values of pitch from android range from 50 - 200, with 100 being normal. | ||||
// The values espeak supports are from 0 - 100, with 50 being normal. | // The values espeak supports are from 0 - 100, with 50 being normal. | ||||
} | } | ||||
JNIEXPORT jboolean | JNIEXPORT jboolean | ||||
JNICALL Java_com_googlecode_eyesfree_espeak_SpeechSynthesis_nativeSynthesize( | |||||
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeSynthesize( | |||||
JNIEnv *env, jobject object, jstring text) { | JNIEnv *env, jobject object, jstring text) { | ||||
if (DEBUG) LOGV("%s", __FUNCTION__); | if (DEBUG) LOGV("%s", __FUNCTION__); | ||||
native_data_t *nat = getNativeData(env, object); | native_data_t *nat = getNativeData(env, object); | ||||
} | } | ||||
JNIEXPORT jboolean | JNIEXPORT jboolean | ||||
JNICALL Java_com_googlecode_eyesfree_espeak_SpeechSynthesis_nativeStop( | |||||
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeStop( | |||||
JNIEnv *env, jobject object) { | JNIEnv *env, jobject object) { | ||||
if (DEBUG) LOGV("%s", __FUNCTION__); | if (DEBUG) LOGV("%s", __FUNCTION__); | ||||
espeak_Cancel(); | espeak_Cancel(); |
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||
<tts-engine | <tts-engine | ||||
xmlns:android="http://schemas.android.com/apk/res/android" | xmlns:android="http://schemas.android.com/apk/res/android" | ||||
android:settingsActivity="com.googlecode.eyesfree.espeak.TtsSettingsActivity" /> | |||||
android:settingsActivity="com.reecedunn.espeak.TtsSettingsActivity" /> |
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
package com.googlecode.eyesfree.espeak; | |||||
package com.reecedunn.espeak; | |||||
import android.app.Activity; | import android.app.Activity; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.speech.tts.TextToSpeech.Engine; | import android.speech.tts.TextToSpeech.Engine; | ||||
import android.util.Log; | import android.util.Log; | ||||
import com.googlecode.eyesfree.espeak.SpeechSynthesis.SynthReadyCallback; | |||||
import com.googlecode.eyesfree.espeak.SpeechSynthesis.Voice; | |||||
import com.reecedunn.espeak.SpeechSynthesis.SynthReadyCallback; | |||||
import com.reecedunn.espeak.SpeechSynthesis.Voice; | |||||
import java.io.File; | import java.io.File; | ||||
import java.util.ArrayList; | import java.util.ArrayList; |
/* | /* | ||||
* Copyright (C) 2009 The Android Open Source Project | * Copyright (C) 2009 The Android Open Source Project | ||||
* Copyright (C) 2012 Reece H. Dunn | |||||
* | * | ||||
* Licensed under the Apache License, Version 2.0 (the "License"); | * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
* you may not use this file except in compliance with the License. | * you may not use this file except in compliance with the License. | ||||
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
package com.googlecode.eyesfree.espeak; | |||||
package com.reecedunn.espeak; | |||||
import android.app.Activity; | import android.app.Activity; | ||||
import android.content.Context; | import android.content.Context; | ||||
import java.util.zip.ZipInputStream; | import java.util.zip.ZipInputStream; | ||||
public class DownloadVoiceData extends Activity { | public class DownloadVoiceData extends Activity { | ||||
public static final String BROADCAST_LANGUAGES_UPDATED = "com.googlecode.eyesfree.espeak.LANGUAGES_UPDATED"; | |||||
public static final String BROADCAST_LANGUAGES_UPDATED = "com.reecedunn.espeak.LANGUAGES_UPDATED"; | |||||
private AsyncExtract mAsyncExtract; | private AsyncExtract mAsyncExtract; | ||||
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
package com.googlecode.eyesfree.espeak; | |||||
package com.reecedunn.espeak; | |||||
import android.app.Activity; | import android.app.Activity; | ||||
import android.content.Intent; | import android.content.Intent; |
* API Version: 14 | * API Version: 14 | ||||
*/ | */ | ||||
package com.googlecode.eyesfree.espeak; | |||||
package com.reecedunn.espeak; | |||||
import android.content.Context; | import android.content.Context; | ||||
import android.speech.tts.TextToSpeech; | import android.speech.tts.TextToSpeech; |
* API Version: 14 | * API Version: 14 | ||||
*/ | */ | ||||
package com.googlecode.eyesfree.espeak; | |||||
package com.reecedunn.espeak; | |||||
import android.annotation.SuppressLint; | import android.annotation.SuppressLint; | ||||
import android.content.BroadcastReceiver; | import android.content.BroadcastReceiver; | ||||
import android.speech.tts.TextToSpeechService; | import android.speech.tts.TextToSpeechService; | ||||
import android.util.Log; | import android.util.Log; | ||||
import com.googlecode.eyesfree.espeak.SpeechSynthesis.SynthReadyCallback; | |||||
import com.googlecode.eyesfree.espeak.SpeechSynthesis.Voice; | |||||
import com.reecedunn.espeak.SpeechSynthesis.SynthReadyCallback; | |||||
import com.reecedunn.espeak.SpeechSynthesis.Voice; | |||||
import java.util.List; | import java.util.List; | ||||
import java.util.Locale; | import java.util.Locale; |
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
package com.googlecode.eyesfree.espeak; | |||||
package com.reecedunn.espeak; | |||||
import android.os.Bundle; | import android.os.Bundle; | ||||
import android.preference.ListPreference; | import android.preference.ListPreference; |
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
package com.googlecode.eyesfree.espeak; | |||||
package com.reecedunn.espeak; | |||||
import android.app.Activity; | import android.app.Activity; | ||||
import android.os.Bundle; | import android.os.Bundle; | ||||
* implementing TTS must be a file placed here: | * implementing TTS must be a file placed here: | ||||
* /data/data/<PACKAGE_NAME>/lib/libtts<ACTIVITY_NAME_LOWERCASED>.so | * /data/data/<PACKAGE_NAME>/lib/libtts<ACTIVITY_NAME_LOWERCASED>.so | ||||
* Example: | * Example: | ||||
* /data/data/com.googlecode.eyesfree.espeak/lib/libttsespeak.so | |||||
* /data/data/com.reecedunn.espeak/lib/libttsespeak.so | |||||
*/ | */ | ||||
public class eSpeak extends Activity { | public class eSpeak extends Activity { |
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
package com.googlecode.eyesfree.espeak; | |||||
package com.reecedunn.espeak; | |||||
import android.app.Activity; | import android.app.Activity; | ||||
import android.app.AlertDialog; | import android.app.AlertDialog; |
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
package com.googlecode.eyesfree.espeak.providers; | |||||
package com.reecedunn.espeak.providers; | |||||
import com.googlecode.eyesfree.espeak.CheckVoiceData; | |||||
import com.reecedunn.espeak.CheckVoiceData; | |||||
import android.content.ContentProvider; | import android.content.ContentProvider; | ||||
import android.content.ContentValues; | import android.content.ContentValues; |