From cfa3ad358e6c0b3baec5d626783a024a3396ca1f Mon Sep 17 00:00:00 2001 From: Brian Armstrong Date: Sat, 1 May 2021 17:56:22 -0700 Subject: [PATCH] use voice recognition preset --- quiet/src/main/jni/opensl.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/quiet/src/main/jni/opensl.c b/quiet/src/main/jni/opensl.c index f9ff6da..696bc85 100644 --- a/quiet/src/main/jni/opensl.c +++ b/quiet/src/main/jni/opensl.c @@ -342,19 +342,27 @@ SLresult quiet_opensl_create_recorder(quiet_opensl_system *sys, audioSink.pFormat = (void *)&pcm; SLObjectItf recorder; - unsigned int num_interfaces = 1; + unsigned int num_interfaces = 2; SLInterfaceID interfaces[num_interfaces]; SLboolean required[num_interfaces]; interfaces[0] = SL_IID_ANDROIDSIMPLEBUFFERQUEUE; + interfaces[1] = SL_IID_ANDROIDCONFIGURATION; required[0] = SL_BOOLEAN_TRUE; + required[1] = SL_BOOLEAN_FALSE; res = (*sys->engine_itf) ->CreateAudioRecorder(sys->engine_itf, &recorder, &audioSource, - &audioSink, 1, interfaces, required); + &audioSink, 2, interfaces, required); if (res != SL_RESULT_SUCCESS) { return res; } recorder_deref->recorder = recorder; + SLAndroidConfigurationItf inputConfiguration; + if ((*recorder)->GetInterface(recorder, SL_IID_ANDROIDCONFIGURATION, &inputConfiguration) == SL_RESULT_SUCCESS) { + SLuint32 presetValue = SL_ANDROID_RECORDING_PRESET_VOICE_RECOGNITION; + (*inputConfiguration)->SetConfiguration(inputConfiguration, SL_ANDROID_KEY_RECORDING_PRESET, &presetValue, sizeof(SLuint32)); + } + res = (*recorder)->Realize(recorder, SL_BOOLEAN_FALSE); if (res != SL_RESULT_SUCCESS) { return res;