|
|
|
|
|
|
|
|
JNIEXPORT jboolean |
|
|
JNIEXPORT jboolean |
|
|
JNICALL Java_com_reecedunn_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 [env=%p, object=%p]", __FUNCTION__, env, object); |
|
|
native_data_t *nat = new native_data_t; |
|
|
native_data_t *nat = new native_data_t; |
|
|
|
|
|
|
|
|
if (nat == NULL) { |
|
|
if (nat == NULL) { |
|
|
|
|
|
|
|
|
JNIEXPORT jboolean |
|
|
JNIEXPORT jboolean |
|
|
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeDestroy( |
|
|
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeDestroy( |
|
|
JNIEnv *env, jobject object) { |
|
|
JNIEnv *env, jobject object) { |
|
|
if (DEBUG) LOGV("%s", __FUNCTION__); |
|
|
|
|
|
native_data_t *nat = getNativeData(env, object); |
|
|
|
|
|
|
|
|
|
|
|
env->DeleteWeakGlobalRef(nat->object); |
|
|
|
|
|
|
|
|
if (DEBUG) LOGV("%s [env=%p, object=%p]", __FUNCTION__, env, object); |
|
|
|
|
|
|
|
|
delete nat; |
|
|
|
|
|
|
|
|
native_data_t *nat = getNativeData(env, object); |
|
|
|
|
|
if (nat) { |
|
|
|
|
|
env->DeleteWeakGlobalRef(nat->object); |
|
|
|
|
|
delete nat; |
|
|
|
|
|
} else { |
|
|
|
|
|
env->DeleteWeakGlobalRef(object); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
return JNI_TRUE; |
|
|
return JNI_TRUE; |
|
|
} |
|
|
} |