Lines Matching defs:env
171 JNISoundTriggerCallback(JNIEnv* env, jobject thiz, jobject weak_thiz);
184 JNISoundTriggerCallback::JNISoundTriggerCallback(JNIEnv* env, jobject thiz, jobject weak_thiz)
189 jclass clazz = env->GetObjectClass(thiz);
194 mClass = (jclass)env->NewGlobalRef(clazz);
198 mObject = env->NewGlobalRef(weak_thiz);
204 JNIEnv *env = AndroidRuntime::getJNIEnv();
205 env->DeleteGlobalRef(mObject);
206 env->DeleteGlobalRef(mClass);
211 JNIEnv *env = AndroidRuntime::getJNIEnv();
216 jData = env->NewByteArray(event->data_size);
217 jbyte *nData = env->GetByteArrayElements(jData, NULL);
219 env->ReleaseByteArrayElements(jData, nData, 0);
224 jAudioFormat = env->NewObject(gAudioFormatClass,
235 jobjectArray jExtras = env->NewObjectArray(phraseEvent->num_phrases,
242 jobjectArray jConfidenceLevels = env->NewObjectArray(
250 jobject jConfidenceLevel = env->NewObject(gConfidenceLevelClass,
254 env->SetObjectArrayElement(jConfidenceLevels, j, jConfidenceLevel);
255 env->DeleteLocalRef(jConfidenceLevel);
258 jobject jNewExtra = env->NewObject(gKeyphraseRecognitionExtraClass,
268 env->SetObjectArrayElement(jExtras, i, jNewExtra);
269 env->DeleteLocalRef(jNewExtra);
270 env->DeleteLocalRef(jConfidenceLevels);
272 jEvent = env->NewObject(gKeyphraseRecognitionEventClass, gKeyphraseRecognitionEventCstor,
277 env->DeleteLocalRef(jExtras);
279 jEvent = env->NewObject(gGenericRecognitionEventClass, gGenericRecognitionEventCstor,
285 jEvent = env->NewObject(gRecognitionEventClass, gRecognitionEventCstor,
293 env->DeleteLocalRef(jAudioFormat);
296 env->DeleteLocalRef(jData);
299 env->CallStaticVoidMethod(mClass, gPostEventFromNative, mObject,
302 env->DeleteLocalRef(jEvent);
303 if (env->ExceptionCheck()) {
305 env->ExceptionClear();
311 JNIEnv *env = AndroidRuntime::getJNIEnv();
316 jData = env->NewByteArray(event->data_size);
317 jbyte *nData = env->GetByteArrayElements(jData, NULL);
319 env->ReleaseByteArrayElements(jData, nData, 0);
322 jEvent = env->NewObject(gSoundModelEventClass, gSoundModelEventCstor,
325 env->DeleteLocalRef(jData);
326 env->CallStaticVoidMethod(mClass, gPostEventFromNative, mObject,
328 env->DeleteLocalRef(jEvent);
329 if (env->ExceptionCheck()) {
331 env->ExceptionClear();
337 JNIEnv *env = AndroidRuntime::getJNIEnv();
338 env->CallStaticVoidMethod(mClass, gPostEventFromNative, mObject,
340 if (env->ExceptionCheck()) {
342 env->ExceptionClear();
348 JNIEnv *env = AndroidRuntime::getJNIEnv();
350 env->CallStaticVoidMethod(mClass, gPostEventFromNative, mObject,
352 if (env->ExceptionCheck()) {
354 env->ExceptionClear();
360 static sp<SoundTrigger> getSoundTrigger(JNIEnv* env, jobject thiz)
363 SoundTrigger* const st = (SoundTrigger*)env->GetLongField(thiz,
368 static sp<SoundTrigger> setSoundTrigger(JNIEnv* env, jobject thiz, const sp<SoundTrigger>& module)
371 sp<SoundTrigger> old = (SoundTrigger*)env->GetLongField(thiz,
379 env->SetLongField(thiz, gModuleFields.mNativeContext, (jlong)module.get());
385 android_hardware_SoundTrigger_listModules(JNIEnv *env, jobject clazz,
394 if (!env->IsInstanceOf(jModules, gArrayListClass)) {
420 jstring implementor = env->NewStringUTF(nModules[i].properties.implementor);
421 jstring description = env->NewStringUTF(nModules[i].properties.description);
425 jstring uuid = env->NewStringUTF(str);
431 jobject newModuleDesc = env->NewObject(gModulePropertiesClass, gModulePropertiesCstor,
445 env->DeleteLocalRef(implementor);
446 env->DeleteLocalRef(description);
447 env->DeleteLocalRef(uuid);
452 env->CallBooleanMethod(jModules, gArrayListMethods.add, newModuleDesc);
461 android_hardware_SoundTrigger_setup(JNIEnv *env, jobject thiz, jobject weak_this)
465 sp<JNISoundTriggerCallback> callback = new JNISoundTriggerCallback(env, thiz, weak_this);
468 (sound_trigger_module_handle_t)env->GetIntField(thiz, gModuleFields.mId);
475 setSoundTrigger(env, thiz, module);
479 android_hardware_SoundTrigger_detach(JNIEnv *env, jobject thiz)
482 sp<SoundTrigger> module = setSoundTrigger(env, thiz, 0);
491 android_hardware_SoundTrigger_finalize(JNIEnv *env, jobject thiz)
494 sp<SoundTrigger> module = getSoundTrigger(env, thiz);
498 android_hardware_SoundTrigger_detach(env, thiz);
502 android_hardware_SoundTrigger_loadSoundModel(JNIEnv *env, jobject thiz,
518 sp<SoundTrigger> module = getSoundTrigger(env, thiz);
525 jsize jHandleLen = env->GetArrayLength(jHandle);
529 jint *nHandle = env->GetIntArrayElements(jHandle, NULL);
533 if (!env->IsInstanceOf(jSoundModel, gSoundModelClass)) {
539 if (env->IsInstanceOf(jSoundModel, gKeyphraseSoundModelClass)) {
542 } else if (env->IsInstanceOf(jSoundModel, gGenericSoundModelClass)) {
550 jUuid = env->GetObjectField(jSoundModel, gSoundModelFields.uuid);
551 jUuidString = (jstring)env->CallObjectMethod(jUuid, gUUIDMethods.toString);
552 nUuidString = env->GetStringUTFChars(jUuidString, NULL);
555 env->ReleaseStringUTFChars(jUuidString, nUuidString);
556 env->DeleteLocalRef(jUuidString);
559 jUuid = env->GetObjectField(jSoundModel, gSoundModelFields.vendorUuid);
561 jUuidString = (jstring)env->CallObjectMethod(jUuid, gUUIDMethods.toString);
562 nUuidString = env->GetStringUTFChars(jUuidString, NULL);
564 env->ReleaseStringUTFChars(jUuidString, nUuidString);
565 env->DeleteLocalRef(jUuidString);
570 jData = (jbyteArray)env->GetObjectField(jSoundModel, gSoundModelFields.data);
575 size = env->GetArrayLength(jData);
577 nData = env->GetByteArrayElements(jData, NULL);
607 (jobjectArray)env->GetObjectField(jSoundModel, gKeyphraseSoundModelFields.keyphrases);
613 size_t numPhrases = env->GetArrayLength(jPhrases);
617 jobject jPhrase = env->GetObjectArrayElement(jPhrases, i);
619 env->GetIntField(jPhrase,gKeyphraseFields.id);
621 env->GetIntField(jPhrase,gKeyphraseFields.recognitionModes);
623 jintArray jUsers = (jintArray)env->GetObjectField(jPhrase, gKeyphraseFields.users);
624 phraseModel->phrases[i].num_users = env->GetArrayLength(jUsers);
625 jint *nUsers = env->GetIntArrayElements(jUsers, NULL);
629 env->ReleaseIntArrayElements(jUsers, nUsers, 0);
630 env->DeleteLocalRef(jUsers);
632 jstring jLocale = (jstring)env->GetObjectField(jPhrase, gKeyphraseFields.locale);
633 const char *nLocale = env->GetStringUTFChars(jLocale, NULL);
637 jstring jText = (jstring)env->GetObjectField(jPhrase, gKeyphraseFields.text);
638 const char *nText = env->GetStringUTFChars(jText, NULL);
643 env->ReleaseStringUTFChars(jLocale, nLocale);
644 env->DeleteLocalRef(jLocale);
645 env->ReleaseStringUTFChars(jText, nText);
646 env->DeleteLocalRef(jText);
649 env->DeleteLocalRef(jPhrase);
651 env->DeleteLocalRef(jPhrases);
661 env->ReleaseIntArrayElements(jHandle, nHandle, NULL);
664 env->ReleaseByteArrayElements(jData, nData, NULL);
670 android_hardware_SoundTrigger_unloadSoundModel(JNIEnv *env, jobject thiz,
675 sp<SoundTrigger> module = getSoundTrigger(env, thiz);
685 android_hardware_SoundTrigger_startRecognition(JNIEnv *env, jobject thiz,
690 sp<SoundTrigger> module = getSoundTrigger(env, thiz);
695 if (!env->IsInstanceOf(jConfig, gRecognitionConfigClass)) {
699 jbyteArray jData = (jbyteArray)env->GetObjectField(jConfig, gRecognitionConfigFields.data);
703 dataSize = env->GetArrayLength(jData);
707 nData = env->GetByteArrayElements(jData, NULL);
727 env->ReleaseByteArrayElements(jData, nData, 0);
729 env->DeleteLocalRef(jData);
734 config->capture_requested = env->GetBooleanField(jConfig,
739 (jobjectArray)env->GetObjectField(jConfig, gRecognitionConfigFields.keyphrases);
741 config->num_phrases = env->GetArrayLength(jPhrases);
745 jobject jPhrase = env->GetObjectArrayElement(jPhrases, i);
746 config->phrases[i].id = env->GetIntField(jPhrase,
748 config->phrases[i].recognition_modes = env->GetIntField(jPhrase,
750 config->phrases[i].confidence_level = env->GetIntField(jPhrase,
753 jobjectArray jConfidenceLevels = (jobjectArray)env->GetObjectField(jPhrase,
756 config->phrases[i].num_levels = env->GetArrayLength(jConfidenceLevels);
760 jobject jConfidenceLevel = env->GetObjectArrayElement(jConfidenceLevels, j);
761 config->phrases[i].levels[j].user_id = env->GetIntField(jConfidenceLevel,
763 config->phrases[i].levels[j].level = env->GetIntField(jConfidenceLevel,
765 env->DeleteLocalRef(jConfidenceLevel);
768 env->DeleteLocalRef(jConfidenceLevels);
769 env->DeleteLocalRef(jPhrase);
771 env->DeleteLocalRef(jPhrases);
778 android_hardware_SoundTrigger_stopRecognition(JNIEnv *env, jobject thiz,
783 sp<SoundTrigger> module = getSoundTrigger(env, thiz);
822 int register_android_hardware_SoundTrigger(JNIEnv *env)
824 jclass arrayListClass = FindClassOrDie(env, "java/util/ArrayList");
825 gArrayListClass = MakeGlobalRefOrDie(env, arrayListClass);
826 gArrayListMethods.add = GetMethodIDOrDie(env, arrayListClass, "add", "(Ljava/lang/Object;)Z");
828 jclass uuidClass = FindClassOrDie(env, "java/util/UUID");
829 gUUIDClass = MakeGlobalRefOrDie(env, uuidClass);
830 gUUIDMethods.toString = GetMethodIDOrDie(env, uuidClass, "toString", "()Ljava/lang/String;");
832 jclass lClass = FindClassOrDie(env, kSoundTriggerClassPathName);
833 gSoundTriggerClass = MakeGlobalRefOrDie(env, lClass);
835 jclass moduleClass = FindClassOrDie(env, kModuleClassPathName);
836 gModuleClass = MakeGlobalRefOrDie(env, moduleClass);
837 gPostEventFromNative = GetStaticMethodIDOrDie(env, moduleClass, "postEventFromNative",
839 gModuleFields.mNativeContext = GetFieldIDOrDie(env, moduleClass, "mNativeContext", "J");
840 gModuleFields.mId = GetFieldIDOrDie(env, moduleClass, "mId", "I");
842 jclass modulePropertiesClass = FindClassOrDie(env, kModulePropertiesClassPathName);
843 gModulePropertiesClass = MakeGlobalRefOrDie(env, modulePropertiesClass);
844 gModulePropertiesCstor = GetMethodIDOrDie(env, modulePropertiesClass, "<init>",
847 jclass soundModelClass = FindClassOrDie(env, kSoundModelClassPathName);
848 gSoundModelClass = MakeGlobalRefOrDie(env, soundModelClass);
849 gSoundModelFields.uuid = GetFieldIDOrDie(env, soundModelClass, "uuid", "Ljava/util/UUID;");
850 gSoundModelFields.vendorUuid = GetFieldIDOrDie(env, soundModelClass, "vendorUuid",
852 gSoundModelFields.data = GetFieldIDOrDie(env, soundModelClass, "data", "[B");
854 jclass genericSoundModelClass = FindClassOrDie(env, kGenericSoundModelClassPathName);
855 gGenericSoundModelClass = MakeGlobalRefOrDie(env, genericSoundModelClass);
857 jclass keyphraseClass = FindClassOrDie(env, kKeyphraseClassPathName);
858 gKeyphraseClass = MakeGlobalRefOrDie(env, keyphraseClass);
859 gKeyphraseFields.id = GetFieldIDOrDie(env, keyphraseClass, "id", "I");
860 gKeyphraseFields.recognitionModes = GetFieldIDOrDie(env, keyphraseClass, "recognitionModes",
862 gKeyphraseFields.locale = GetFieldIDOrDie(env, keyphraseClass, "locale", "Ljava/lang/String;");
863 gKeyphraseFields.text = GetFieldIDOrDie(env, keyphraseClass, "text", "Ljava/lang/String;");
864 gKeyphraseFields.users = GetFieldIDOrDie(env, keyphraseClass, "users", "[I");
866 jclass keyphraseSoundModelClass = FindClassOrDie(env, kKeyphraseSoundModelClassPathName);
867 gKeyphraseSoundModelClass = MakeGlobalRefOrDie(env, keyphraseSoundModelClass);
868 gKeyphraseSoundModelFields.keyphrases = GetFieldIDOrDie(env, keyphraseSoundModelClass,
872 jclass recognitionEventClass = FindClassOrDie(env, kRecognitionEventClassPathName);
873 gRecognitionEventClass = MakeGlobalRefOrDie(env, recognitionEventClass);
874 gRecognitionEventCstor = GetMethodIDOrDie(env, recognitionEventClass, "<init>",
877 jclass keyphraseRecognitionEventClass = FindClassOrDie(env,
879 gKeyphraseRecognitionEventClass = MakeGlobalRefOrDie(env, keyphraseRecognitionEventClass);
880 gKeyphraseRecognitionEventCstor = GetMethodIDOrDie(env, keyphraseRecognitionEventClass, "<init>",
883 jclass genericRecognitionEventClass = FindClassOrDie(env,
885 gGenericRecognitionEventClass = MakeGlobalRefOrDie(env, genericRecognitionEventClass);
886 gGenericRecognitionEventCstor = GetMethodIDOrDie(env, genericRecognitionEventClass, "<init>",
889 jclass keyRecognitionConfigClass = FindClassOrDie(env, kRecognitionConfigClassPathName);
890 gRecognitionConfigClass = MakeGlobalRefOrDie(env, keyRecognitionConfigClass);
891 gRecognitionConfigFields.captureRequested = GetFieldIDOrDie(env, keyRecognitionConfigClass,
893 gRecognitionConfigFields.keyphrases = GetFieldIDOrDie(env, keyRecognitionConfigClass,
895 gRecognitionConfigFields.data = GetFieldIDOrDie(env, keyRecognitionConfigClass, "data", "[B");
897 jclass keyphraseRecognitionExtraClass = FindClassOrDie(env,
899 gKeyphraseRecognitionExtraClass = MakeGlobalRefOrDie(env, keyphraseRecognitionExtraClass);
900 gKeyphraseRecognitionExtraCstor = GetMethodIDOrDie(env, keyphraseRecognitionExtraClass,
902 gKeyphraseRecognitionExtraFields.id = GetFieldIDOrDie(env, gKeyphraseRecognitionExtraClass,
904 gKeyphraseRecognitionExtraFields.recognitionModes = GetFieldIDOrDie(env,
906 gKeyphraseRecognitionExtraFields.coarseConfidenceLevel = GetFieldIDOrDie(env,
908 gKeyphraseRecognitionExtraFields.confidenceLevels = GetFieldIDOrDie(env,
912 jclass confidenceLevelClass = FindClassOrDie(env, kConfidenceLevelClassPathName);
913 gConfidenceLevelClass = MakeGlobalRefOrDie(env, confidenceLevelClass);
914 gConfidenceLevelCstor = GetMethodIDOrDie(env, confidenceLevelClass, "<init>", "(II)V");
915 gConfidenceLevelFields.userId = GetFieldIDOrDie(env, confidenceLevelClass, "userId", "I");
916 gConfidenceLevelFields.confidenceLevel = GetFieldIDOrDie(env, confidenceLevelClass,
919 jclass audioFormatClass = FindClassOrDie(env, kAudioFormatClassPathName);
920 gAudioFormatClass = MakeGlobalRefOrDie(env, audioFormatClass);
921 gAudioFormatCstor = GetMethodIDOrDie(env, audioFormatClass, "<init>", "(IIII)V");
923 jclass soundModelEventClass = FindClassOrDie(env, kSoundModelEventClassPathName);
924 gSoundModelEventClass = MakeGlobalRefOrDie(env, soundModelEventClass);
925 gSoundModelEventCstor = GetMethodIDOrDie(env, soundModelEventClass, "<init>", "(II[B)V");
928 RegisterMethodsOrDie(env, kSoundTriggerClassPathName, gMethods, NELEM(gMethods));
929 return RegisterMethodsOrDie(env, kModuleClassPathName, gModuleMethods, NELEM(gModuleMethods));