Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1232)

Unified Diff: webrtc/voice_engine/test/android/android_test/jni/android_test.cc

Issue 2065353002: Delete unused code. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Trivial rebase. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/voice_engine/test/android/android_test/jni/android_test.cc
diff --git a/webrtc/voice_engine/test/android/android_test/jni/android_test.cc b/webrtc/voice_engine/test/android/android_test/jni/android_test.cc
deleted file mode 100644
index 766b9e7a8ec51437751fdb48b508f7d99d4c8c7d..0000000000000000000000000000000000000000
--- a/webrtc/voice_engine/test/android/android_test/jni/android_test.cc
+++ /dev/null
@@ -1,1331 +0,0 @@
-/*
- * 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.
- */
-
-#include <android/log.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "webrtc/voice_engine/test/android/android_test/jni/org_webrtc_voiceengine_test_AndroidTest.h"
-
-#include "webrtc/base/platform_thread.h"
-
-#include "webrtc/voice_engine/include/voe_audio_processing.h"
-#include "webrtc/voice_engine/include/voe_base.h"
-#include "webrtc/voice_engine/include/voe_codec.h"
-#include "webrtc/voice_engine/include/voe_file.h"
-#include "webrtc/voice_engine/include/voe_hardware.h"
-#include "webrtc/voice_engine/include/voe_network.h"
-#include "webrtc/voice_engine/include/voe_rtp_rtcp.h"
-#include "webrtc/voice_engine/include/voe_volume_control.h"
-
-#include "webrtc/voice_engine/test/auto_test/voe_test_interface.h"
-
-//#define INIT_FROM_THREAD
-//#define START_CALL_FROM_THREAD
-
-#define WEBRTC_LOG_TAG "*WEBRTCN*" // As in WEBRTC Native...
-#define VALIDATE_BASE_POINTER \
- if (!veData1.base) \
- { \
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG, \
- "Base pointer doesn't exist"); \
- return -1; \
- }
-#define VALIDATE_CODEC_POINTER \
- if (!veData1.codec) \
- { \
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG, \
- "Codec pointer doesn't exist"); \
- return -1; \
- }
-#define VALIDATE_FILE_POINTER \
- if (!veData1.file) \
- { \
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG, \
- "File pointer doesn't exist"); \
- return -1; \
- }
-#define VALIDATE_NETWORK_POINTER \
- if (!veData1.netw) \
- { \
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG, \
- "Network pointer doesn't exist"); \
- return -1; \
- }
-#define VALIDATE_APM_POINTER \
- if (!veData1.codec) \
- { \
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG, \
- "Apm pointer doesn't exist"); \
- return -1; \
- }
-#define VALIDATE_VOLUME_POINTER \
- if (!veData1.volume) \
- { \
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG, \
- "Volume pointer doesn't exist"); \
- return -1; \
- }
-#define VALIDATE_HARDWARE_POINTER \
- if (!veData1.hardware) \
- { \
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG, \
- "Hardware pointer doesn't exist"); \
- return -1; \
- }
-#define VALIDATE_RTP_RTCP_POINTER \
- if (!veData1.rtp_rtcp) \
- { \
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG, \
- "RTP / RTCP pointer doesn't exist"); \
- return -1; \
- }
-
-// Register functions in JNI_OnLoad()
-// How do we ensure that VoE is deleted? JNI_OnUnload?
-// What happens if class is unloaded? When loaded again, NativeInit will be
-// called again. Keep what we have?
-// Should we do something in JNI_OnUnload?
-// General design: create a class or keep global struct with "C" functions?
-// Otherwise make sure symbols are as unique as possible.
-
-// TestType enumerator
-enum TestType
-{
- Invalid = -1,
- Standard = 0,
- Extended = 1,
- Stress = 2,
- Unit = 3,
- CPU = 4
-};
-
-using namespace webrtc;
-
-class my_transportation;
-
-// VoiceEngine data struct
-typedef struct
-{
- // VoiceEngine
- VoiceEngine* ve;
- // Sub-APIs
- VoEBase* base;
- VoECodec* codec;
- VoEFile* file;
- VoENetwork* netw;
- VoEAudioProcessing* apm;
- VoEVolumeControl* volume;
- VoEHardware* hardware;
- VoERTP_RTCP* rtp_rtcp;
- // Other
- my_transportation* extTrans;
- JavaVM* jvm;
-} VoiceEngineData;
-
-// my_transportation is used when useExtTrans is enabled
-class my_transportation : public Transport
-{
- public:
- my_transportation(VoENetwork * network) :
- netw(network) {
- }
-
- int SendPacket(int channel, const void* data, size_t len) override;
- int SendRTCPPacket(int channel, const void* data, size_t len) override;
-
- private:
- VoENetwork * netw;
-};
-
-int my_transportation::SendPacket(int channel, const void *data, size_t len)
-{
- netw->ReceivedRTPPacket(channel, data, len);
- return len;
-}
-
-int my_transportation::SendRTCPPacket(int channel, const void *data, size_t len)
-{
- netw->ReceivedRTCPPacket(channel, data, len);
- return len;
-}
-
-//Global variables visible in this file
-static VoiceEngineData veData1;
-static VoiceEngineData veData2;
-
-// "Local" functions (i.e. not Java accessible)
-static bool GetSubApis(VoiceEngineData &veData);
-static bool ReleaseSubApis(VoiceEngineData &veData);
-
-class ThreadTest
-{
-public:
- ThreadTest();
- ~ThreadTest();
- int RunTest();
- int CloseTest();
-private:
- static bool Run(void* ptr);
- bool Process();
-private:
- rtc::PlatformThread _thread;
-};
-
-ThreadTest::~ThreadTest()
-{
- if (_thread)
- _thread->Stop();
-}
-
-ThreadTest::ThreadTest()
-{
- _thread(Run, this, "ThreadTest thread");
-}
-
-bool ThreadTest::Run(void* ptr)
-{
- return static_cast<ThreadTest*> (ptr)->Process();
-}
-
-bool ThreadTest::Process()
-{
- // Attach this thread to JVM
- /*JNIEnv* env = NULL;
- jint res = veData1.jvm->AttachCurrentThread(&env, NULL);
- char msg[32];
- sprintf(msg, "res=%d, env=%d", res, env);
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG, msg);*/
-
-#ifdef INIT_FROM_THREAD
- VALIDATE_BASE_POINTER;
- veData1.base->Init();
-#endif
-
-#ifdef START_CALL_FROM_THREAD
- // receiving instance
- veData2.ve = VoiceEngine::Create();
- GetSubApis(veData2);
- veData2.base->Init();
- veData2.base->CreateChannel();
- if(veData2.base->SetLocalReceiver(0, 1234) < 0)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "set local receiver 2 failed");
- }
- veData2.volume->SetSpeakerVolume(204);
- veData2.base->StartReceive(0);
- if(veData2.base->StartPlayout(0) < 0)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "start playout failed");
- }
-
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "receiving instance started from thread");
-
- // sending instance
- veData1.ve = VoiceEngine::Create();
- GetSubApis(veData1);
- veData1.base->Init();
- if(veData1.base->CreateChannel() < 0)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "create channel failed");
- }
- if(veData1.base->SetLocalReceiver(0, 1256) < 0)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "set local receiver failed");
- }
- if(veData1.base->SetSendDestination(0, 1234, "127.0.0.1") < 0)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "set send destination failed");
- }
- if(veData1.base->StartSend(0) < 0)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "start send failed");
- }
-
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "sending instance started from thread");
-#endif
-
- _thread->Stop();
-
- //res = veData1.jvm->DetachCurrentThread();
-
- return true;
-}
-
-int ThreadTest::RunTest()
-{
- if (_thread)
- {
- _thread->Start();
- }
- return 0;
-}
-
-int ThreadTest::CloseTest()
-{
- VALIDATE_BASE_POINTER
-
- veData1.base->DeleteChannel(0);
- veData2.base->DeleteChannel(0);
- veData1.base->Terminate();
- veData2.base->Terminate();
-
- // Release sub-APIs
- ReleaseSubApis(veData1);
- ReleaseSubApis(veData2);
-
- // Delete
- VoiceEngine::Delete(veData1.ve);
- VoiceEngine::Delete(veData2.ve);
- veData2.ve = NULL;
- veData2.ve = NULL;
-
- return 0;
-}
-
-ThreadTest threadTest;
-
-//////////////////////////////////////////////////////////////////
-// General functions
-//////////////////////////////////////////////////////////////////
-
-/////////////////////////////////////////////
-// JNI_OnLoad
-//
-jint JNI_OnLoad(JavaVM* vm, void* /*reserved*/)
-{
- if (!vm)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "JNI_OnLoad did not receive a valid VM pointer");
- return -1;
- }
-
- // Get JNI
- JNIEnv* env;
- if (JNI_OK != vm->GetEnv(reinterpret_cast<void**> (&env),
- JNI_VERSION_1_4))
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "JNI_OnLoad could not get JNI env");
- return -1;
- }
-
- // Get class to register the native functions with
- // jclass regClass = env->FindClass("webrtc/android/AndroidTest");
- // if (!regClass) {
- // return -1; // Exception thrown
- // }
-
- // Register native functions
- // JNINativeMethod methods[1];
- // methods[0].name = NULL;
- // methods[0].signature = NULL;
- // methods[0].fnPtr = NULL;
- // if (JNI_OK != env->RegisterNatives(regClass, methods, 1))
- // {
- // return -1;
- // }
-
- // Init VoiceEngine data
- memset(&veData1, 0, sizeof(veData1));
- memset(&veData2, 0, sizeof(veData2));
-
- // Store the JVM
- veData1.jvm = vm;
- veData2.jvm = vm;
-
- return JNI_VERSION_1_4;
-}
-
-/////////////////////////////////////////////
-// Native initialization
-//
-JNIEXPORT jboolean JNICALL
-Java_org_webrtc_voiceengine_test_AndroidTest_NativeInit(
- JNIEnv * env,
- jclass)
-{
- // Look up and cache any interesting class, field and method IDs for
- // any used java class here
-
- return true;
-}
-
-/////////////////////////////////////////////
-// Run auto standard test
-//
-JNIEXPORT jint JNICALL Java_org_webrtc_voiceengine_test_AndroidTest_RunAutoTest(
- JNIEnv *env,
- jobject context,
- jint testType,
- jint extendedSel)
-{
- TestType tType(Invalid);
-
- switch (testType)
- {
- case 0:
- return 0;
- case 1:
- tType = Standard;
- break;
- case 2:
- tType = Extended;
- break;
- case 3:
- tType = Stress;
- break;
- case 4:
- tType = Unit;
- break;
- default:
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "RunAutoTest - Invalid TestType");
- return -1;
- }
-
- // Set instance independent Java objects
- VoiceEngine::SetAndroidObjects(veData1.jvm, env, context);
-
- // Call voe test interface function
- // TODO(leozwang) add autotest setAndroidObjects(veData1.jvm, context);
- // jint retVal = runAutoTest(tType);
-
- // Clear instance independent Java objects
- VoiceEngine::SetAndroidObjects(NULL, NULL, NULL);
-
- return 0;
-}
-
-//////////////////////////////////////////////////////////////////
-// VoiceEngine API wrapper functions
-//////////////////////////////////////////////////////////////////
-
-/////////////////////////////////////////////
-// Create VoiceEngine instance
-//
-JNIEXPORT jboolean JNICALL Java_org_webrtc_voiceengine_test_AndroidTest_Create(
- JNIEnv *env,
- jobject context)
-{
- // Check if already created
- if (veData1.ve)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "VoE already created");
- return false;
- }
-
- // Set instance independent Java objects
- VoiceEngine::SetAndroidObjects(veData1.jvm, env, context);
-
-#ifdef START_CALL_FROM_THREAD
- threadTest.RunTest();
-#else
- // Create
- veData1.ve = VoiceEngine::Create();
- if (!veData1.ve)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Create VoE failed");
- return false;
- }
-
- // Get sub-APIs
- if (!GetSubApis(veData1))
- {
- // If not OK, release all sub-APIs and delete VoE
- ReleaseSubApis(veData1);
- if (!VoiceEngine::Delete(veData1.ve))
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Delete VoE failed");
- }
- return false;
- }
-#endif
-
- return true;
-}
-
-/////////////////////////////////////////////
-// Delete VoiceEngine instance
-//
-JNIEXPORT jboolean JNICALL Java_org_webrtc_voiceengine_test_AndroidTest_Delete(
- JNIEnv *,
- jobject)
-{
-#ifdef START_CALL_FROM_THREAD
- threadTest.CloseTest();
-#else
- // Check if exists
- if (!veData1.ve)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "VoE does not exist");
- return false;
- }
-
- // Release sub-APIs
- ReleaseSubApis(veData1);
-
- // Delete
- if (!VoiceEngine::Delete(veData1.ve))
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Delete VoE failed");
- return false;
- }
-
- veData1.ve = NULL;
-#endif
-
- // Clear instance independent Java objects
- VoiceEngine::SetAndroidObjects(NULL, NULL, NULL);
-
- return true;
-}
-
-/////////////////////////////////////////////
-// [Base] Initialize VoiceEngine
-//
-JNIEXPORT jint JNICALL Java_org_webrtc_voiceengine_test_AndroidTest_Init(
- JNIEnv *,
- jobject,
- jboolean enableTrace,
- jboolean useExtTrans)
-{
- VALIDATE_BASE_POINTER;
-
- if (enableTrace)
- {
- if (0 != VoiceEngine::SetTraceFile("/sdcard/trace.txt"))
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Could not enable trace");
- }
- if (0 != VoiceEngine::SetTraceFilter(kTraceAll))
- {
- __android_log_write(ANDROID_LOG_WARN, WEBRTC_LOG_TAG,
- "Could not set trace filter");
- }
- }
-
- if (useExtTrans)
- {
- VALIDATE_NETWORK_POINTER;
- veData1.extTrans = new my_transportation(veData1.netw);
- }
-
- int retVal = 0;
-#ifdef INIT_FROM_THREAD
- threadTest.RunTest();
- usleep(200000);
-#else
- retVal = veData1.base->Init();
-#endif
- return retVal;
-}
-
-/////////////////////////////////////////////
-// [Base] Terminate VoiceEngine
-//
-JNIEXPORT jint JNICALL Java_org_webrtc_voiceengine_test_AndroidTest_Terminate(
- JNIEnv *,
- jobject)
-{
- VALIDATE_BASE_POINTER;
-
- jint retVal = veData1.base->Terminate();
-
- delete veData1.extTrans;
- veData1.extTrans = NULL;
-
- return retVal;
-}
-
-/////////////////////////////////////////////
-// [Base] Create channel
-//
-JNIEXPORT jint JNICALL
-Java_org_webrtc_voiceengine_test_AndroidTest_CreateChannel(
- JNIEnv *,
- jobject)
-{
- VALIDATE_BASE_POINTER;
- jint channel = veData1.base->CreateChannel();
-
- if (veData1.extTrans)
- {
- VALIDATE_NETWORK_POINTER;
- __android_log_print(ANDROID_LOG_DEBUG, WEBRTC_LOG_TAG,
- "Enabling external transport on channel %d",
- channel);
- if (veData1.netw->RegisterExternalTransport(channel, *veData1.extTrans)
- < 0)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Could not set external transport");
- return -1;
- }
- }
-
- return channel;
-}
-
-/////////////////////////////////////////////
-// [Base] Delete channel
-//
-JNIEXPORT jint JNICALL
-Java_org_webrtc_voiceengine_test_AndroidTest_DeleteChannel(
- JNIEnv *,
- jobject,
- jint channel)
-{
- VALIDATE_BASE_POINTER;
- return veData1.base->DeleteChannel(channel);
-}
-
-/////////////////////////////////////////////
-// [Base] SetLocalReceiver
-JNIEXPORT jint JNICALL
-Java_org_webrtc_voiceengine_test_AndroidTest_SetLocalReceiver(
- JNIEnv *,
- jobject,
- jint channel,
- jint port)
-{
- VALIDATE_BASE_POINTER;
- return veData1.base->SetLocalReceiver(channel, port);
-}
-
-/////////////////////////////////////////////
-// [Base] SetSendDestination
-//
-JNIEXPORT jint JNICALL
-Java_org_webrtc_voiceengine_test_AndroidTest_SetSendDestination(
- JNIEnv *env,
- jobject,
- jint channel,
- jint port,
- jstring ipaddr)
-{
- VALIDATE_BASE_POINTER;
-
- const char* ipaddrNative = env->GetStringUTFChars(ipaddr, NULL);
- if (!ipaddrNative)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Could not get UTF string");
- return -1;
- }
-
- jint retVal = veData1.base->SetSendDestination(channel, port, ipaddrNative);
-
- env->ReleaseStringUTFChars(ipaddr, ipaddrNative);
-
- return retVal;
-}
-
-/////////////////////////////////////////////
-// [Base] StartListen
-//
-JNIEXPORT jint JNICALL Java_org_webrtc_voiceengine_test_AndroidTest_StartListen(
- JNIEnv *,
- jobject,
- jint channel)
-{
- VALIDATE_BASE_POINTER;
- int retVal = veData1.base->StartReceive(channel);
-
- return retVal;
-}
-
-/////////////////////////////////////////////
-// [Base] Start playout
-//
-JNIEXPORT jint JNICALL
-Java_org_webrtc_voiceengine_test_AndroidTest_StartPlayout(
- JNIEnv *,
- jobject,
- jint channel)
-{
- VALIDATE_BASE_POINTER;
- int retVal = veData1.base->StartPlayout(channel);
-
- return retVal;
-}
-
-/////////////////////////////////////////////
-// [Base] Start send
-//
-JNIEXPORT jint JNICALL Java_org_webrtc_voiceengine_test_AndroidTest_StartSend(
- JNIEnv *,
- jobject,
- jint channel)
-{
- /* int dscp(0), serviceType(-1), overrideDscp(0), res(0);
- bool gqosEnabled(false), useSetSockOpt(false);
-
- if (veData1.netw->SetSendTOS(channel, 13, useSetSockOpt) != 0)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Failed to set TOS");
- return -1;
- }
-
- res = veData1.netw->GetSendTOS(channel, dscp, useSetSockOpt);
- if (res != 0 || dscp != 13 || useSetSockOpt != true)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Failed to get TOS");
- return -1;
- } */
-
- /* if (veData1.rtp_rtcp->SetREDStatus(channel, 1) != 0)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Failed to enable RED");
- return -1;
- } */
-
- VALIDATE_BASE_POINTER;
- int retVal = veData1.base->StartSend(channel);
-
- return retVal;
-}
-
-/////////////////////////////////////////////
-// [Base] Stop listen
-//
-JNIEXPORT jint JNICALL Java_org_webrtc_voiceengine_test_AndroidTest_StopListen(
- JNIEnv *,
- jobject,
- jint channel)
-{
- VALIDATE_BASE_POINTER;
- return veData1.base->StopReceive(channel);
-}
-
-/////////////////////////////////////////////
-// [Base] Stop playout
-//
-JNIEXPORT jint JNICALL Java_org_webrtc_voiceengine_test_AndroidTest_StopPlayout(
- JNIEnv *,
- jobject,
- jint channel)
-{
- VALIDATE_BASE_POINTER;
- return veData1.base->StopPlayout(channel);
-}
-
-/////////////////////////////////////////////
-// [Base] Stop send
-//
-JNIEXPORT jint JNICALL Java_org_webrtc_voiceengine_test_AndroidTest_StopSend(
- JNIEnv *,
- jobject,
- jint channel)
-{
- /* if (veData1.rtp_rtcp->SetREDStatus(channel, 0) != 0)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Failed to disable RED");
- return -1;
- } */
-
- VALIDATE_BASE_POINTER;
- return veData1.base->StopSend(channel);
-}
-
-/////////////////////////////////////////////
-// [codec] Number of codecs
-//
-JNIEXPORT jint JNICALL Java_org_webrtc_voiceengine_test_AndroidTest_NumOfCodecs(
- JNIEnv *,
- jobject)
-{
- VALIDATE_CODEC_POINTER;
- return veData1.codec->NumOfCodecs();
-}
-
-/////////////////////////////////////////////
-// [codec] Set send codec
-//
-JNIEXPORT jint JNICALL
-Java_org_webrtc_voiceengine_test_AndroidTest_SetSendCodec(
- JNIEnv *,
- jobject,
- jint channel,
- jint index)
-{
- VALIDATE_CODEC_POINTER;
-
- CodecInst codec;
-
- if (veData1.codec->GetCodec(index, codec) != 0)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Failed to get codec");
- return -1;
- }
-
- return veData1.codec->SetSendCodec(channel, codec);
-}
-
-/////////////////////////////////////////////
-// [codec] Set VAD status
-//
-JNIEXPORT jint JNICALL
-Java_org_webrtc_voiceengine_test_AndroidTest_SetVADStatus(
- JNIEnv *,
- jobject,
- jint channel,
- jboolean enable,
- jint mode)
-{
- VALIDATE_CODEC_POINTER;
-
- VadModes VADmode = kVadConventional;
-
- switch (mode)
- {
- case 0:
- break; // already set
- case 1:
- VADmode = kVadAggressiveLow;
- break;
- case 2:
- VADmode = kVadAggressiveMid;
- break;
- case 3:
- VADmode = kVadAggressiveHigh;
- break;
- default:
- VADmode = (VadModes) 17; // force error
- break;
- }
-
- return veData1.codec->SetVADStatus(channel, enable, VADmode);
-}
-
-/////////////////////////////////////////////
-// [apm] SetNSStatus
-//
-JNIEXPORT jint JNICALL Java_org_webrtc_voiceengine_test_AndroidTest_SetNSStatus(
- JNIEnv *,
- jobject,
- jboolean enable,
- jint mode)
-{
- VALIDATE_APM_POINTER;
-
- NsModes NSmode = kNsDefault;
-
- switch (mode)
- {
- case 0:
- NSmode = kNsUnchanged;
- break;
- case 1:
- break; // already set
- case 2:
- NSmode = kNsConference;
- break;
- case 3:
- NSmode = kNsLowSuppression;
- break;
- case 4:
- NSmode = kNsModerateSuppression;
- break;
- case 5:
- NSmode = kNsHighSuppression;
- break;
- case 6:
- NSmode = kNsVeryHighSuppression;
- break;
- default:
- NSmode = (NsModes) 17; // force error
- break;
- }
-
- return veData1.apm->SetNsStatus(enable, NSmode);
-}
-
-/////////////////////////////////////////////
-// [apm] SetAGCStatus
-//
-JNIEXPORT jint JNICALL
-Java_org_webrtc_voiceengine_test_AndroidTest_SetAGCStatus(
- JNIEnv *,
- jobject,
- jboolean enable,
- jint mode)
-{
- VALIDATE_APM_POINTER;
-
- AgcModes AGCmode = kAgcDefault;
-
- switch (mode)
- {
- case 0:
- AGCmode = kAgcUnchanged;
- break;
- case 1:
- break; // already set
- case 2:
- AGCmode = kAgcAdaptiveAnalog;
- break;
- case 3:
- AGCmode = kAgcAdaptiveDigital;
- break;
- case 4:
- AGCmode = kAgcFixedDigital;
- break;
- default:
- AGCmode = (AgcModes) 17; // force error
- break;
- }
-
- /* AgcConfig agcConfig;
- agcConfig.targetLeveldBOv = 3;
- agcConfig.digitalCompressionGaindB = 50;
- agcConfig.limiterEnable = 0;
-
- if (veData1.apm->SetAGCConfig(agcConfig) != 0)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Failed to set AGC config");
- return -1;
- } */
-
- return veData1.apm->SetAgcStatus(enable, AGCmode);
-}
-
-/////////////////////////////////////////////
-// [apm] SetECStatus
-//
-JNIEXPORT jint JNICALL Java_org_webrtc_voiceengine_test_AndroidTest_SetECStatus(
- JNIEnv *,
- jobject,
- jboolean enable,
- jint mode)
-{
- VALIDATE_APM_POINTER;
-
- EcModes ECmode = kEcDefault;
-
- switch (mode)
- {
- case 0:
- ECmode = kEcDefault;
- break;
- case 1:
- break; // already set
- case 2:
- ECmode = kEcConference;
- break;
- case 3:
- ECmode = kEcAec;
- break;
- case 4:
- ECmode = kEcAecm;
- break;
- default:
- ECmode = (EcModes) 17; // force error
- break;
- }
-
- return veData1.apm->SetEcStatus(enable, ECmode);
-}
-
-/////////////////////////////////////////////
-// [File] Start play file locally
-//
-JNIEXPORT jint JNICALL
-Java_org_webrtc_voiceengine_test_AndroidTest_StartPlayingFileLocally(
- JNIEnv * env,
- jobject,
- jint channel,
- jstring fileName,
- jboolean loop)
-{
- VALIDATE_FILE_POINTER;
-
- const char* fileNameNative = env->GetStringUTFChars(fileName, NULL);
- if (!fileNameNative)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Could not get UTF string");
- return -1;
- }
-
- jint retVal = veData1.file->StartPlayingFileLocally(channel,
- fileNameNative, loop);
-
- env->ReleaseStringUTFChars(fileName, fileNameNative);
-
- return retVal;
-}
-
-/////////////////////////////////////////////
-// [File] Stop play file locally
-//
-JNIEXPORT jint JNICALL
-Java_org_webrtc_voiceengine_test_AndroidTest_StopPlayingFileLocally(
- JNIEnv *,
- jobject,
- jint channel)
-{
- VALIDATE_FILE_POINTER;
- return veData1.file->StopPlayingFileLocally(channel);
-}
-
-/*
- * Class: org_webrtc_voiceengine_test_AndroidTest
- * Method: StartRecordingPlayout
- * Signature: (ILjava/lang/String;Z)I
- */
-JNIEXPORT jint JNICALL
-Java_org_webrtc_voiceengine_test_AndroidTest_StartRecordingPlayout(
- JNIEnv * env,
- jobject,
- jint channel,
- jstring fileName,
- jboolean)
-{
- VALIDATE_FILE_POINTER;
-
- const char* fileNameNative = env->GetStringUTFChars(fileName, NULL);
- if (!fileNameNative)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Could not get UTF string");
- return -1;
- }
-
- jint retVal = veData1.file->StartRecordingPlayout(channel, fileNameNative,
- 0);
-
- env->ReleaseStringUTFChars(fileName, fileNameNative);
-
- return retVal;
-}
-
-/////////////////////////////////////////////
-// [File] Stop Recording Playout
-//
-JNIEXPORT jint JNICALL
-Java_org_webrtc_voiceengine_test_AndroidTest_StopRecordingPlayout(
- JNIEnv *,
- jobject,
- jint channel)
-{
- VALIDATE_FILE_POINTER;
- return veData1.file->StopRecordingPlayout(channel);
-}
-
-/////////////////////////////////////////////
-// [File] Start playing file as microphone
-//
-JNIEXPORT jint JNICALL
-Java_org_webrtc_voiceengine_test_AndroidTest_StartPlayingFileAsMicrophone(
- JNIEnv *env,
- jobject,
- jint channel,
- jstring fileName,
- jboolean loop)
-{
- VALIDATE_FILE_POINTER;
-
- const char* fileNameNative = env->GetStringUTFChars(fileName, NULL);
- if (!fileNameNative)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Could not get UTF string");
- return -1;
- }
-
- jint retVal = veData1.file->StartPlayingFileAsMicrophone(channel,
- fileNameNative,
- loop);
-
- env->ReleaseStringUTFChars(fileName, fileNameNative);
-
- return retVal;
-}
-
-/////////////////////////////////////////////
-// [File] Stop playing file as microphone
-//
-JNIEXPORT jint JNICALL
-Java_org_webrtc_voiceengine_test_AndroidTest_StopPlayingFileAsMicrophone(
- JNIEnv *,
- jobject,
- jint channel)
-{
- VALIDATE_FILE_POINTER;
- return veData1.file->StopPlayingFileAsMicrophone(channel);
-}
-
-/////////////////////////////////////////////
-// [Volume] Set speaker volume
-//
-JNIEXPORT jint JNICALL
-Java_org_webrtc_voiceengine_test_AndroidTest_SetSpeakerVolume(
- JNIEnv *,
- jobject,
- jint level)
-{
- VALIDATE_VOLUME_POINTER;
- if (veData1.volume->SetSpeakerVolume(level) != 0)
- {
- return -1;
- }
-
- unsigned int storedVolume = 0;
- if (veData1.volume->GetSpeakerVolume(storedVolume) != 0)
- {
- return -1;
- }
-
- if (storedVolume != level)
- {
- return -1;
- }
-
- return 0;
-}
-
-//////////////////////////////////////////////////////////////////
-// "Local" functions (i.e. not Java accessible)
-//////////////////////////////////////////////////////////////////
-
-/////////////////////////////////////////////
-// Get all sub-APIs
-//
-bool GetSubApis(VoiceEngineData &veData)
-{
- bool getOK = true;
-
- // Base
- veData.base = VoEBase::GetInterface(veData.ve);
- if (!veData.base)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Get base sub-API failed");
- getOK = false;
- }
-
- // Codec
- veData.codec = VoECodec::GetInterface(veData.ve);
- if (!veData.codec)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Get codec sub-API failed");
- getOK = false;
- }
-
- // File
- veData.file = VoEFile::GetInterface(veData.ve);
- if (!veData.file)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Get file sub-API failed");
- getOK = false;
- }
-
- // Network
- veData.netw = VoENetwork::GetInterface(veData.ve);
- if (!veData.netw)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Get network sub-API failed");
- getOK = false;
- }
-
- // AudioProcessing module
- veData.apm = VoEAudioProcessing::GetInterface(veData.ve);
- if (!veData.apm)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Get apm sub-API failed");
- getOK = false;
- }
-
- // Volume
- veData.volume = VoEVolumeControl::GetInterface(veData.ve);
- if (!veData.volume)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Get volume sub-API failed");
- getOK = false;
- }
-
- // Hardware
- veData.hardware = VoEHardware::GetInterface(veData.ve);
- if (!veData.hardware)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Get hardware sub-API failed");
- getOK = false;
- }
-
- // RTP / RTCP
- veData.rtp_rtcp = VoERTP_RTCP::GetInterface(veData.ve);
- if (!veData.rtp_rtcp)
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Get rtp_rtcp sub-API failed");
- getOK = false;
- }
-
- return getOK;
-}
-
-/////////////////////////////////////////////
-// Release all sub-APIs
-//
-bool ReleaseSubApis(VoiceEngineData &veData)
-{
- bool releaseOK = true;
-
- // Base
- if (veData.base)
- {
- if (0 != veData.base->Release())
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Release base sub-API failed");
- releaseOK = false;
- }
- else
- {
- veData.base = NULL;
- }
- }
-
- // Codec
- if (veData.codec)
- {
- if (0 != veData.codec->Release())
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Release codec sub-API failed");
- releaseOK = false;
- }
- else
- {
- veData.codec = NULL;
- }
- }
-
- // File
- if (veData.file)
- {
- if (0 != veData.file->Release())
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Release file sub-API failed");
- releaseOK = false;
- }
- else
- {
- veData.file = NULL;
- }
- }
-
- // Network
- if (veData.netw)
- {
- if (0 != veData.netw->Release())
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Release network sub-API failed");
- releaseOK = false;
- }
- else
- {
- veData.netw = NULL;
- }
- }
-
- // apm
- if (veData.apm)
- {
- if (0 != veData.apm->Release())
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Release apm sub-API failed");
- releaseOK = false;
- }
- else
- {
- veData.apm = NULL;
- }
- }
-
- // Volume
- if (veData.volume)
- {
- if (0 != veData.volume->Release())
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Release volume sub-API failed");
- releaseOK = false;
- }
- else
- {
- veData.volume = NULL;
- }
- }
-
- // Hardware
- if (veData.hardware)
- {
- if (0 != veData.hardware->Release())
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Release hardware sub-API failed");
- releaseOK = false;
- }
- else
- {
- veData.hardware = NULL;
- }
- }
-
- // RTP RTCP
- if (veData.rtp_rtcp)
- {
- if (0 != veData.rtp_rtcp->Release())
- {
- __android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
- "Release rtp_rtcp sub-API failed");
- releaseOK = false;
- }
- else
- {
- veData.rtp_rtcp = NULL;
- }
- }
-
- return releaseOK;
-}

Powered by Google App Engine
This is Rietveld 408576698