From d5d742e3b6f84ca5e33257ce5d1fd4bcb32f7a63 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Tue, 2 Feb 2016 15:34:48 -0500
Subject: [PATCH] android/opensl: set record device stream type

Set the recording preset to VOICE_COMMUNICATION.

Change-Id: Idfa34a8b1470ae6d4a6069a8f80d922c4710d593
Tuleap: #262
---
 src/media/audio/opensl/audio_recorder.cpp | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/media/audio/opensl/audio_recorder.cpp b/src/media/audio/opensl/audio_recorder.cpp
index 52ea660327..635d4c262a 100644
--- a/src/media/audio/opensl/audio_recorder.cpp
+++ b/src/media/audio/opensl/audio_recorder.cpp
@@ -72,16 +72,21 @@ AudioRecorder::AudioRecorder(ring::AudioFormat sampleFormat, SLEngineItf slEngin
 
     // create audio recorder
     // (requires the RECORD_AUDIO permission)
-    const SLInterfaceID id[1] = {SL_IID_ANDROIDSIMPLEBUFFERQUEUE};
+    const SLInterfaceID ids[2] = {SL_IID_ANDROIDSIMPLEBUFFERQUEUE, SL_IID_ANDROIDCONFIGURATION};
     const SLboolean req[1] = {SL_BOOLEAN_TRUE};
     SLresult result;
     result = (*slEngine)->CreateAudioRecorder(slEngine,
                                               &recObjectItf_,
                                               &audioSrc,
                                               &audioSnk,
-                                              1, id, req);
+                                              sizeof(ids)/sizeof(ids[0]), ids, req);
     SLASSERT(result);
 
+    SLAndroidConfigurationItf recordConfig;
+    SLint32 streamType = SL_ANDROID_RECORDING_PRESET_VOICE_COMMUNICATION;
+    result = (*recObjectItf_)->GetInterface(recObjectItf_, SL_IID_ANDROIDCONFIGURATION, &recordConfig);
+    result = (*recordConfig)->SetConfiguration(recordConfig, SL_ANDROID_KEY_RECORDING_PRESET, &streamType, sizeof(SLint32));
+
     result = (*recObjectItf_)->Realize(recObjectItf_, SL_BOOLEAN_FALSE);
     SLASSERT(result);
     result = (*recObjectItf_)->GetInterface(recObjectItf_, SL_IID_RECORD, &recItf_);
-- 
GitLab