hal: Add audio hal plugin for external codec
Add audio hal plugin for external codec support
so that OEM can add their own codec implementation.
Change-Id: I67f6808c41c5d9d85d9b6a6a8b49a4f9fd042ab0
diff --git a/hal/audio_extn/hfp.c b/hal/audio_extn/hfp.c
index 95f463d..89c42c8 100644
--- a/hal/audio_extn/hfp.c
+++ b/hal/audio_extn/hfp.c
@@ -38,6 +38,7 @@
#include "platform_api.h"
#include <stdlib.h>
#include <cutils/str_parms.h>
+#include "audio_extn.h"
#ifdef DYNAMIC_LOG_ENABLED
#include <log_xml_parser.h>
@@ -165,6 +166,12 @@
select_devices(adev, hfpmod.ucid);
+ if ((uc_info->out_snd_device != SND_DEVICE_NONE) ||
+ (uc_info->in_snd_device != SND_DEVICE_NONE)) {
+ if (audio_extn_ext_hw_plugin_usecase_start(adev->ext_hw_plugin, uc_info))
+ ALOGE("%s: failed to start ext hw plugin", __func__);
+ }
+
pcm_dev_rx_id = platform_get_pcm_device_id(uc_info->id, PCM_PLAYBACK);
pcm_dev_tx_id = platform_get_pcm_device_id(uc_info->id, PCM_CAPTURE);
pcm_dev_asm_rx_id = hfpmod.hfp_pcm_dev_id;
@@ -282,6 +289,12 @@
return -EINVAL;
}
+ if ((uc_info->out_snd_device != SND_DEVICE_NONE) ||
+ (uc_info->in_snd_device != SND_DEVICE_NONE)) {
+ if (audio_extn_ext_hw_plugin_usecase_stop(adev->ext_hw_plugin, uc_info))
+ ALOGE("%s: failed to stop ext hw plugin", __func__);
+ }
+
/* 2. Disable echo reference while stopping hfp */
platform_set_echo_reference(adev, false, uc_info->devices);