summaryrefslogtreecommitdiffstats
path: root/core/jni/android_media_AudioTrack.cpp
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-02 22:54:33 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-02 22:54:33 -0800
commit3dec7d563a2f3e1eb967ce2054a00b6620e3558c (patch)
treeaa3b0365c47cb3c1607c0dc76c8d32b4046fc287 /core/jni/android_media_AudioTrack.cpp
parent15ab3eae2ec3d73b3e8aa60b33ae41445bf83f4b (diff)
downloadframeworks_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.cpp34
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},
};