static void android_media_ToneGenerator_native_setup(JNIEnv *env, jobject thiz, jint streamType, jint volume) { ToneGenerator *lpToneGen = new ToneGenerator((audio_stream_type_t) streamType, AudioSystem::linearToLog(volume), true); env->SetIntField(thiz, fields.context, 0); ALOGV("android_media_ToneGenerator_native_setup jobject: %x", (int)thiz); if (lpToneGen == NULL) { ALOGE("ToneGenerator creation failed"); jniThrowException(env, "java/lang/OutOfMemoryError", NULL); return; } ALOGV("ToneGenerator lpToneGen: %x", (unsigned int)lpToneGen); if (!lpToneGen->isInited()) { ALOGE("ToneGenerator init failed"); jniThrowRuntimeException(env, "Init failed"); return; } // Stow our new C++ ToneGenerator in an opaque field in the Java object. env->SetIntField(thiz, fields.context, (int)lpToneGen); ALOGV("ToneGenerator fields.context: %x", env->GetIntField(thiz, fields.context)); }
static jint android_media_ToneGenerator_getAudioSessionId(JNIEnv *env, jobject thiz) { ToneGenerator *lpToneGen = (ToneGenerator *)env->GetIntField(thiz, fields.context); if (lpToneGen == NULL) { jniThrowRuntimeException(env, "Method called after release()"); return 0; } return lpToneGen->getSessionId(); }
static jboolean android_media_ToneGenerator_startTone(JNIEnv *env, jobject thiz, jint toneType, jint durationMs) { ALOGV("android_media_ToneGenerator_startTone: %x", (int)thiz); ToneGenerator *lpToneGen = (ToneGenerator *)env->GetIntField(thiz, fields.context); if (lpToneGen == NULL) { jniThrowRuntimeException(env, "Method called after release()"); return false; } return lpToneGen->startTone((ToneGenerator::tone_type) toneType, durationMs); }
static jboolean android_media_ToneGenerator_startTone(JNIEnv *env, jobject thiz, jint toneType, jint durationMs) { LOGV("android_media_ToneGenerator_startTone: %x\n", (int)thiz); ToneGenerator *lpToneGen = (ToneGenerator *)env->GetIntField(thiz, fields.context); if (lpToneGen == NULL) { LOGE("lpToneGen is NULL"); return false; } return lpToneGen->startTone(toneType, durationMs); }
static jboolean android_media_ToneGenerator_startTone(JNIEnv *env, jobject thiz, jint toneType) { LOGV("android_media_ToneGenerator_startTone: %x\n", (int)thiz); ToneGenerator *lpToneGen = (ToneGenerator *)env->GetIntField(thiz, fields.context); if (lpToneGen == NULL) { jniThrowException(env, "java/lang/RuntimeException", "Method called after release()"); return false; } return lpToneGen->startTone(toneType); }
static void android_media_ToneGenerator_stopTone(JNIEnv *env, jobject thiz) { ALOGV("android_media_ToneGenerator_stopTone: %x", (int)thiz); ToneGenerator *lpToneGen = (ToneGenerator *)env->GetIntField(thiz, fields.context); ALOGV("ToneGenerator lpToneGen: %x", (unsigned int)lpToneGen); if (lpToneGen == NULL) { jniThrowRuntimeException(env, "Method called after release()"); return; } lpToneGen->stopTone(); }
static void android_media_ToneGenerator_stopTone(JNIEnv *env, jobject thiz) { LOGV("android_media_ToneGenerator_stopTone: %x\n", (int)thiz); ToneGenerator *lpToneGen = (ToneGenerator *)env->GetIntField(thiz, fields.context); LOGV("ToneGenerator lpToneGen: %x\n", (unsigned int)lpToneGen); if (lpToneGen == NULL) { LOGE("lpToneGen is NULL"); return; } lpToneGen->stopTone(); }
static void android_media_ToneGenerator_native_setup(JNIEnv *env, jobject thiz, jint streamType, jint volume) { ToneGenerator *lpToneGen = new ToneGenerator((audio_stream_type_t) streamType, AudioSystem::linearToLog(volume), true); env->SetLongField(thiz, fields.context, 0); ALOGV("android_media_ToneGenerator_native_setup jobject: %p", thiz); ALOGV("ToneGenerator lpToneGen: %p", lpToneGen); if (!lpToneGen->isInited()) { ALOGE("ToneGenerator init failed"); jniThrowRuntimeException(env, "Init failed"); delete lpToneGen; return; } // Stow our new C++ ToneGenerator in an opaque field in the Java object. env->SetLongField(thiz, fields.context, (jlong)lpToneGen); ALOGV("ToneGenerator fields.context: %p", (void*) env->GetLongField(thiz, fields.context)); }