diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-02 22:54:33 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-02 22:54:33 -0800 |
commit | 3dec7d563a2f3e1eb967ce2054a00b6620e3558c (patch) | |
tree | aa3b0365c47cb3c1607c0dc76c8d32b4046fc287 /core/jni/android_media_AudioTrack.cpp | |
parent | 15ab3eae2ec3d73b3e8aa60b33ae41445bf83f4b (diff) | |
download | frameworks_base-3dec7d563a2f3e1eb967ce2054a00b6620e3558c.zip frameworks_base-3dec7d563a2f3e1eb967ce2054a00b6620e3558c.tar.gz frameworks_base-3dec7d563a2f3e1eb967ce2054a00b6620e3558c.tar.bz2 |
auto import from //depot/cupcake/@137055
Diffstat (limited to 'core/jni/android_media_AudioTrack.cpp')
-rw-r--r-- | core/jni/android_media_AudioTrack.cpp | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/core/jni/android_media_AudioTrack.cpp b/core/jni/android_media_AudioTrack.cpp index d9effee..f625ffb 100644 --- a/core/jni/android_media_AudioTrack.cpp +++ b/core/jni/android_media_AudioTrack.cpp @@ -688,15 +688,33 @@ static jint android_media_AudioTrack_reload(JNIEnv *env, jobject thiz) { // ---------------------------------------------------------------------------- -static jint android_media_AudioTrack_get_output_sample_rate(JNIEnv *env, jobject thiz) { - int afSamplingRate; - AudioTrackJniStorage* lpJniStorage = (AudioTrackJniStorage *)env->GetIntField( - thiz, javaAudioTrackFields.jniData); - if (lpJniStorage == NULL) { - return DEFAULT_OUTPUT_SAMPLE_RATE; +static jint android_media_AudioTrack_get_output_sample_rate(JNIEnv *env, jobject thiz, + jint javaStreamType) { + int afSamplingRate; + // convert the stream type from Java to native value + // FIXME: code duplication with android_media_AudioTrack_native_setup() + AudioSystem::stream_type nativeStreamType; + if (javaStreamType == javaAudioTrackFields.STREAM_VOICE_CALL) { + nativeStreamType = AudioSystem::VOICE_CALL; + } else if (javaStreamType == javaAudioTrackFields.STREAM_SYSTEM) { + nativeStreamType = AudioSystem::SYSTEM; + } else if (javaStreamType == javaAudioTrackFields.STREAM_RING) { + nativeStreamType = AudioSystem::RING; + } else if (javaStreamType == javaAudioTrackFields.STREAM_MUSIC) { + nativeStreamType = AudioSystem::MUSIC; + } else if (javaStreamType == javaAudioTrackFields.STREAM_ALARM) { + nativeStreamType = AudioSystem::ALARM; + } else if (javaStreamType == javaAudioTrackFields.STREAM_NOTIFICATION) { + nativeStreamType = AudioSystem::NOTIFICATION; + } else if (javaStreamType == javaAudioTrackFields.STREAM_BLUETOOTH_SCO) { + nativeStreamType = AudioSystem::BLUETOOTH_SCO; + } else { + nativeStreamType = AudioSystem::DEFAULT; } - if (AudioSystem::getOutputSamplingRate(&afSamplingRate, lpJniStorage->mStreamType) != NO_ERROR) { + if (AudioSystem::getOutputSamplingRate(&afSamplingRate, nativeStreamType) != NO_ERROR) { + LOGE("AudioSystem::getOutputSamplingRate() for stream type %d failed in AudioTrack JNI", + nativeStreamType); return DEFAULT_OUTPUT_SAMPLE_RATE; } else { return afSamplingRate; @@ -766,7 +784,7 @@ static JNINativeMethod gMethods[] = { {"native_set_loop", "(III)I", (void *)android_media_AudioTrack_set_loop}, {"native_reload_static", "()I", (void *)android_media_AudioTrack_reload}, {"native_get_output_sample_rate", - "()I", (void *)android_media_AudioTrack_get_output_sample_rate}, + "(I)I", (void *)android_media_AudioTrack_get_output_sample_rate}, {"native_get_min_buff_size", "(III)I", (void *)android_media_AudioTrack_get_min_buff_size}, }; |