diff options
Diffstat (limited to 'navit/speech/android/speech_android.c')
-rw-r--r-- | navit/speech/android/speech_android.c | 123 |
1 files changed, 60 insertions, 63 deletions
diff --git a/navit/speech/android/speech_android.c b/navit/speech/android/speech_android.c index 901abbc26..2936fa64a 100644 --- a/navit/speech/android/speech_android.c +++ b/navit/speech/android/speech_android.c @@ -27,88 +27,85 @@ #include "speech.h" struct speech_priv { - jclass NavitSpeechClass; - jobject NavitSpeech; - jmethodID NavitSpeech_say; - int flags; + jclass NavitSpeechClass; + jobject NavitSpeech; + jmethodID NavitSpeech_say; + int flags; }; -static int -speech_android_say(struct speech_priv *this, const char *text) -{ - char *str=g_strdup(text); - jstring string; - int i; - - string = (*jnienv)->NewStringUTF(jnienv, str); - dbg(lvl_debug,"enter %s",str); - (*jnienv)->CallVoidMethod(jnienv, this->NavitSpeech, this->NavitSpeech_say, string); - (*jnienv)->DeleteLocalRef(jnienv, string); - g_free(str); +static int +speech_android_say(struct speech_priv *this, const char *text) { + char *str=g_strdup(text); + jstring string; + int i; + + string = (*jnienv)->NewStringUTF(jnienv, str); + dbg(lvl_debug,"enter %s",str); + (*jnienv)->CallVoidMethod(jnienv, this->NavitSpeech, this->NavitSpeech_say, string); + (*jnienv)->DeleteLocalRef(jnienv, string); + g_free(str); - return 1; + return 1; } -static void +static void speech_android_destroy(struct speech_priv *this) { - g_free(this); + g_free(this); } static struct speech_methods speech_android_meth = { - speech_android_destroy, - speech_android_say, + speech_android_destroy, + speech_android_say, }; static int -speech_android_init(struct speech_priv *ret) -{ - jmethodID cid; - char *class="org/navitproject/navit/NavitSpeech2"; +speech_android_init(struct speech_priv *ret) { + jmethodID cid; + char *class="org/navitproject/navit/NavitSpeech2"; - if (!android_find_class_global(class, &ret->NavitSpeechClass)) { - dbg(lvl_error,"No class found"); - return 0; - } - dbg(lvl_debug,"at 3"); - cid = (*jnienv)->GetMethodID(jnienv, ret->NavitSpeechClass, "<init>", "(Lorg/navitproject/navit/Navit;)V"); - if (cid == NULL) { - dbg(lvl_error,"no method found"); - return 0; /* exception thrown */ - } - if (!android_find_method(ret->NavitSpeechClass, "say", "(Ljava/lang/String;)V", &ret->NavitSpeech_say)) - return 0; - dbg(lvl_debug,"at 4 android_activity=%p",android_activity); - ret->NavitSpeech=(*jnienv)->NewObject(jnienv, ret->NavitSpeechClass, cid, android_activity); - dbg(lvl_debug,"result=%p",ret->NavitSpeech); - if (!ret->NavitSpeech) - return 0; - if (ret->NavitSpeech) - ret->NavitSpeech = (*jnienv)->NewGlobalRef(jnienv, ret->NavitSpeech); - return 1; + if (!android_find_class_global(class, &ret->NavitSpeechClass)) { + dbg(lvl_error,"No class found"); + return 0; + } + dbg(lvl_debug,"at 3"); + cid = (*jnienv)->GetMethodID(jnienv, ret->NavitSpeechClass, "<init>", "(Lorg/navitproject/navit/Navit;)V"); + if (cid == NULL) { + dbg(lvl_error,"no method found"); + return 0; /* exception thrown */ + } + if (!android_find_method(ret->NavitSpeechClass, "say", "(Ljava/lang/String;)V", &ret->NavitSpeech_say)) + return 0; + dbg(lvl_debug,"at 4 android_activity=%p",android_activity); + ret->NavitSpeech=(*jnienv)->NewObject(jnienv, ret->NavitSpeechClass, cid, android_activity); + dbg(lvl_debug,"result=%p",ret->NavitSpeech); + if (!ret->NavitSpeech) + return 0; + if (ret->NavitSpeech) + ret->NavitSpeech = (*jnienv)->NewGlobalRef(jnienv, ret->NavitSpeech); + return 1; } static struct speech_priv * speech_android_new(struct speech_methods *meth, struct attr **attrs, struct attr *parent) { - struct speech_priv *this; - struct attr *flags; - *meth=speech_android_meth; - this=g_new0(struct speech_priv,1); - if (android_version < 4) - this->flags=3; - if (!speech_android_init(this)) { - dbg(lvl_error,"Failed to init speech %p",this->NavitSpeechClass); - g_free(this); - this=NULL; - } - if ((flags = attr_search(attrs, NULL, attr_flags))) - this->flags=flags->u.num; - - return this; + struct speech_priv *this; + struct attr *flags; + *meth=speech_android_meth; + this=g_new0(struct speech_priv,1); + if (android_version < 4) + this->flags=3; + if (!speech_android_init(this)) { + dbg(lvl_error,"Failed to init speech %p",this->NavitSpeechClass); + g_free(this); + this=NULL; + } + if ((flags = attr_search(attrs, NULL, attr_flags))) + this->flags=flags->u.num; + + return this; } void -plugin_init(void) -{ - plugin_register_category_speech("android", speech_android_new); +plugin_init(void) { + plugin_register_category_speech("android", speech_android_new); } |