From 9d23ba096d809e51fec7e259ea2d026cf9113919 Mon Sep 17 00:00:00 2001 From: "leozwang@google.com" Date: Sun, 4 Sep 2011 03:33:44 +0000 Subject: [PATCH] Make test app work on android Review URL: http://webrtc-codereview.appspot.com/137014 git-svn-id: http://webrtc.googlecode.com/svn/trunk@525 4adac7df-926f-26a2-2b94-8c16560cd09d --- .../main/test/android/android_test/Android.mk | 25 ++++++++++ .../test/android/android_test/jni/Android.mk | 43 +++++++++++++--- .../android_test/res/drawable/icon.png | Bin 3180 -> 2574 bytes .../android_test/res/values/strings.xml | 2 +- .../webrtc/voiceengine/test/AndroidTest.java | 47 ++++++------------ 5 files changed, 78 insertions(+), 39 deletions(-) create mode 100644 src/voice_engine/main/test/android/android_test/Android.mk diff --git a/src/voice_engine/main/test/android/android_test/Android.mk b/src/voice_engine/main/test/android/android_test/Android.mk new file mode 100644 index 0000000000..a3f5ce600c --- /dev/null +++ b/src/voice_engine/main/test/android/android_test/Android.mk @@ -0,0 +1,25 @@ +# Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. +# +# Use of this source code is governed by a BSD-style license +# that can be found in the LICENSE file in the root of the source +# tree. An additional intellectual property rights grant can be found +# in the file PATENTS. All contributing project authors may +# be found in the AUTHORS file in the root of the source tree. + +LOCAL_PATH:= $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE_TAGS := tests + +LOCAL_SRC_FILES := \ + src/org/webrtc/voiceengine/test/AndroidTest.java + +LOCAL_PACKAGE_NAME := webrtc-voice-demo +LOCAL_CERTIFICATE := platform + +LOCAL_JNI_SHARED_LIBRARIES := libwebrtc-voice-demo-jni + +include $(BUILD_PACKAGE) + +include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/src/voice_engine/main/test/android/android_test/jni/Android.mk b/src/voice_engine/main/test/android/android_test/jni/Android.mk index b8e4830a8f..54b0dc2933 100644 --- a/src/voice_engine/main/test/android/android_test/jni/Android.mk +++ b/src/voice_engine/main/test/android/android_test/jni/Android.mk @@ -6,6 +6,8 @@ # in the file PATENTS. All contributing project authors may # be found in the AUTHORS file in the root of the source tree. +ifdef NDK_ROOT + MY_WEBRTC_ROOT_PATH := $(call my-dir) MY_WEBRTC_SRC_PATH := ../../../../../../.. @@ -64,9 +66,6 @@ LOCAL_SHARED_LIBRARIES := \ LOCAL_PRELINK_MODULE := false -ifndef NDK_ROOT -include external/stlport/libstlport.mk -endif include $(BUILD_SHARED_LIBRARY) ### @@ -76,7 +75,7 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_ARM_MODE := arm -LOCAL_MODULE := libwebrtc +LOCAL_MODULE := libwebrtc-voice-demo-jni LOCAL_MODULE_TAGS := optional LOCAL_WHOLE_STATIC_LIBRARIES := \ @@ -109,7 +108,37 @@ LOCAL_SHARED_LIBRARIES := \ LOCAL_PRELINK_MODULE := false -ifndef NDK_ROOT -include external/stlport/libstlport.mk -endif include $(BUILD_SHARED_LIBRARY) + +else + +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE_TAGS := tests +LOCAL_MODULE := libwebrtc-voice-demo-jni +LOCAL_CPP_EXTENSION := .cc +LOCAL_SRC_FILES := android_test.cc +LOCAL_CFLAGS := \ + '-DWEBRTC_TARGET_PC' \ + '-DWEBRTC_ANDROID' + +LOCAL_C_INCLUDES := \ + $(LOCAL_PATH)/../../../auto_test \ + $(LOCAL_PATH)/../../../../interface \ + $(LOCAL_PATH)/../../../../../.. \ + $(LOCAL_PATH)/../../../../../../system_wrappers/interface + +LOCAL_PRELINK_MODULE := false + +LOCAL_SHARED_LIBRARIES := \ + libutils \ + libstlport \ + libandroid \ + libwebrtc \ + libGLESv2 + +include $(BUILD_SHARED_LIBRARY) + +endif diff --git a/src/voice_engine/main/test/android/android_test/res/drawable/icon.png b/src/voice_engine/main/test/android/android_test/res/drawable/icon.png index 75024841d327c4fbaefef7c8e9c8d0e892895f93..a07c69fa5a0f4da5d5efe96eea12a543154dbab6 100644 GIT binary patch delta 2565 zcmV+g3i|cz7>*Q>BYz3iNklQ`Og{P|9^0MHK0_ue5La$BvqW(E{R@m;+b z+04~`K@~=KAlzM05bd(Nnm)?dxa?uEJXv zeu+q80Dqrd@f`f#Ip`ZXfIAz$i21em;CTN_=xEu3VAVXlcIsQuGdfb46xxDaSk?R` zH2PP;NRz%=?4~pTga_dz#}k`EC}jbv!cw~BHsU&lZlE=|p3FXv_J;eB)>By1vJIEU zj-b8%el*o|VkG)LqNx#TG>Jvj^jIte!!+RY)PJLY@)%lY-vfVDGlHHLY+U$V^iLdv zrg-Q+#?(5pRz7B(*J9e@sgV7wrlqlyV{Kn>8(4v2;-jwVy`N*NVyb04`0ujrO_sVN?6}QB&QD z4GSJe%j~t7rPZQi-XruqkF`oeU>Uj=euKg#v9@g+*0gTHJN>UCC)o`?7zD@J3ChBdeQ!oN8-bK z)HDs<-97KETX)x2xXJ)=m{^cXOT|Ert2__P^~`+Z&V#E9S;5N`C++P3qk^?v1rVm~ zjBq;ys6=tD0*LR676fk>l#4%C0c@r#(S$vBrrWXt+)4|uIHPyU|>La6h%92y4IPufI$9>Xu!@y z`TaNgtg&41@PwMwBdmSm7)xAWDStg10dJ$le#VeeKMN{LP+@#9)=Dy}s; zItmd)fR<7PtqBfRa1}tbFQyiv?qISgtA=i5gaug^9(5La2LFf?gTH4Ln}4k+ErF;= z-IQ`Bh0yq$6zokLP=AUI^S+6dO%L-+9m!-89*>7Y@(fexVMT0Y#VqQ+u?`Qld2!+h zqUjMX>VbzxMA73u+GgKvc?r?JS(VpwP!0HUiC7TuULkc_CJBKkqFd8gJbY!X=N|2>}SVTgb;KG z8CTHJxE0O8PV71L7+pwiVw}GVjqS6>G`g99Zl)=$51*L-G}qEGnSbbqHaCQ79+E=u zUXCOZ35jAMRz%R%0(P!0FMv=sk>Nr8%+OzY^c-M9@+ zfz=G`qj2+%Zca?2GF_~Ag8Z{+AH9ziZejL@FI=nNq3nz#ELXAuA;T*>;hBqKa81dvd z<6{SYg-4wiWq)s33zYnF+JI;-;N=Ylg%+L3uVj~+sx~~d^k>|VJ=ov3eJauU2EUa}8?jjAVjIdWLN~x|EkQziRAeJZ(CKl9w41uafUTzJe$=`uZi++SY2K7JA ze8&>W!#h=xt|D?2FrFI2zR-_dmv$9EzO;Scl}c_fpno-CaqR=VUaUvk>@F_89b@tH zs8R!*QKY;INJ<2_U+K6Ca3e9Gsl2{qY0%a7J?uICWgHuLfj+MB=GkAN1&ifT#2u}B z+2S#~$5jA(Qn^;H%CCmIae4AE-Dsng|Hl*Ov!z72k3ZnJs{pp|+pW`DDueC#mEWOf z=ucJ!dVgwUH@>j^1>TL0u`W8w;Jx`gA+b`%0Pb1H4q!VDoLX66B>p}bl~W&?H8pNf zf56)2Czv7W0=b~Qsa8^~W179L%2Mj#vRQCqI=|0g@wJLYT$WSW0u+`LdvR`TFYo?W zayL$LjI=%o=2*#5$-d=&T?LTKRr`!ux`mZK+kfjHWDJu_CL5173+G1viO%M)LDgs( zNkBJ&R^GCHEN-WinlC}A7?9kRIDY*2SZ{CdB=-Xmlu3c=bp$!2FUGt5ujP&Eh%~%T zAMQdgEh5EUr9e)lIFdhgjYQNO<97+7V?K4FDt+}iT+enfv5qJ;aLMZpj@?R-eY*9u||RB?bS+IKo}Kc5yWnb blIs5eNSY+j744LC00000NkvXXu0mjfGgaLj delta 3176 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 O0000 - WebRtc VoiceEngine Android Test + WebRtc VoE diff --git a/src/voice_engine/main/test/android/android_test/src/org/webrtc/voiceengine/test/AndroidTest.java b/src/voice_engine/main/test/android/android_test/src/org/webrtc/voiceengine/test/AndroidTest.java index b8e0e4c0de..71b22b0d6d 100644 --- a/src/voice_engine/main/test/android/android_test/src/org/webrtc/voiceengine/test/AndroidTest.java +++ b/src/voice_engine/main/test/android/android_test/src/org/webrtc/voiceengine/test/AndroidTest.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. - * + * * Use of this source code is governed by a BSD-style license that can be found * in the LICENSE file in the root of the source tree. An additional * intellectual property rights grant can be found in the file PATENTS. All @@ -185,25 +185,19 @@ public class AndroidTest extends Activity { this, android.R.layout.simple_spinner_dropdown_item, ap4); - String codecs[] = {"iSAC", "PCMU", "PCMA", "iLBC", "G.729"}; + String codecs[] = {"iSAC", "PCMU", "PCMA", "iLBC"}; final ArrayAdapter adapterCodecs = new ArrayAdapter( this, android.R.layout.simple_spinner_dropdown_item, codecs); - String audio[] = - {"Volume Up", "Volume Down", "Loudspeaker", "Earpiece"}; - final ArrayAdapter adapterAudio = new ArrayAdapter( - this, - android.R.layout.simple_spinner_dropdown_item, - audio); final Spinner spinnerSettings1 = (Spinner) findViewById(R.id.Spinner01); final Spinner spinnerSettings2 = (Spinner) findViewById(R.id.Spinner02); spinnerSettings1.setMinimumWidth(200); String settings[] = - {"Audio", "Codec", "Echo Control", "Noise Suppression", - "Automatic Gain Control", - "Voice Activity Detection"}; + {"Codec", "Echo Control", "Noise Suppression", + "Automatic Gain Control", + "Voice Activity Detection"}; ArrayAdapter adapterSettings1 = new ArrayAdapter( this, android.R.layout.simple_spinner_dropdown_item, @@ -217,26 +211,22 @@ public class AndroidTest extends Activity { _settingMenu = position; _settingSet = false; if (position == 0) { - spinnerSettings2.setAdapter(adapterAudio); - spinnerSettings2.setSelection(_audioIndex); - } - if (position == 1) { spinnerSettings2.setAdapter(adapterCodecs); spinnerSettings2.setSelection(_codecIndex); } - if (position == 2) { + if (position == 1) { spinnerSettings2.setAdapter(adapterAp1); spinnerSettings2.setSelection(_ecIndex); } - if (position == 3) { + if (position == 2) { spinnerSettings2.setAdapter(adapterAp2); spinnerSettings2.setSelection(_nsIndex); } - if (position == 4) { + if (position == 3) { spinnerSettings2.setAdapter(adapterAp3); spinnerSettings2.setSelection(_agcIndex); } - if (position == 5) { + if (position == 4) { spinnerSettings2.setAdapter(adapterAp4); spinnerSettings2.setSelection(_vadIndex); } @@ -389,7 +379,7 @@ public class AndroidTest extends Activity { Create(); // Error logging is done in native API wrapper // Initialize - if (0 != Init(0, 0, 0, false, false)) { + if (0 != Init(false, false)) { WebrtcLog("VoE init failed"); } @@ -441,12 +431,6 @@ public class AndroidTest extends Activity { return -1; } - // set volume to default value - if (0 != SetSpeakerVolume(_volumeLevel)) { - WebrtcLog("VoE set speaker volume failed"); - return -1; - } - /* * WebrtcLog("VoE start record now"); if (0 != * StartRecordingPlayout(_channel, "/sdcard/singleUserDemoOut.pcm", @@ -1185,14 +1169,15 @@ public class AndroidTest extends Activity { private native int SetLoudspeakerStatus(boolean enable); /* - * this is used to load the 'AndroidJavaAPI' library on application startup. + * this is used to load the 'webrtc-voice-demo-jni' + * library on application startup. * The library has already been unpacked into - * /data/data/webrtc.android.AndroidTest/lib/libAndroidJavaAPI.so at - * installation time by the package manager. + * /data/data/webrtc.android.AndroidTest/lib/libwebrtc-voice-demo-jni.so + * at installation time by the package manager. */ static { - Log.d("*Webrtc*", "Loading AndroidJavaAPI..."); - System.loadLibrary("AndroidJavaAPI"); + Log.d("*Webrtc*", "Loading webrtc-voice-demo-jni..."); + System.loadLibrary("webrtc-voice-demo-jni"); Log.d("*Webrtc*", "Calling native init..."); if (!NativeInit()) {